ユーザーが自分のアプリ用に新しいデータベースを作成できるようにする機能に苦労しています。MSAccess、SQLite、MySQLを使用する機能もあるため、ユニバーサル機能である必要があります。
何も役に立たないのに、提供されたデモを何時間も見てきました。
私がしたいのは、プロバイダー、サーバー、ポート、ユーザー、パスワード、DB名(またはファイル名)のパラメーターを指定して、新しいデータベースを作成できるようにすることです。
私はMSAccessを作成するために次の機能を持っていますが、それはうまくいきません。
Calling it by SQLConfigDataSource(0, 1, 'Microsoft Access Driver (*.mdb)','CREATE_DB="' + DatabaseName + '"')
Function SQLConfigDataSource(hwndParent: Integer; fRequest: Integer;
lpszDriverString: string; lpszAttributes: string): Integer; stdcall;
var
func : TSQLConfigDataSource;
ODBCHModule: HMODULE;
begin
ODBCHModule := LoadLibrary('odbccp32.dll');
if ODBCHModule = 0 then
raise Exception.Create(SysErrorMessage(GetLastError));
func := GetProcAddress(ODBCHModule,PChar('SQLConfigDataSource'));
if @func = nil then
raise Exception.Create('Error Getting adress for SQLConfigDataSource' + SysErrorMessage(GetLastError));
Result := func(hwndParent, fRequest, lpszDriverString, lpszAttributes);
FreeLibrary(ODBCHModule);
end;