导航:
论坛 -> 数据库专区
斑竹:liumazi,waterstone
作者:
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; 运行出错,请问该如何写???
----------------------------------------------
-
作者:
2014/7/25 9:14:13
1楼:
这么简单的问题 自己度娘一下
----------------------------------------------
-
作者:
2014/7/25 9:34:45
2楼:
like + ' + Qoutedstr('%'+edit1.Text+'%');
----------------------------------------------
(C)(P)Flying Wang
作者:
2014/7/25 9:35:11
3楼:
Qoutedstr 作用,防止 SQL 注入。 或者说,防止破坏数据。
----------------------------------------------
(C)(P)Flying Wang
作者:
2014/7/25 9:39:57
4楼:
adoQuery1.sql.add('select * from 登记 where ' + combobox1.text + ' like "%'+edit1.Text+'%" ');
----------------------------------------------
-
作者:
2014/7/25 10:08:57
5楼:
edit1.Text:= 'a%;''' delete from 登记 ; select * form 登记 where a like ''' %a' 有些数据库的数据,就完蛋咯。
----------------------------------------------
(C)(P)Flying Wang
作者:
2014/7/25 14:20:17
6楼:
2楼的在回答啥呢? 莫名其妙嘛
----------------------------------------------
--
作者:
2014/7/25 14:36:20
7楼:
楼上的,你要是看不懂,可以去百度。
----------------------------------------------
(C)(P)Flying Wang
作者:
2014/7/25 16:07:17
8楼:
2楼的回答有点2 Qoutedstr要干嘛?加引号? 佩服2楼,学学基础语法吧。别总是修改系统文件,觉得很牛逼B,B总是在A后面。 不要误人子弟。 还有,搞个群,故弄玄虚,以为是官方的呢,有那么牛逼B吗。不是还得老老实实地按照人家的规则写代码。妈的!傻逼一个,二逼一个,加起来当牛逼。艹~!
----------------------------------------------
-文科男,程序员。
作者:
2014/7/25 16:18:02
9楼:
QuotedStr在大多数数据库的文本字段下都可以用,随着数据库而自动变化处理方式。
----------------------------------------------
-文科男,程序员。
作者:
2014/7/25 17:40:19
10楼:
楼上的被踢了吧。活该。就你这种出口成脏的德行,没被踢的话,有本事报上你的 QQ ! 本人回复楼主的问题,难道错了吗? 楼上的白痴,自己不懂,难道不会百度吗? 你以为 QuotedStr 就是简单 左右 加 引号吗? 也不知道什么时候得罪你了。不过既然已经得罪了,再得罪一次,也一样了。 再说了,你见过那个 官方群 用盗版的?
----------------------------------------------
(C)(P)Flying Wang
作者:
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;
----------------------------------------------
-
作者:
2014/7/25 17:44:52
11楼:
楼上的,本人提出使用 QuotedStr 的,但是如果不用呢? 您看看,大家都反对用 QuotedStr 呢。 好像你自己也没打算用。
----------------------------------------------
(C)(P)Flying Wang
作者:
2014/7/25 17:49:43
12楼:
老妖 252336957 已踢。 也不知道什么时候得罪你了。不过既然已经得罪了,再得罪一次,也一样了。
----------------------------------------------
(C)(P)Flying Wang
作者:
2014/7/25 23:54:41
13楼:
4楼是对的。其它的都是费话。
----------------------------------------------
我是菜鸟,己经搞了十多年了,但是我仍然很菜。
作者:
2014/7/26 10:46:37
14楼:
语句写错了
----------------------------------------------
还可以更好
作者:
tiez (骑牛夜旅)
★☆☆☆☆
-
普通会员
2014/7/29 1:06:39
15楼:
其实不小心写错就是看不出来的事偶也做过好多的说,有的时候还以为是delphi的bug,我汗
----------------------------------------------
-
作者:
2014/7/29 9:26:22
16楼:
应该使用QuotedStr, 上面我应该写了, 不知道是否显示不出来, 再写一次: adoQuery1.sql.add('select * from 登记 where [' + combobox1.text + '] like "%'+QuotedStr(edit1.Text)+'%" ');
----------------------------------------------
-
作者:
2014/8/2 15:17:27
17楼:
internetzs 可以使用,谢谢!
----------------------------------------------
-
作者:
2014/8/11 16:47:53
18楼:
楼主新手吧,这么基础的东西,一帮人答非所问,唉,自以为是,难道干这一行都这个得性,没看清楼主需要什么就吵起来了,真搞笑,这就是国人丑陋的生面,楼主表字段用的是中文吧,要是字段名是字母呢,有没有想过如何处理是最佳办法??
----------------------------------------------
-
作者:
2014/8/11 17:12:45
19楼:
楼上的也是“这个得性” 你也是答非所问! 另外,你丑陋,不代表我们中国人丑陋。 你就不要丢人了。
----------------------------------------------
(C)(P)Flying Wang
作者:
2014/8/12 11:34:48
20楼:
你没看到楼主说 internetzs 可以使用 了吗,我又何必多此一举,我是想告诉楼主,我这有这种情况更好的解决方案,楼主没跟进,我就不多说了。我说一帮人答非所问,也没指名道姓说谁呀,你就抢着对号入坐了,呵呵.....真逗
----------------------------------------------
-
作者:
2014/8/12 11:45:21
21楼:
楼上的你不是中国人,我们是。请你滚回你的祖国去!
----------------------------------------------
(C)(P)Flying Wang
作者:
2014/8/13 12:27:05
22楼:
楼上的,你把我和我同事都逗乐了 谢谢哈........
----------------------------------------------
-
作者:
2014/8/23 17:59:00
23楼:
有时候吵吵,也不是坏事。只是不要进行人身攻击就好。这热闹一点,挺好的。盒子是老家啊。我们都比较恋旧。
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
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;
----------------------------------------------
还可以更好