DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: laidabin
今日帖子: 6
在线用户: 31
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 asdfzxcv66 (asdfzxcv) ★☆☆☆☆ -
普通会员
2014/7/25 8:15:44
标题:
delphi的字段名如何用字符串代替 浏览:1706
加入我的收藏
楼主: 如查询
adoQuery1.close;
adoQuery1.sql.clear;
adoQuery1.sql.add('select * from 登记 where 分数 like '+'"%'+edit1.Text+'%" '); 
adoQuery1.open;

我现在想用选择combobox1.text的内容来选择查询字段
如下:
adoQuery1.close;
adoQuery1.sql.clear;
adoQuery1.sql.add('select * from 登记 where combobox1.text like '+'"%'+edit1.Text+'%" '); 
adoQuery1.open;
运行出错,请问该如何写???
----------------------------------------------
-
作者:
男 devilish (devilish) ★☆☆☆☆ -
盒子活跃会员
2014/7/25 9:14:13
1楼: 这么简单的问题
自己度娘一下
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2014/7/25 9:34:45
2楼: like + ' + Qoutedstr('%'+edit1.Text+'%');
----------------------------------------------
(C)(P)Flying Wang
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2014/7/25 9:35:11
3楼:  Qoutedstr 作用,防止 SQL 注入。
或者说,防止破坏数据。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 internetzs (internetzs) ★☆☆☆☆ -
盒子活跃会员
2014/7/25 9:39:57
4楼: adoQuery1.sql.add('select * from 登记 where ' + combobox1.text + ' like "%'+edit1.Text+'%" ');
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2014/7/25 10:08:57
5楼: edit1.Text:= 'a%;''' delete from 登记 ; select * form 登记 where a like ''' %a'

有些数据库的数据,就完蛋咯。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2014/7/25 14:20:17
6楼: 2楼的在回答啥呢? 莫名其妙嘛
----------------------------------------------
--
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2014/7/25 14:36:20
7楼: 楼上的,你要是看不懂,可以去百度。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 happyhills (老妖) ▲▲▲▲△ -
普通会员
2014/7/25 16:07:17
8楼: 2楼的回答有点2
Qoutedstr要干嘛?加引号?
佩服2楼,学学基础语法吧。别总是修改系统文件,觉得很牛逼B,B总是在A后面。
不要误人子弟。
还有,搞个群,故弄玄虚,以为是官方的呢,有那么牛逼B吗。不是还得老老实实地按照人家的规则写代码。妈的!傻逼一个,二逼一个,加起来当牛逼。艹~!
----------------------------------------------
-文科男,程序员。
作者:
男 happyhills (老妖) ▲▲▲▲△ -
普通会员
2014/7/25 16:18:02
9楼: QuotedStr在大多数数据库的文本字段下都可以用,随着数据库而自动变化处理方式。
----------------------------------------------
-文科男,程序员。
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2014/7/25 17:40:19
10楼: 楼上的被踢了吧。活该。就你这种出口成脏的德行,没被踢的话,有本事报上你的  QQ !

本人回复楼主的问题,难道错了吗?

楼上的白痴,自己不懂,难道不会百度吗?

你以为 QuotedStr 就是简单 左右 加 引号吗?

也不知道什么时候得罪你了。不过既然已经得罪了,再得罪一次,也一样了。

再说了,你见过那个 官方群 用盗版的?
----------------------------------------------
(C)(P)Flying Wang
作者:
男 internetzs (internetzs) ★☆☆☆☆ -
盒子活跃会员
2014/7/25 17:42:23
10楼: to 5楼:
使用函数QuotedStr(),会自动替换了一个'变两个'', 所以不会出现你所说的情况

看系统是如何实现的:
function QuotedStr(const S: string): string;
var
  I: Integer;
begin
  Result := S;
  for I := Result.Length - 1 downto 0 do
    if Result.Chars[I] = '''' then Result := Result.Insert(I, '''');
  Result := '''' + Result + '''';
end;
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2014/7/25 17:44:52
11楼: 楼上的,本人提出使用 QuotedStr 的,但是如果不用呢?
您看看,大家都反对用 QuotedStr 呢。
好像你自己也没打算用。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2014/7/25 17:49:43
12楼: 老妖  252336957
已踢。

也不知道什么时候得罪你了。不过既然已经得罪了,再得罪一次,也一样了。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 inbreak (入侵) ★☆☆☆☆ -
盒子活跃会员
2014/7/25 23:54:41
13楼: 4楼是对的。其它的都是费话。
----------------------------------------------
我是菜鸟,己经搞了十多年了,但是我仍然很菜。
作者:
男 ptdelphi (Delphi) ▲▲▲▲△ -
普通会员
2014/7/26 10:46:37
14楼: 语句写错了
----------------------------------------------
还可以更好
作者:
男 tiez (骑牛夜旅) ★☆☆☆☆ -
普通会员
2014/7/29 1:06:39
15楼: 其实不小心写错就是看不出来的事偶也做过好多的说,有的时候还以为是delphi的bug,我汗
----------------------------------------------
-
作者:
男 internetzs (internetzs) ★☆☆☆☆ -
盒子活跃会员
2014/7/29 9:26:22
16楼: 应该使用QuotedStr, 上面我应该写了, 不知道是否显示不出来, 再写一次:

adoQuery1.sql.add('select * from 登记 where [' + combobox1.text + '] like "%'+QuotedStr(edit1.Text)+'%" ');
----------------------------------------------
-
作者:
男 asdfzxcv66 (asdfzxcv) ★☆☆☆☆ -
普通会员
2014/8/2 15:17:27
17楼:  internetzs 可以使用,谢谢!
----------------------------------------------
-
作者:
男 qjh0142008 (qjh0142008) ▲▲▲▲▲ -
普通会员
2014/8/11 16:47:53
18楼: 楼主新手吧,这么基础的东西,一帮人答非所问,唉,自以为是,难道干这一行都这个得性,没看清楼主需要什么就吵起来了,真搞笑,这就是国人丑陋的生面,楼主表字段用的是中文吧,要是字段名是字母呢,有没有想过如何处理是最佳办法??
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2014/8/11 17:12:45
19楼: 楼上的也是“这个得性”
你也是答非所问!

另外,你丑陋,不代表我们中国人丑陋。

你就不要丢人了。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 qjh0142008 (qjh0142008) ▲▲▲▲▲ -
普通会员
2014/8/12 11:34:48
20楼: 你没看到楼主说 internetzs 可以使用 了吗,我又何必多此一举,我是想告诉楼主,我这有这种情况更好的解决方案,楼主没跟进,我就不多说了。我说一帮人答非所问,也没指名道姓说谁呀,你就抢着对号入坐了,呵呵.....真逗
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2014/8/12 11:45:21
21楼: 楼上的你不是中国人,我们是。请你滚回你的祖国去!
----------------------------------------------
(C)(P)Flying Wang
作者:
男 qjh0142008 (qjh0142008) ▲▲▲▲▲ -
普通会员
2014/8/13 12:27:05
22楼: 楼上的,你把我和我同事都逗乐了  谢谢哈........
----------------------------------------------
-
作者:
男 gaoyong_gy (gaoyong_gy) ★☆☆☆☆ -
盒子活跃会员
2014/8/23 17:59:00
23楼: 有时候吵吵,也不是坏事。只是不要进行人身攻击就好。这热闹一点,挺好的。盒子是老家啊。我们都比较恋旧。
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
男 ptdelphi (Delphi) ▲▲▲▲△ -
普通会员
2014/8/23 19:23:36
24楼: adoQuery1.sql.add('select * from 登记 where :a1 like %:b1% '); 
adoQuery1.Parameters.paramByname(':a1').value=combox1.text;
adoQuery1.Parameters.paramByname(':b1').value=edit.text;
----------------------------------------------
还可以更好
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行718.75毫秒 RSS