2

データをSQLServerCEデータベース(v3.5)に格納するアプリケーションをC#で作成しました。Delphiアプリケーションからのこれらのデータを使用したいと思います。DelphiコードからSDFファイルにアクセスする方法についての情報を見つけたので、この部分はクリーンでシンプルです。

残念ながら、Delphiアプリケーションが最初にSDFファイルを作成できる必要がある場合があります。C#(DataContextサブクラス)でORM DLLを作成し、両方のアプリケーション(DelphiからCOM相互運用機能まで)で使用する必要があると思いますが、これが適切かどうかはわかりません。アドバイスをいただければ幸いです。

(私はDelphi 6とXE2を持っています。)

4

2 に答える 2

6

カタログ オブジェクト (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.
于 2012-06-08T15:25:49.330 に答える
2

メニューから [プロジェクト] > [タイプ ライブラリのインポート] を選択すると、(長い!) リストに「Microsoft ADO Ext. 2.8 for DLL and Security (Version 2.8)」という名前のエントリが見つかります (おそらく古いバージョンか新しいバージョンですが、同様に機能するはずです。)

ユニットを作成し、CoCatalog.Create を使用して Catalog オブジェクトを作成し、その Create メソッドを使用して、接続文字列で指定されたデータベースを作成します。SDF ファイルへの接続に使用してきた接続文字列を試してください。

于 2012-06-08T14:36:51.127 に答える