少し前に、プロジェクトのプロセス中に、さまざまなデータベースからデータを動的にロードする必要があるときに、データ ソースに関する問題が発生しました。もちろん、DBF テーブルは ADOQUERY に接続できませんでした (パッチ バージョンはダウンロードされませんでしたが、後でダウンロードされました)。接続処理を実行するには、ユーザーが ODBC を削除する可能性を排除するために、ODBC を動的に確立する必要があります。以下に API 関数のプロトタイプと SQLSERVER と DBF を作成するステートメントを書き留めます。テーブルを共有します (もちろん SQLSERVER を ADO 状態で作成する必要はありません)。
SQLConfigDataSource(hwndParent: 整数; fRequest: 整数;lpszDriverString: 文字列; lpszAttributes: 文字列): 整数;
呼び出し状態で使用します。
関数 SQLConfigDataSource(hwndParent: 整数; fRequest: 整数;lpszDriverString: 文字列; lpszAttributes: 文字列): 整数;stdcall;外部 'ODBCCP32.DLL';
SQLSERVER ODBC を確立します。
SQLConfigDataSource(0, ODBC_ADD_SYS_DSN,'SQL Server','DSN=Record_ODBC'+ chr(0) +'Server=(local)'+ chr(0) +'Database=master'+ chr(0) +'Description=DragonPC SQLServer ODBC ソース'+ chr(0));
{DSN: ODBC データ ソース名。
サーバー: データベース サーバーの名前。ローカル コンピューターにインストールされているデータベースを参照するには、(local) を使用します。注: 最新の SQL Server 2000 は、複数の SQL Server サービスを実行する 1 台のコンピュータをサポートしています。現時点では、SqlSever の InstanceName を指定する必要があります。
アドレス: SQL Server サーバーのネットワーク IP アドレスを指定します。
データベース: デフォルトのデータベース名を指定します。
言語: デフォルトの言語を指定します。
説明: 備考情報。 }
DBF テーブル ODBC を作成します。
SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, 'Microsoft Visual FoxPRo Driver' + CHR(0), 'dsn=SourceTable' + CHR(0) + 'BackgroundFetch=Yes' + CHR(0) + 'Description=接続の説明' + CHR (0) + '排他=いいえ' + CHR(0) +sourcedbstr + CHR(0) +'ソースタイプ=DBF');
DBF テーブルの作成とデバッグに時間がかかること以外はすべて同じです。書き留めて時間を無駄にしないでください。
注: 上記の内容は、同様の問題に遭遇した初心者のための参照のみを目的としています。