当我不用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
atabase Password=System;Jet OLEDB:Engine Type=5;'+
'Jet OLEDB
atabase 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
on'+''''+'t Copy Locale on Compact=False;'+
'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;';
ADoConn.Connected := True;
end;