在动态链接库中使用数据库:
定义如下三个数据库的类:
RXDatabasePtr: TDatabase;
RXTablePtr: TTable;
RXQueryPtr: TQuery;
stra: TStringList;在dll的过程中:
RXDatabasePtr:=TDataBase.Create(Application);
RXTablePtr:=TTable.Create(Application);
RXQueryPtr:=TQuery.Create(Application); RXDataBasePtr.Connected:=False;
RXDataBasePtr.AliasName:='AAAA';
RXDataBasePtr.Params.Clear; RXDataBasePtr.LoginPrompt:=False;
RXDatabasePtr.Params.Add('USERNAME='+#$27+'SA'+#$27);
RXDatabasePtr.Params.Add('PASSWORD='+#$27+'SA'+#$27); RXDatabasePtr.DatabaseName:='TESTSQL';
try { 试图打开数据库 }
RXDatabasePtr.Connected:=True; { 连接数据库 }
except
........ { 打开失败 }
end;
end; { 链接数据表控件 }
RXTablePtr.Active:=False; { 关闭 Table }
RXTablePtr.DatabaseName:='TESTSQL';
RXTablePtr.TableName:='dbo.BBBB';
try
RXTablePtr.Active:=True;
except
on E: EDBEngineError do
begin
...................
end;
end; { 链接查询控件 }
RXQueryPtr.Active:=False; { 关闭 Table }
RXQueryPtr.DatabaseName:='TESTSQL';
RXQueryPtr.SQL.Clear;
sqlstr:='';
sqlstr:='select top 20 sum(TPNUM) as aa,userdoc from dbo.BBBB group by USERDOC order by sum(tpnum) desc';
RXQueryPtr.SQL.Add(sqlstr);
RXQueryPtr.Open;
if not RXQueryPtr.IsEmpty then
begin
RXQueryPtr.First;
stra:=TStringList.Create;
stra.clear;
while not RXQueryPtr.eof do
begin
......
....?????如何把查询的结果值付给stra变量????........
......
end;
stra.free;
end;
定义如下三个数据库的类:
RXDatabasePtr: TDatabase;
RXTablePtr: TTable;
RXQueryPtr: TQuery;
stra: TStringList;在dll的过程中:
RXDatabasePtr:=TDataBase.Create(Application);
RXTablePtr:=TTable.Create(Application);
RXQueryPtr:=TQuery.Create(Application); RXDataBasePtr.Connected:=False;
RXDataBasePtr.AliasName:='AAAA';
RXDataBasePtr.Params.Clear; RXDataBasePtr.LoginPrompt:=False;
RXDatabasePtr.Params.Add('USERNAME='+#$27+'SA'+#$27);
RXDatabasePtr.Params.Add('PASSWORD='+#$27+'SA'+#$27); RXDatabasePtr.DatabaseName:='TESTSQL';
try { 试图打开数据库 }
RXDatabasePtr.Connected:=True; { 连接数据库 }
except
........ { 打开失败 }
end;
end; { 链接数据表控件 }
RXTablePtr.Active:=False; { 关闭 Table }
RXTablePtr.DatabaseName:='TESTSQL';
RXTablePtr.TableName:='dbo.BBBB';
try
RXTablePtr.Active:=True;
except
on E: EDBEngineError do
begin
...................
end;
end; { 链接查询控件 }
RXQueryPtr.Active:=False; { 关闭 Table }
RXQueryPtr.DatabaseName:='TESTSQL';
RXQueryPtr.SQL.Clear;
sqlstr:='';
sqlstr:='select top 20 sum(TPNUM) as aa,userdoc from dbo.BBBB group by USERDOC order by sum(tpnum) desc';
RXQueryPtr.SQL.Add(sqlstr);
RXQueryPtr.Open;
if not RXQueryPtr.IsEmpty then
begin
RXQueryPtr.First;
stra:=TStringList.Create;
stra.clear;
while not RXQueryPtr.eof do
begin
......
....?????如何把查询的结果值付给stra变量????........
......
end;
stra.free;
end;
begin
stra.add(RXQueryPtr.fieldbyname('字段名').asString);
RXQueryPtr.next;
end;