我准备做一个dll供别人调用,因为他的程序不能访问Sql Server
但需要用到Sql的数据。
我做了一个测试程序dll,用了一个数据模块如下
library Project1;uses
  SysUtils,
  Classes,
  Data in 'Data.pas' {DataJcsb: TDataModule};{$R *.res}
 procedure xxx;StdCall;
begin
 DataJcsb.ADOTable1.Open;
 DataJcsb.ADOTable2.Open;
 DataJcsb.ADOTable2.Append;
 DataJcsb.ADOTable2['ckbh']:=DataJcsb.ADOTable1['ckbh'];
 DataJcsb.ADOTable2['ck']:=DataJcsb.ADOTable1['ck'];
 DataJcsb.ADOTable2.Post;
end;
exports
xxx;
end.
数据模块代码如下:
unit Data;interfaceuses
  SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms,
  Dialogs, DBTables, DB, ADODB;type
  TDataJcsb = class(TDataModule)
 
    AdoConJcsb: TADOConnection;
    ADOTable1: TADOTable;
    ADOTable1ckbh: TStringField;
    ADOTable1ck: TStringField;
    ADOTable1bz: TStringField;
    ADOConnection1: TADOConnection;
    ADOTable2: TADOTable;
    ADOTable2ckbh: TWideStringField;
    ADOTable2ck: TWideStringField;
    ADOTable2bz: TWideStringField;
;
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  DataJcsb: TDataJcsb;implementation{$R *.DFM}end.调用程序代码:
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementationuses Data;
 procedure xxx; StdCall;external 'Project1.dll' name'xxx';
{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
 xxx;
end;end.但系统调用dll失败,请问这是为什么?
(我做的简单函数调用倒是没问题)
是不是dll不能进行数据库操作?谢谢