数据库问题(100分)

  • 主题发起人 主题发起人 cuicui
  • 开始时间 开始时间
C

cuicui

Unregistered / Unconfirmed
GUEST, unregistred user!
我用查询语句:query1.close;
query1.sql.clear;
query1.sql.add('select * from zheng where zh=edit1.text');
query1.open;
可是一执行,程序老报错,不知何故,
注:zheng 为表名,zh为字段名

 
query1.close;
query1.sql.clear;
query1.sql.add('select * from zheng where zh=:tmp');
query1.ParamByName('tmp').Value:=edit1.text;
query1.open;
 
query1.close;
query1.sql.clear;
query1.sql.add('select * from zheng where zh=''' + edit1.text + '''');
query1.open;
 
query1.close;
query1.sql.clear;
query1.sql.add('select * from zheng where zh=''' + edit1.text + '''');
query1.open;
 
或把第三句改为
query1.sql.add('select * from zheng where zh=' + QuotedStr(edit1.text) )
 
query1.close;
query1.sql.clear;
query1.sql.add('select * from zheng where zh=''' + edit1.text + '''');
query1.open;
 
同意楼上所有
 
最好用参数查询
 
条条道路通罗马,偏偏走上独木桥,呵呵
 
上面对了!
 
如果字段的类型是 文本 的话,改为
query1.close;
query1.sql.clear;
query1.sql.add('select * from zheng where zh='''+ edit1.text +'''');
query1.open;
如果字段的类型是 数值 的话,改为
query1.close;
query1.sql.clear;
query1.sql.add('select * from zheng where zh='+ edit1.text );
query1.open;
如果是其他类型的话,可以根据需要再进行连接字符串
 
报什么错你们都不知道,就在建议了,I服了U。
 
各位我在使用上述有关参数查询时尤其在WHERE子句中使用出现过查询结果错误的事情所以我的程序中
所有的SQL语句都是动态添加的。不要笑我真的出现了特别奇怪。
 
使用这种样子:定义sql字符串变量。
sql := ''select * from zheng where zh=%s';
sql := format(sql,[edit1.text ]);
query1.sql.add(sql);
query1.open;
 
加上引号:sql := ''select * from zheng where zh=''%s''';
 
query1.close;
query1.sql.clear;
query1.sql.add('select * from zheng where zh='''+edit1.text+'''');
query1.open;
 
大家很踊跃呀!
 
后退
顶部