我想写一个dll连接数据库代码如下,可调用是总是出错。
library GetRData;uses
SysUtils,
Classes,
Activex,
RData in 'RData.pas' {DataModule1: TDataModule};{$R *.res}function GetSHIPDate(strOutFile:PChar):PChar;stdcall;
var fOutFile:TextFile;
strJ :String;
aaa :HRESULT;
begin
// FileOpen(strOutFile, fmOpenRead);
// strFileName :=strOutFile^;
// AssignFile(fOutFile, strOutFile);
// aaa := Activex.CoInitialize(nil);这样使用返回失败
aaa := CoInitialize(nil);{ if aaa = S_FALSE then //aaa返回S_OK
strJ := 'abcabc'
else
strJ := 'abc';} strJ := SQLDataSet.ADODataSet1.CommandText;//凡是执行与数据库有关的依据就出错
SQLDataSet.ADOConnection1.Open(); SQLDataSet.ADODataSet1.Active :=True;
SQLDataSet.ADODataSet1.First;
Result:= strOutFile;
end;exports
GetSHIPDate;
begin
end.
library GetRData;uses
SysUtils,
Classes,
Activex,
RData in 'RData.pas' {DataModule1: TDataModule};{$R *.res}function GetSHIPDate(strOutFile:PChar):PChar;stdcall;
var fOutFile:TextFile;
strJ :String;
aaa :HRESULT;
begin
// FileOpen(strOutFile, fmOpenRead);
// strFileName :=strOutFile^;
// AssignFile(fOutFile, strOutFile);
// aaa := Activex.CoInitialize(nil);这样使用返回失败
aaa := CoInitialize(nil);{ if aaa = S_FALSE then //aaa返回S_OK
strJ := 'abcabc'
else
strJ := 'abc';} strJ := SQLDataSet.ADODataSet1.CommandText;//凡是执行与数据库有关的依据就出错
SQLDataSet.ADOConnection1.Open(); SQLDataSet.ADODataSet1.Active :=True;
SQLDataSet.ADODataSet1.First;
Result:= strOutFile;
end;exports
GetSHIPDate;
begin
end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货