最近使用Delphi,大的问题没有,但小的问题不断?
如:
程序中用到一个文本框edtSQL用来接受用户输入sql语句用户输入下面的语句会出现loginName没有默认值的错误?
//该语句为用户输入edtSQl文本框的SQL语句
select Email from test where loginName='zqget';或select Email from test where loginName="zqget"
ADODataSet1.CommandText:=edtSQL.Text;
ADODataSet1.Open;因为我的目的是让用户自己输入SQL语句,程序直接执行用户输入的SQL语句,请问该如果解决这个问题?如果实在C++中就不会出现这个问题,在这点上我一点都不喜欢delphi?
如:
程序中用到一个文本框edtSQL用来接受用户输入sql语句用户输入下面的语句会出现loginName没有默认值的错误?
//该语句为用户输入edtSQl文本框的SQL语句
select Email from test where loginName='zqget';或select Email from test where loginName="zqget"
ADODataSet1.CommandText:=edtSQL.Text;
ADODataSet1.Open;因为我的目的是让用户自己输入SQL语句,程序直接执行用户输入的SQL语句,请问该如果解决这个问题?如果实在C++中就不会出现这个问题,在这点上我一点都不喜欢delphi?
解决方案 »
- 【新手】:请问加载了xpmenu后怎么使用?
- DLL中的Forms问题,大家来看一下啊!!
- EXCEL数据导入到数据库表里的代码!
- 请教大家一个关于Midas 事务处理的问题。。。感谢。。。 本人分不多了,见谅
- 高分求助:为什么98下TAPI.LineGetID可以取得wave/out的Modem设备号,在2000下就不行了?
- ntsd 在我的程序中运行那么一下,怎么个写法
- 有没有delphi网络编程方面的书推介
- 请问大家这些字是怎么写出来的,不会是一个一个拼起来的吧?
- sql数据库备份恢复问题,急!急!急!我又多花了50分!
- 请问高手,API中有无BMP与JPG图象转换的函数?怎样转换?
- 用什麽函數清除時間控件裏面日期?
- ServerSocket怎样维护很多连接的客户端(ClientSocket)。
试试。
“或', 替换为双单引号('')就可以了
select Email from test where loginName=''zqget''
处理一下where 子句中条件是字符串的就行了
用上面的语句试试。
Edit1是用户输入SQL语句的地方。
QuotedStr函数很好的处理了SQL语句中的引号问题!!
begin
close;
sql.clear;
sql.add('select email from test where loginName=''zqget''');
open;
end;这样看看可以吗?
try
with Query1 do
begin
close;
SQL.Add(Memo1.Text);
Prepare;
Open;
end;
except
showmessage('the SQL statement is wrong');
end;
“或', 替换为双单引号('')就可以了
或者:
用把所有出现双引号"和单引号'的地方,替换成\"或\'.另外,如果涉及到有数据库表中字段使用了关键词,可能要求加[]号.
这个sql语句的查询条件是可以千变万化的所以如果单让用户输入loginName则就不满足要求,我的要求其实就是要求我的程序能够执行
用户所输入的 "SQL语句"
ADOQuery1.Close;
ADOQuery1.SQL.Text := edtSQL.Text;
ADOQuery1.Open;
开始我是用的ADODataSet组件
我换成ADOQuery组件还是一样的错误参数"loginName"没有默认参数