在dll中使用数据库的问题????? |
尚未結案
|
ljq_2002
一般會員 發表:27 回覆:12 積分:7 註冊:2003-01-02 發送簡訊給我 |
有如下定义:
RXDatabasePtr: TDatabase;
RXTablePtr: TTable;
RXQueryPtr: TQuery; TJss: TStringList; tnum: integer;
tstr: string; 代码段如下:
RXDataBasePtr.Connected:=False;
RXDataBasePtr.AliasName:='BBBB';
RXDataBasePtr.Params.Clear; RXDataBasePtr.LoginPrompt:=False;
RXDatabasePtr.Params.Add('USERNAME=' 'SA');
RXDatabasePtr.Params.Add('PASSWORD=' 'SA'); RXDatabasePtr.DatabaseName:='TEST';
try { 试图打开数据库 }
RXDatabasePtr.Connected:=True; { 连接数据库 }
except
on E: EDBEngineError do
begin
.......
end;
end; RXTablePtr.Active:=False; { 关闭 Table }
RXTablePtr.DatabaseName:='TEST';
RXTablePtr.TableName:='dbo.wwwwat'
try
RXTablePtr.Active:=True;
except
on E: EDBEngineError do
begin
...........
end;
end; RXQueryPtr.Active:=False; { 关闭 Table }
RXQueryPtr.DatabaseName:='TEST';
RXQueryPtr.SQL.Clear;
sqlstr:='';
sqlstr:='select top 20 sum(TPNUM),userdoc from dbo.wwwwat group by USERDOC order by sum(tpnum) desc';
RXQueryPtr.SQL.Add(sqlstr);
try
RXQueryPtr.Open;
except
on E: EDBEngineError do
begin
......
end;
end; if not RXQueryPtr.IsEmpty then
begin
TJss:=TStringList.Create;
TJss.Clear; RXQueryPtr.First;
while not RXQueryPtr.Eof do
begin
tnum:=RXQueryPtr.FieldByName('TPNUM').AsInteger;
tstr:=RXQueryPtr.FieldByName('USERDOC').AsString;
TJss.Add(inttostr(tnum) '**' tstr);
RXQueryPtr.Next;
end;
.......
TJss.Free;
end; 编译时无任何错误,但在调用时,就出现"EDatabaseError"错误?请问如何解决???????
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |