俺的项目里需要从数据库里查询字符串,并将字符串连接起来,连接好的以'0F7F'开始,以'0F0D'结束,俺滴代码错在哪里,查询为什么进行不下去 ? idd:=1 ;
Form1.ADOQuery1.Close();
Form1.ADOQuery1.SQL.Clear;
sql:='select * from test where id='+inttostr(idd); //按照test表里的id号一行一行顺次查询
begin
Form1.ADOQuery1 .SQL .Add(sql);
Form1.ADOQuery1.Open;
if AdoQuery1.bof then
S:=ADOQuery1.FieldByName('TJ').Value;
if (Leftstr(S,4)<>'0F7F') and ( RightStr(S,4)<>'0F0D') then
S:=s
else
begin
idd:=idd+1 ;
ADOQuery1.Next ;
S1:=form1.ADOQuery1.FieldByName('TJ').Value;
if(Leftstr(S,4)<>'0F7F') and ( RightStr(S,4)='0F0D') then
S:=s+s1;
ADOQuery1.Next ;
Form1.ADOQuery1.Close();
Form1.ADOQuery1.SQL.Clear;
sql:='select * from test where id='+inttostr(idd); //按照test表里的id号一行一行顺次查询
begin
Form1.ADOQuery1 .SQL .Add(sql);
Form1.ADOQuery1.Open;
if AdoQuery1.bof then
S:=ADOQuery1.FieldByName('TJ').Value;
if (Leftstr(S,4)<>'0F7F') and ( RightStr(S,4)<>'0F0D') then
S:=s
else
begin
idd:=idd+1 ;
ADOQuery1.Next ;
S1:=form1.ADOQuery1.FieldByName('TJ').Value;
if(Leftstr(S,4)<>'0F7F') and ( RightStr(S,4)='0F0D') then
S:=s+s1;
ADOQuery1.Next ;
Form1.ADOQuery1 .SQL .Add(sql);
Form1.ADOQuery1.Open;
while not adoquery1.eof do // <---
begin // <--
S:=ADOQuery1.FieldByName('TJ').Value;
if (Leftstr(S,4) <>'0F7F') and ( RightStr(S,4) <>'0F0D') then
S:=s
else
begin
idd:=idd+1 ;
ADOQuery1.Next ;
S1:=form1.ADOQuery1.FieldByName('TJ').Value;
if(Leftstr(S,4) <>'0F7F') and ( RightStr(S,4)='0F0D') then
S:=s+s1;
ADOQuery1.Next ;
end; // <---
Form1.ADOQuery1 .SQL .Add(sql);
Form1.ADOQuery1.Open;
while not adoquery1.eof do // <---
begin // <--
S:=ADOQuery1.FieldByName('TJ').Value;
// if (Leftstr(S,4) <>'0F7F') and ( RightStr(S,4) <>'0F0D') then
// S:=s
// else
// begin
// idd:=idd+1 ;
// ADOQuery1.Next ;
S1:=form1.ADOQuery1.FieldByName('TJ').Value;
if(Leftstr(S,4) <>'0F7F') and ( RightStr(S,4)='0F0D') then
S:=s+s1;
ADOQuery1.Next ;
end;
//再给你一个简单的 while not adoquery1.eof do
begin
S:= S + form1.ADOQuery1.FieldByName('TJ').Value;
ADOQuery1.Next;
end;
S1:= copy(S,pos('0F7F',S),pos('0F0D',S)+4-pos('0F7F',S));
showmessage(S1);
begin
S:= S + form1.ADOQuery1.FieldByName('TJ').Value;
(Leftstr(S,4) <>'0F7F') and ( RightStr(S,4) <>'0F0D') then
begin
//dealing what you want to do
end;
ADOQuery1.Next;
end;
while not adoquery1.eof do
begin
S:= S + form1.ADOQuery1.FieldByName('TJ').Value;
if (Leftstr(S,4) <>'0F7F') and ( RightStr(S,4) <>'0F0D') then
begin
//dealing what you want to do
Break; //结束查找
end;
ADOQuery1.Next;
end;
idd:=1 ;
Form1.ADOQuery1.Close();
Form1.ADOQuery1.SQL.Clear;
sql:='select * from test where id='+inttostr(idd); //按照test表里的id号一行一行顺次查询
begin
Form1.ADOQuery1 .SQL .Add(sql);
Form1.ADOQuery1.Open;
Form1.ADOQuery1.First;//先行至第一条
while not Form1.ADOQuery1.EOF do
begin
S:=ADOQuery1.FieldByName('TJ').Value;
if (Leftstr(S,4) <>'0F7F') and ( RightStr(S,4) <>'0F0D') then
S:=s
else
begin
idd:=idd+1 ;
ADOQuery1.Next ;
S1:=form1.ADOQuery1.FieldByName('TJ').Value;
if(Leftstr(S,4) <>'0F7F') and ( RightStr(S,4)='0F0D') then
S:=s+s1;
ADOQuery1.Next ;
end;