有关SQL语句的问题(100分)

  • 主题发起人 主题发起人 dg_hy
  • 开始时间 开始时间
D

dg_hy

Unregistered / Unconfirmed
GUEST, unregistred user!
ADOQuery1.SQL.Add('SELECT * FROM DATA_'+ST1);
ADOQuery1.SQL.Add('WHERE SorB=True');
ADOQuery1.SQL.Add('SandB Between '+S1+' And '+S2);
ADOQuery1.SQL.Add('AND Pair='+#39+ComboBox1.Text+#39);
ADOQuery1.SQL.Add('Order By SandB ASC');

提示SQL语法错误,估计是第二行Between * and * 出现的错误,但不知道该如何写,请各位帮忙。
 
ADOQuery1.SQL.Add('SandB Between '+S1+' And '+S2);
错在此句!SandB数据类型是什么?是数值型,还是字符串型?如果是字符串型,在S1和S2前后还要加上引号!!
 
QuotedStr(S1)
 
直接看啊. 你的每句之间没有空格.这样你在直接前,

showmessage(adoquery1.sql) 看一看语句写成什么了,就知道是哪句了。
 
建议这样写:
with ADOQuery1.SQL do
begin
Clear;
Add('SELECT * FROM DATA_'+ST1);
Add(' WHERE SorB=True'); //用的是什么数据库?可以在Where中用 True ?!
Add(' AND SandB Between '+S1+' And '+S2); //别忘了这里的 AND
Add(' AND Pair='+QuotedStr(ComboBox1.Text)); //用QuotedStr函数搞定单引号最保险
Add(' Order By SandB ASC');
//ShowMessage(Text); //必要时看看结果
end;
 
上面已经说的很明白了,来晚了,LZ应该一目了然了吧。
 
谢谢各位
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
1K
import
I
I
回复
0
查看
977
import
I
后退
顶部