D6中:Dll 中用ADO调用Access数据库,我用了DataModule(不用更不行),总是在用DataSet时出错,请问如何解决。大家快帮一个忙吧。(10

  • 主题发起人 主题发起人 zljzyj
  • 开始时间 开始时间
Z

zljzyj

Unregistered / Unconfirmed
GUEST, unregistred user!
D6中:Dll 中用ADO调用Access数据库,我用了DataModule(不用更不行),总是在用DataSet时出错,请问如何解决。大家快帮一个忙吧。(100分)<br />DataModule(不用更不行),总是在用DataSet时出错,请问如何解决。大家快帮一个忙吧。
 
&gt;&gt;总是在用DataSet时出错
什么意思?
 
当我不用DataModule时ADOConnection涉及的任何一步操作都是错误,用了DataModule 把
关于数据库操作的语句全放在了DataModule中,Create中的关于DataConnection的操作已经
通过,但是GetPScore中的任一关于DataSet的操作都出错,感觉是Exe与 DLL调用ADO不太一
样,应该是D6的bug吧。(编译能通过,但是调用不行)

function TDm1.GetPScore(aZScore : Double):double;
var
I : Integer;
AStr : String;
begin
AStr := floatToStr(aZScore);
I := Pos('.',AStr)+2;
AStr := Copy(AStr,0,I);
ADODS.CommandText :='select * from zpScore';
ADODS.Open;
ShowMessage(IntToStr(AdoDS.RecordCount));
Result := ADODS.fieldByName('Pvalue').asFloat;
ADODS.Close;
end;

procedure TDm1.DataModuleCreate(Sender: TObject);
begin
ADOConn.Connected := False;
ADOConn.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;'+
'Data Source=EPSDLL.MDB;'+'Mode=Share Deny None;'+
'Extended Properties="";Persist Security Info=False;'+
'Jet OLEDB:System database="";Jet OLEDB:Registry Path="";'+
'Jet OLEDB:Database Password=System;Jet OLEDB:Engine Type=5;'+
'Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;'+
'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";'+
'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;'+
'Jet OLEDB:Don'+''''+'t Copy Locale on Compact=False;'+
'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;';
ADoConn.Connected := True;

end;
 
我想可能在DataModuleCreate中不能对ADOConn操作!因为它还没有建立啊!
 
大家在写DLL时,是不是都没问题呢??
 
对,都没有问题!
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部