回 帖 发 新 帖 刷新版面

主题:[原创]删除语句!!高手请进

ADOQuery1.SQL.Clear;
 ADOQuery1.SQL.Add('DELETE FROM 一通1');
 ADOQuery1.SQL.Add('WHERE 月份='+trim(ComboBox1.Text)+'''');
adoTable1.Delete;
但是不能实现删除当ComboBox1.Text=某月的信息.请问如何该???

回复列表 (共6个回复)

沙发

'DELETE FROM 一通1 WHERE ' + ComboBox1.Text + ' = "某月的信息"'

板凳

ADOQuery1.SQL.Add('WHERE 月份='''+trim(ComboBox1.Text)+'''');

3 楼

经过本人测试,以下代码绝对可以正确运行:
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 楼

楼上批评的极对.
不过SQL能自动的ACCESS不一定能自动.
因为我做的系统必须要求同时支持SQL和ACCESS.所以弄成了这样的一种编程风格..
郑重申明.我绝对不是为了"显示得出自己的功底有多么的深厚?";
其实有人发帖.有人跟帖.不管处于真正想帮助楼主或者是想得一点点分数.我们都是在和楼主答问题,请那些"老前辈"们给点面子.....
有些人也极其奇怪,都活了一大把年纪了.说话怎么还是那么讨人厌呢???????[em18][em18][em18]

5 楼

[quote]不过SQL能自动的ACCESS不一定能自动.[/quote]
不好意思,我平时用的就是Access数据库.
SQL是一种语言,Access是一种数据库类型.
[quote]郑重申明.我绝对不是为了"显示得出自己的功底有多么的深厚?";[/quote]
我并不是指你,而是很多用Delphi的人都会犯这个不是错误的错误.
[quote]不管处于真正想帮助楼主或者是想得一点点分数[/quote]
如果你认为我在刷分,我无语.如果看到这个版的问题一个星期没人答,而我去答了就叫刷分,我无语.
[quote]有些人也极其奇怪,都活了一大把年纪了.说话怎么还是那么讨人厌呢???????[/quote]
人老了,去到哪里都是惹你们年轻人的厌.我无语.

6 楼

呵呵,都是帮助别人,不要吵啊!希望到此为止!

我来回复

您尚未登录,请登录后再回复。点此登录或注册