如何在Delphi中创建SQL Server CE数据库?

kol*_*kol 2 c# delphi sql-server-ce

我在C#中编写了一个应用程序,它将数据存储在SQL Server CE数据库(v3.5)中.我想从Delphi应用程序中使用这些数据.我找到了有关如何从Delphi代码访问SDF文件的信息,因此这部分简洁明了.

不幸的是,有些情况下Delphi应用程序应该能够首先创建SDF文件.我想我需要在C#(DataContext子类)中编写ORM DLL并从两个应用程序(从Delphi到COM Interop)使用它,但我不确定这是个好主意.任何建议将不胜感激.

(我有Delphi 6和XE2.)

RRU*_*RUZ 6

您可以使用Create该方法目录对象(ADOX)

试试这个示例应用

{$APPTYPE CONSOLE}

{$R *.res}

uses
  ActiveX,
  ComObj,
  SysUtils;

procedure CreateSQLCeDatabase(const DataBase : string);
Var
  Catalog : OleVariant;
begin
  Catalog := CreateOleObject('ADOX.Catalog');
  Catalog.Create(Format('Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=%s',[DataBase]));
end;

begin
 try
    CoInitialize(nil);
    try
      CreateSQLCeDatabase('C:\Data\Bar.sdf');
    finally
      CoUninitialize;
    end;
 except
    on E:EOleException do
        Writeln(Format('EOleException %s %x', [E.Message,E.ErrorCode]));
    on E:Exception do
        Writeln(E.Classname, ':', E.Message);
 end;
 Writeln('Press Enter to exit');
 Readln;
end.
Run Code Online (Sandbox Code Playgroud)