在动态链接库中使用数据库:
定义如下三个数据库的类:
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;
解决方案 »
- 这段代码怎么编译通不过?
- 聘企业信息化架构分析师 6~8K
- 如何在透明image上画多条直线并移动?
- 一个初学者请教:是装Delphi7.06好还是Delphi8好?
- Indy ftp(服务端)控件如何指定用户的目录?最好有例子!
- 如何在delphi做的平台上执行C++编的程序,delphi达淫乱入
- 关于在线自动更新
- 在QReport中,怎样在主副明细报表中设置每个主表的记录显示一页?
- 怎样判断SQL-SERVER中"表"文件是否存在?
- 急!请问 在MTS中怎样调试程序。。。多谢!!!
- 急!我在安装控件时提示缺少d3d9.dll文件,请那位大侠发给我,万分感谢!
- 谁会用OUTLOOK的群发功能,我想把一封信和一个附件发给很多人,应该怎么做?
begin
stra.add(RXQueryPtr.fieldbyname('字段名').asString);
RXQueryPtr.next;
end;