使用 UniDAC 创建新数据库



>我一直在为允许用户为我的应用程序创建新数据库的函数而苦苦挣扎它必须是一个通用功能,因为有些人使用MS Access,一些SQLite和其他MySQL

花了几个小时在提供的演示中寻找,但没有找到任何对我有用的东西

我想要做的是能够创建一个新的数据库,给定以下参数:提供程序,服务器,端口,用户,密码,数据库名称(或文件名)

我有以下功能用于创建 MS 访问但它没有起到作用。

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;
  1. SQLite - 只需打开一个数据库。如果它不存在,那么它将被创建。
  2. MySQL - 您需要与服务器连接。然后执行CREATE DATABASE <name>命令。
  3. Microsoft访问 - 这取决于您使用的组件。我不知道UniDAC。但是使用 ODBC 执行SQLConfigDataSource(0, ODBC_ADD_DSN, '<driver name>', 'CREATE_DB=<db path>') .

相关内容

  • 没有找到相关文章

最新更新