【问题标题】:How to create SQL Server CE database in Delphi?如何在 Delphi 中创建 SQL Server CE 数据库?
【发布时间】:2012-06-08 13:24:18
【问题描述】:

我用 C# 编写了一个应用程序,它将其数据存储在 SQL Server CE 数据库 (v3.5) 中。我想使用 Delphi 应用程序中的这些数据。我找到了关于how to access an SDF file from Delphi code的信息,所以这部分很简洁。

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

(我有 Delphi 6 和 XE2。)

【问题讨论】:

标签: c# delphi sql-server-ce


【解决方案1】:

可以使用Catalog Object (ADOX)Create方法

试试这个示例应用

{$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.

【讨论】:

  • 谢谢你的回答,这正是我需要的。
【解决方案2】:

如果您从菜单中选择“项目”>“导入类型库”,您将在(长!)列表中找到一个名为“Microsoft ADO Ext. 2.8 for DLL and Security (Version 2.8)”的条目(可能是较旧的或较新的版本,但它应该也能正常工作。)

创建单元,并使用 CoCatalog.Create 创建目录对象,并使用its Create method 创建由连接字符串指定的数据库。尝试使用您一直用来连接到 SDF 文件的连接字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 2010-10-09
    • 2014-07-10
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    相关资源
    最近更新 更多