帮忙看一下这个SQL语句哪儿写错了……

kkgogo 2004-11-03 11:10:37
ADOQuery1.sql.add('select * from ku where');
adoquery1.SQL.Add('xh='''+combobox1.Text+'''');
adoquery1.SQL.Add('and rq BETWEEN '''+datetostr(begin_date.Date)+''' and '''+datetostr(end_date.date)+'''');
提示“=”附近有错误
...全文
170 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
hc0007 2004-11-03
  • 打赏
  • 举报
回复
ADOQuery1.close;
ADOQuery1.sql.clear;

if trim(combobox1.Text)='任意' then
ADOQuery1.sql.add(' select * from ku where rq BETWEEN '''+datetostr(begin_date.Date)+''' and '''+datetostr(end_date.date)+'''')

else
begin
ADOQuery1.sql.add(' select * from ku where');
adoquery1.SQL.Add(' xh='''+trim(combobox1.Text)+'''');
adoquery1.SQL.Add(' and rq BETWEEN '''+datetostr(begin_date.Date)+''' and '''+datetostr(end_date.date)+'''');
end;
ADOQuery1.open;
jiang130 2004-11-03
  • 打赏
  • 举报
回复
ADOQuery1.close;
ADOQuery1.sql.clear;
ADOQuery1.sql.add(' select * from ku where 1=1 ');

if trim(combobox1.text)<>'任意' then
begin
adoquery1.SQL.Add(' and xh='''+trim(combobox1.Text)+'''');
adoquery1.SQL.Add(' and rq BETWEEN '''+datetostr(begin_date.Date)+''' and '''+datetostr(end_date.date)+'''');
end

ADOQuery1.open;

加個1=1 ,不管有沒有條件都是加 'and '
kkgogo 2004-11-03
  • 打赏
  • 举报
回复
ADOQuery1.close;
ADOQuery1.sql.clear;

if trim(combobox1.Text)='任意' then
ADOQuery1.sql.add(' select * from ku where rq BETWEEN '''+datetostr(begin_date.Date)+''' and '''+datetostr(end_date.date)+'''');

if trim(combobox1.text)<>'任意' then
ADOQuery1.sql.add(' select * from ku where');
adoquery1.SQL.Add(' xh='''+trim(combobox1.Text)+'''');
adoquery1.SQL.Add(' and rq BETWEEN '''+datetostr(begin_date.Date)+''' and '''+datetostr(end_date.date)+'''');

ADOQuery1.open;

先谢谢楼上几位,改成这样还是不行,“xh”附近有错误
梅青松 2004-11-03
  • 打赏
  • 举报
回复
数据库中 xh 字段是什么类型的
rufer 2004-11-03
  • 打赏
  • 举报
回复
没看明白选“任意”,不就是*了吗,怎么还有'xh'啊。
adoquery1.sql.add('select * from ku where');
adoquery1.sql.add(' xh = '+''''+combobox1.text+'''');
adoquery1.sql.add(' and rq BETWEEN '+''''+datetostr(begin_date.date)+''''+'and'
+''''+datetostr(end_date.date)+'''');

kkgogo 2004-11-03
  • 打赏
  • 举报
回复
我是不懂,不是没养成习惯……对不住
hc0007 2004-11-03
  • 打赏
  • 举报
回复
adoquery1.SQL.Add(' xh='''+trim(combobox1.Text)+'''');
xfgncit98 2004-11-03
  • 打赏
  • 举报
回复
With ADOQuery1 do
begin
CLose;
SQL.Add('select * from ku where ');//注意空格
SQL.Add('xh='''+combobox1.Text+''' '); //注意空格
SQL.Add('and rq BETWEEN '''+datetostr(begin_date.Date)+''' and '''+datetostr(end_date.date)+'''');

end;
kkgogo 2004-11-03
  • 打赏
  • 举报
回复
ADOQuery1.close;
ADOQuery1.sql.clear;

if trim(combobox1.Text)='任意' then
ADOQuery1.sql.add('select * from ku where rq BETWEEN '''+datetostr(begin_date.Date)+''' and '''+datetostr(end_date.date)+'''');

if trim(combobox1.text)<>'任意' then
ADOQuery1.sql.add('select * from ku where');
adoquery1.SQL.Add(' xh='''+combobox1.Text+'''');
adoquery1.SQL.Add('and rq BETWEEN '''+datetostr(begin_date.Date)+''' and '''+datetostr(end_date.date)+'''');

刚才试过了,我要是在combobox1中不选任意,就没事,只要一选任意,就提示我在xh附近有错!

ADOQuery1.open;
dream2001 2004-11-03
  • 打赏
  • 举报
回复
楼上说的对头,还有你可以把sql 语句输出来看看啊。
lzy6204 2004-11-03
  • 打赏
  • 举报
回复
都加空格,养成习惯
ADOQuery1.sql.add(' select * from ku where');
adoquery1.SQL.Add(' xh='''+combobox1.Text+'''');
adoquery1.SQL.Add(' and rq BETWEEN '''+datetostr(begin_date.Date)+''' and '''+datetostr(end_date.date)+'''');
梅青松 2004-11-03
  • 打赏
  • 举报
回复
adoquery1.SQL.Add(' xh='''+combobox1.Text+''''); //少空格
kkgogo 2004-11-03
  • 打赏
  • 举报
回复
谢谢大家,我知道了。散分了……
dabaicai 2004-11-03
  • 打赏
  • 举报
回复
在open行设断点,执行到的时候,点ADOQUERY1,按Ctrl+F7,在上面输入adoquery1.sql.text 回车把下面的SQL拉出来执行看看,就知道错在哪了
jiang130 2004-11-03
  • 打赏
  • 举报
回复
1=1是一個絕對成立的條件,只是加上它以后,后面的條件放心用and 連,而不必考慮用 where 還是 and
kkgogo 2004-11-03
  • 打赏
  • 举报
回复
jiang130能不能讲一下,为什么加1=1就行了?

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧