2012-04-20 8 views
0

を使用して新しいデータベースを作成し、他のMySQL私はいくつかは、MS Accessの、いくつかのSQLiteを使用するとそれは普遍的な機能である必要があり、ユーザーは自分のアプリの のための新しいDBを作成することを可能にする機能で苦労されているUniDAC

I私に何かを見つけることなく、提供されたデモを見て時間を費やす

私ができることは、プロバイダ、サーバー、ポート、ユーザー、パスワード、DBのパラメータを指定して新しいdbを作成することです。名前(またはファイル名)

私は以下のMS Accessを作成する機能を持っています Buそれはトリックをしません。

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; 
+0

私はXEとUniDac 4.1.5 (基本は整っているので、バージョン2以降の周りされている) – OZ8HP

+0

あなたは 'UniDacDemo'のソースコードを掘り下げましたデルファイを使うのか?ご確認ください。 – menjaraz

+0

はい私はデモのソースコードを見て、そこに解決策はありません – OZ8HP

答えて

1
  1. のSQLite - ちょうどデータベースを開きます。存在しなければ作成されます。
  2. MySQL - サーバーに接続する必要があります。次に、CREATE DATABASE <name>コマンドを実行します。
  3. Microsoft Access - これは使用しているコンポーネントによって異なります。私はUniDACについて知らない。しかし、ODBCを使用してSQLConfigDataSource(0, ODBC_ADD_DSN, '<driver name>', 'CREATE_DB=<db path>')を実行してください。
+0

SQLConfigDataSource私はそれを動作させることができません 最初に、私は、データベースを作成しようとした信頼できる場所がなかったかもしれないと思ったが、そうではなかった。 問題が何であるか分かりません。 – OZ8HP

+0

1)SQLInstallerErrorを使用してエラーテキストを取得する必要があります。 2)Unicode Delphiを使用している場合は、SQLConfigDataSourceWを使用します。非Unicodeの場合は、SQLConfigDataSource。 –

+0

これを実証するサンプルコードはありませんか? – OZ8HP

関連する問題