关于ADOQuery查询的问题,希望大家帮帮忙,谢谢!
如果有一个字符串比如str:=‘姓名 张三’,str的内容未知,但格式为‘¥¥ ××’,怎样利用ADOQuery.SQL.Add(select * from table where....)来查询呢?其中,¥¥为table中的一列的名称,××为其对应的内容。
另外,当要查询的表名也为一个变量时又该怎么办呢?
问题点数:20、回复次数:5Top
1 楼XLYT(雨田)回复于 2006-12-04 19:05:02 得分 0
ss:string;
ss='select * from '+表名变量+' where '+列名变量+'=姓名 张三';
adoquery.sql.add(ss);Top
2 楼cqbonny(高层)回复于 2006-12-04 23:08:10 得分 0
没有懂楼主的意思,我想的也和楼上一样的Top
3 楼liuyutao_776()回复于 2006-12-05 08:43:35 得分 0
按一楼的意思,应该是这样,但是其中有好几个语法错误,大概意思是说表名和列名不能以变量的形式来写,不知道具体应该怎样才能实现?
procedure TForm1.Button1Click(Sender: TObject);
var
s,table,rowname:string;
begin
table := '人口查询';
rowname := '姓名';
s := 'select * from'+ table + 'where' + rowname + '=' + #39+'刘玉涛'+#39;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(s);
ADOQuery1.Open;
ADOQuery1.Prepared;
s:=ADOQuery1.FieldByName('身份证').AsString;
memo1.Lines.Add(s);
end;Top
4 楼lihuasoft(坐井观天)回复于 2006-12-05 08:55:45 得分 0
对楼主在楼上的代码提点建议:
1、不要用table这样的保留关键词做变量名。
2、要注意SQL语句中的空格(你可以把你赋值后的S显示一下看一看,是不是你想要的串)。
大体给你改一下楼上的代码:
procedure TForm1.Button1Click(Sender: TObject);
var
s,tbName,rowname:string;
begin
table := '人口查询';
rowname := '姓名';
s := 'select * from '+ tbName + ' where ' + rowname + '=' + #39+'刘玉涛'+#39;
ADOquery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(s);
ADOQuery1.Open;
//ADOQuery1.Prepared;
s:=ADOQuery1.FieldByName('身份证').AsString;
memo1.Lines.Add(s);
end;Top
5 楼liuyutao_776()回复于 2006-12-05 09:16:51 得分 0
刚才已经想出来了,是空格的问题。
谢谢大家Top




