主题:[原创]删除语句!!高手请进
kao1982215
[专家分:0] 发布于 2007-01-03 18:48:00
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('DELETE FROM 一通1');
ADOQuery1.SQL.Add('WHERE 月份='+trim(ComboBox1.Text)+'''');
adoTable1.Delete;
但是不能实现删除当ComboBox1.Text=某月的信息.请问如何该???
回复列表 (共6个回复)
沙发
tanchuhan [专家分:15140] 发布于 2007-01-03 19:50:00
'DELETE FROM 一通1 WHERE ' + ComboBox1.Text + ' = "某月的信息"'
板凳
zaliang [专家分:1010] 发布于 2007-01-04 14:08:00
ADOQuery1.SQL.Add('WHERE 月份='''+trim(ComboBox1.Text)+'''');
3 楼
tanchuhan [专家分:15140] 发布于 2007-01-04 15:10:00
经过本人测试,以下代码绝对可以正确运行:
adoquery1.SQL.Add('DELETE FROM 一通1 WHERE ' + ComboBox1.Text + ' = "某月的信息"');
adoquery1.ExecSQL;
[quote]ADOQuery1.SQL.Add('WHERE 月份='''+trim(ComboBox1.Text)+'''');[/quote]
SQL是支持双串号表示字符串的,我就不明白为什么这么多用Delphi的人都那么喜欢折腾,非要搞出个 'WHERE 月份='''+trim(ComboBox1.Text)+'''' ,这样才显示得出自己的功底深厚么?
不容易阅读,不容易理解,想的难度倒不小。
换成这样不好么:'WHERE 月份="' ComboBox1.Text + '"'
trim()根本就是多此一举,SQL内部会自动把你的空白去掉。
4 楼
zaliang [专家分:1010] 发布于 2007-01-06 16:08:00
楼上批评的极对.
不过SQL能自动的ACCESS不一定能自动.
因为我做的系统必须要求同时支持SQL和ACCESS.所以弄成了这样的一种编程风格..
郑重申明.我绝对不是为了"显示得出自己的功底有多么的深厚?";
其实有人发帖.有人跟帖.不管处于真正想帮助楼主或者是想得一点点分数.我们都是在和楼主答问题,请那些"老前辈"们给点面子.....
有些人也极其奇怪,都活了一大把年纪了.说话怎么还是那么讨人厌呢???????[em18][em18][em18]
5 楼
tanchuhan [专家分:15140] 发布于 2007-01-06 19:02:00
[quote]不过SQL能自动的ACCESS不一定能自动.[/quote]
不好意思,我平时用的就是Access数据库.
SQL是一种语言,Access是一种数据库类型.
[quote]郑重申明.我绝对不是为了"显示得出自己的功底有多么的深厚?";[/quote]
我并不是指你,而是很多用Delphi的人都会犯这个不是错误的错误.
[quote]不管处于真正想帮助楼主或者是想得一点点分数[/quote]
如果你认为我在刷分,我无语.如果看到这个版的问题一个星期没人答,而我去答了就叫刷分,我无语.
[quote]有些人也极其奇怪,都活了一大把年纪了.说话怎么还是那么讨人厌呢???????[/quote]
人老了,去到哪里都是惹你们年轻人的厌.我无语.
6 楼
aizaixiiii [专家分:2130] 发布于 2007-01-06 20:32:00
呵呵,都是帮助别人,不要吵啊!希望到此为止!
我来回复