请教 sql 查询语句如何返回查询的结果到一个变量(100分)

  • 主题发起人 主题发起人 kmif
  • 开始时间 开始时间
K

kmif

Unregistered / Unconfirmed
GUEST, unregistred user!
sql 查询语句如何返回查询的结果到一个变量
如:
with adoquery1 do
begin
Close;
sql.Clear;
sq3:='select * from dbo.pass where usercode=:usercode and userpass=:userpass';
sql.add(sq3);
parameters.ParamByName('usercode').value:=code;
parameters.ParamByName('userpass').value:=pass;
open;
end;

name:=ADOQuery1.fieldbyname('username').AsString;
owner:=ADOQuery1.fieldbyname('userowner').AsString;

showmessage(name);

结果不能显示出来,请教!
 
不能用name和owner作变量名,因为与系统保留字冲突,应改用其它的变量名。
 
你看看找到记录了没有!
adoquery1.recordcount是否大于0!

 
原因在于记录为空!
 
name和owner为delphi 系统保留字,你不能在这里作为自己的变量使用
 
把NAME改为NAME1及OWNER改为OWNER1后仍不行;
查询肯定是有结果的。

请教!
 
在查询分析器里运行一下,看是否有返回记录。
 
问题没有解决,不罢休。。。。。。。
问题可能出现在这两个语句:
parameters.ParamByName('usercode').value:=code;
parameters.ParamByName('userpass').value:=pass;

其中code,pass 为STRING变量,已存放了内容。
 
我觉得不应该出现这样的问题,你的参数用法也没有问题。你可以跟踪一下你的程序,
看看是否有返回值?
 
if ADOQuery1.recordcount>0 then
begin
name:=ADOQuery1.fieldbyname('username').AsString;
owner:=ADOQuery1.fieldbyname('userowner').AsString;
end
 
我认为是没返回值。
 
1、变量名冲突
2、可能没有记录返回
 
多人接受答案了。
 
后退
顶部