Il y a quelque temps, au cours du processus de projet, nous avons rencontré des problèmes concernant les sources de données lorsque nous devions charger dynamiquement des données de différentes bases de données. Bien sûr, des tables DBF ne pouvaient pas être connectées à ADOQUERY (avant le téléchargement de la version corrective, nous avons découvert plus tard qu'elles étaient présentes). peut également être connecté) doit être construit avec ODBC. Pour effectuer le traitement de la connexion, ODBC doit être établi dynamiquement pour éliminer la possibilité que les utilisateurs suppriment ODBC. Ci-dessous, j'écrirai le prototype de la fonction API et les instructions pour créer des tables SQLSERVER et DBF à partager. (bien sûr, SQLSERVER n'a pas besoin d'être créé dans l'état ADO).
SQLConfigDataSource (hwndParent : Integer ; fRequest : Integer ; lpszDriverString : String ; lpszAttributes : String) : Integer ;
Utilisation en état d'appel :
function SQLConfigDataSource(hwndParent : Integer; fRequest : Integer;lpszDriverString : String; lpszAttributes : String) : Integer;stdcall;external 'ODBCCP32.DLL';
Établissez SQLSERVER ODBC :
SQLConfigDataSource(0, ODBC_ADD_SYS_DSN,'SQL Server','DSN=Record_ODBC'+ chr(0) +'Serveur=(local)'+ chr(0) +'Base de données=maître'+ chr(0) +'Description=DragonPC Source ODBC SQLServer'+ chr(0));
{DSN : nom de votre source de données ODBC.
Serveur : Le nom de votre serveur de base de données. Utilisez (local) pour faire référence à la base de données installée sur votre ordinateur local. Remarque : La dernière version de SQL Server 2000 prend en charge un ordinateur exécutant plusieurs services SQL Server. À l'heure actuelle, vous devez spécifier le nom d'instance de SqlSever.
Adresse : Spécifiez l'adresse IP réseau du serveur SQL Server.
Base de données : spécifiez le nom de la base de données par défaut.
Langue : Spécifiez la langue par défaut.
Description : Informations sur les remarques. }
Créez une table DBF ODBC :
SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, 'Microsoft Visual FoxPRo Driver' + CHR(0), 'dsn=SourceTable' + CHR(0) + 'BackgroundFetch=Yes' + CHR(0) + 'Description=descripcion de la connexion' + CHR (0) + 'Exclusif=Non' + CHR(0) +sourcedbstr + CHR(0) +'TypeSource=DBF');
Tout le reste est pareil, sauf qu'il a fallu beaucoup de temps pour créer et déboguer la table DBF. J'espère que vous ne perdrez pas de temps à l'écrire.
Remarque : le contenu ci-dessus est uniquement destiné à servir de référence aux débutants rencontrant des problèmes similaires.