回 帖 发 新 帖 刷新版面

主题:数据库访问相关疑惑

我在按钮的click事件中添加如下程序 
var 
strwhere,strquery:string; 
begin 
strwhere:=edit1.text; 
strquery:='select * from my_table where my_field='+strwhere; 
query1.close; 
query1.sql.add(strquery); 
query1.open; 
end; 
我的思路是:strwhere是查询条件,my_database和my_field分别是数据库表和字段名 
程序可以编译通过,但我点击按钮是总提示"invalid field name+edti1.text", 
请各位大虾帮小弟个忙哈,多谢多谢!! 

回复列表 (共9个回复)

沙发

把你在Edit1中输入的字符串也告诉大家,让大家看一下是不是问题出在那里。


另外,
query1.close; 
query1.sql.add(strquery); 
query1.open; 
这几句里有一个隐患,即:Query1.SQL始终是在添加的。
建议你改为这样:

query1.close; 
query1.sql.Text := strQuery;
query1.open; 



query1.close;
query1.SQL.Clear; 
query1.sql.add(strquery); 
query1.open; 

板凳

谢谢,我在edit中输入的是我在数据库表中的某个存在的字段值,但提示有错

3 楼

我的代码是和你教我的后者是一样的,我在这里漏写了query1.sql.clear语句,
但是我的程序能编译通过,是不是语句strquery赋值时有问题??

4 楼

让你把测试时 在Edit1中输入的字符串 也贴出来, 你只这样说, 别人怎么知道你是怎么测试的?

5 楼

王小Y

6 楼

解决,少了两个引号

7 楼

楼主太有才了

8 楼

我晕啊
不是在笑我吧 
我才刚开始搞数据库这一块啊,简单的东西都不明白啊 ,多多指教哦

9 楼

改为:
strquery:='select * from my_table where my_field='''+strwhere+''' ';

我来回复

您尚未登录,请登录后再回复。点此登录或注册