主题:数据库访问相关疑惑
raywong
[专家分:0] 发布于 2007-05-15 10:56:00
我在按钮的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个回复)
沙发
长尾兔 [专家分:3630] 发布于 2007-05-15 14:52:00
把你在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;
板凳
raywong [专家分:0] 发布于 2007-05-15 19:03:00
谢谢,我在edit中输入的是我在数据库表中的某个存在的字段值,但提示有错
3 楼
raywong [专家分:0] 发布于 2007-05-15 19:07:00
我的代码是和你教我的后者是一样的,我在这里漏写了query1.sql.clear语句,
但是我的程序能编译通过,是不是语句strquery赋值时有问题??
4 楼
长尾兔 [专家分:3630] 发布于 2007-05-15 19:44:00
让你把测试时 在Edit1中输入的字符串 也贴出来, 你只这样说, 别人怎么知道你是怎么测试的?
5 楼
raywong [专家分:0] 发布于 2007-05-16 09:06:00
王小Y
6 楼
raywong [专家分:0] 发布于 2007-05-16 17:52:00
解决,少了两个引号
7 楼
长尾兔 [专家分:3630] 发布于 2007-05-16 18:58:00
楼主太有才了
8 楼
raywong [专家分:0] 发布于 2007-05-17 13:27:00
我晕啊
不是在笑我吧
我才刚开始搞数据库这一块啊,简单的东西都不明白啊 ,多多指教哦
9 楼
duck04551 [专家分:90] 发布于 2007-08-01 09:53:00
改为:
strquery:='select * from my_table where my_field='''+strwhere+''' ';
我来回复