主要代码:
procedure TForm2.BitBtn1Click(Sender: TObject);
Var
s1,s2:String;
i:integer;
begin
s1:= '';
for i := 0 to ListBox2.Items.Count - 1 do
begin
if s1 = '' then
begin
s1 := QuotedStr(Trim(ListBox2.Items[i]));
s2 :=' And (TA021 = '+s1+')';
end
else
begin
s1 :='('+ s1 + ',' + QuotedStr(Trim(ListBox2.Items[i]))+')';
s2 :=' And (TA021 in '+s1+')';
end;
end;
end;最后执行一个查询语句,其中'select * from A where (TA001=''Y'') + s2'
ListBox2.Items可允许为0001,0002,0003,0004等值,但当为0003时,则没有什么信息.
1、当ListBox2.Items只有0001时可以查出相应的值,只有0002时可以查出相应的值,只有0003时则返回结果为空,只有0004时可以查出相应的值;
2、当ListBox2.Items有0001,0002,0004时可以查出相应的值
3、关键是当ListBox2.Items有0001,0002,0003,0004时,当包含有0003时,程序则提示','附近有错误,请问这是什么原因?
procedure TForm2.BitBtn1Click(Sender: TObject);
Var
s1,s2:String;
i:integer;
begin
s1:= '';
for i := 0 to ListBox2.Items.Count - 1 do
begin
if s1 = '' then
begin
s1 := QuotedStr(Trim(ListBox2.Items[i]));
s2 :=' And (TA021 = '+s1+')';
end
else
begin
s1 :='('+ s1 + ',' + QuotedStr(Trim(ListBox2.Items[i]))+')';
s2 :=' And (TA021 in '+s1+')';
end;
end;
end;最后执行一个查询语句,其中'select * from A where (TA001=''Y'') + s2'
ListBox2.Items可允许为0001,0002,0003,0004等值,但当为0003时,则没有什么信息.
1、当ListBox2.Items只有0001时可以查出相应的值,只有0002时可以查出相应的值,只有0003时则返回结果为空,只有0004时可以查出相应的值;
2、当ListBox2.Items有0001,0002,0004时可以查出相应的值
3、关键是当ListBox2.Items有0001,0002,0003,0004时,当包含有0003时,程序则提示','附近有错误,请问这是什么原因?
解决方案 »
- delphi 达人~~ 请问 delphi 能用 c++的 lib 库不???????
- 请教几个简单的问题,望各位帮我一下
- 谁能告诉我,那个好用的输入IP地址的控件,救命啊!!!!!!
- 一个小小的通讯问题,请进来看看。急手!!!!
- 能不能给回个帖子呀?
- 谁有人事管理系统的三个控件xpmenu3.0,fastreport2.50,ehlib3.0
- delphi 7中的quick report怎么不见啦
- 怎么去掉delphi自身给菜单上加上的快捷键如:系统功能(U),业务管理(V).....?
- 请问在Delphi6中连接SQL2000数据库,都需要用到那些控件?
- C++builder到Delphi的转换!
- 项目共用MyDac与ADOQuery的问题
- 控制clientdataset 中的记录根据条件判断是否可修改
跟踪一下SQL语句,放到查询分析器执行看看具体是哪写错了
procedure TForm1.Button1Click(Sender: TObject);
var
s,sqlstr:string;
i:integer;
begin
sqlstr:='select * from A where (TA001=''Y'') and TA021 in(';
s:='';
for i :=0 to ListBox1.Items.Count-1 do begin
s:=s+QuotedStr(ListBox1.Items.Strings[i])+',';
end;
s:=copy(s,1,length(s)-1);
sqlstr:=sqlstr+s+')'; with adoquery1 do begin
close;
sql.Text:=sqlstr;
open;
end;end;