有关SQl语句的问题,请进!!!!

喜欢编程朋友 2005-08-18 12:40:18
我用的是Access数据库,用Delphi写的程序,出现错误!帮忙看看!

dl:='wwwww'+#39+'wwwww';
ADOQcon.Close;
ADOQcon.SQL.Clear;
ADOQcon.SQL.Text:='select * from kk where dl_name='+#39+dl+#39;
ADOQcon.Open;

dl是个变量,而这个变量的值中就带有“'”,这时候在SQL语句中执行的时候,就出现问题了。
不知道该怎么解决,或者处理一下,但是我的变量中的这个值中肯定带“'”的。。
大伙帮忙呀!!!!
...全文
91 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
劣势 2005-08-18
变相转化一把,单引号数据在数据库操作中有问题,将它转化为特殊字符
读出的时候在转化回来
回复
yuanscar 2005-08-18
dl:='wwwww'+ '''' +'wwwww';
回复
prostickman 2005-08-18
寒一个,不可以编辑之前的贴
之前好像理解错了题意
要不这样子用,绝对没问题

dl:='wwwww'+#39+'wwwww';
ADOQcon.Close;
ADOQcon.SQL.Clear;
ADOQcon.SQL.Text:='select * from kk where dl_name=:dlName';
ADOQcon.Parameters[0].Value := dl;
ADOQcon.Open;

回复
zsjzwj 2005-08-18
用参数传
回复
prostickman 2005-08-18
哦,没看清楚,是在access下的?
access支持用双引号 " 的
ADOQcon.SQL.Text:='select * from kk where dl_name="''dl''"'


回复
prostickman 2005-08-18
ADOQcon.SQL.Text:='select * from kk where dl_name=''''dl'''''

SQL 2000下测试成功
回复
Teng_s2000 2005-08-18
ADOQcon.SQL.Text:='select * from kk where dl_name=#39+dl+#39';
回复
我的意思是说ADOQcon.SQL.Text:='select * from kk where dl_name='+#39+dl+#39;这个语句中的dl变量里面本身含有单引号,也就是单引号是dl变量中的值。这时候数据库执行失败,怎么来处理??
回复
peterluolaw 2005-08-18
ADOQcon.SQL.Text:='select * from kk where dl_name='+quotedstr(dl);
回复
相关推荐
发帖
Delphi
创建于2007-08-02

4924

社区成员

Delphi 开发及应用
申请成为版主
帖子事件
创建了帖子
2005-08-18 12:40
社区公告
暂无公告