1

Microsoft Paradox Driver (ODBC) のシステム DSN をプログラムで追加しようとしていますが、SQLConfigDataSource の属性パラメーターで渡す必要があるキーに関するドキュメントが見つかりません。MS Access システム DSN を正常に追加できますが、これは、キー (DBQ など) を含む例が多数あるためです。動作しない私のコード (Delphi) を以下に示します。

多数の異なるキーを試しましたが、成功しませんでした。たとえば、レジ​​ストリの HKEY_LOCAL_MACHINE\Software\Wow6432Node\ODBC\ODBC.INI (32 ビット ODBC) の下に表示される名前と値のペアを調べましたが、解決には至りませんでした。

プログラムで Paradox システム DSN を作成するために SQLConfigDataSource の lpszAttributes パラメータに渡す必要があるキーを知っている人はいますか?

function SQLConfigDataSource (
    hwndParent:     SQLHWnd;
    fRequest:       WORD;
    lpszDriver:     PChar;
    lpszAttributes: PChar
  ): SQLBOOL; {$IFDEF MSWINDOWS} stdcall {$ELSE} cdecl {$ENDIF};
  external 'odbccp32.dll' name 'SQLConfigDataSourceW';

procedure TForm1.Button1Click(Sender: TObject);
var
  Attributes: string;
  RetVal: Boolean;
begin
  Attributes := 'DSN=' + 'Paradox Data#0;
  Attributes := Attributes + 'DESCRIPTION=Paradox DSN for sample data'#0;
  Attributes := Attributes + 'DEFAULTDIR=c:\Users\Public\Documents\RAD Studio\12.0\Samples\Data'#0#0;
  RetVal := SqlConfigDataSource(0, ODBC_ADD_SYS_DSN, 'Microsoft Paradox Driver (*.db)', PChar(Attributes));
  if not RetVal then
    ShowMessage('Could not add DSN');
end;

私は最初にここで回答を報告しましたが、warrenp と crefird の両方が、私自身の質問に回答することを提案しました (クレジットは crefird にありますが)。以下に私の答えがあります。

4

1 に答える 1