procedure TPaiweiFrm.RefreshFrm;
var
sqlstr,sqlstr2:string;
i,j:Integer;
oldTime:TDateTime;
begin
sqlstr:='delete from PaiWei_Detail update paiwei_now set ords='' ,noword='' ' ;
qry1.SQL.Clear;
qry1.SQL.Add('select max(PWdatetime) as PWdatetime from PaiWei_Detail') ;
qry1.Open;
oldtime:=qry1.fieldbyname('PWdatetime').asdatetime;
try
if FormatdateTime('dd',now)<>FormatdateTime('dd',oldtime) then
begin
qry2.SQL.Clear;
qry2.SQL.Add(sqlstr);
qry2.ExecSQL;
end;
qry1.SQL.Clear;
qry1.SQL.Add( 'select distinct id from paiwei_type ');
qry1.Open;
j:=qry1.RecordCount;
sqlstr:='select typename from paiwei_type order by id ';
qry1.SQL.Clear;
qry1.SQL.Add(sqlstr);
qry1.Open;
while not qry1.Eof do
begin
TLabel(PaiweiFrm.FindComponent('lbl'+inttostr(qry1.RecNo))).Caption:=qry1.fieldbyname('typename').AsString;
TLabel(PaiweiFrm.FindComponent('lbl1'+inttostr(qry1.RecNo))).Caption:=qry1.fieldbyname('typename').AsString;
qry1.Next;
end; sqlstr:='select count(*) as num,b.tabletype as id from paiwei_detail a left join paiwei_type b '
+' on a.tabtype=b.tabletype group by b.tabletype ' ;
qry1.SQL.Clear;
qry1.SQL.Add(sqlstr);
qry1.Open;
while not qry1.Eof do
begin
TLabel(PaiweiFrm.FindComponent('lbl'+(qry1.fieldbyname('id')).AsString)).Caption:=
TLabel(PaiweiFrm.FindComponent('lbl'+(qry1.fieldbyname('id')).AsString)).Caption+'还有'+
qry1.fieldbyname('num').AsString +'桌客人在等候! ' ;
qry1.Next;
end; sqlstr:='select min(id) as id from paiwei_detail where tabtype =:typeid ';
sqlstr2:='select top 1 * from paiwei_detail where id not in(select min(id) '
+' from paiwei_detail where tabtype=:typeid1) and tabtype=:typeid2 ';
qry1.SQL.Clear;
qry2.SQL.Clear;
qry1.SQL.Add(sqlstr);
qry2.SQL.Add(sqlstr2);
for i:=1 to j do
begin
qry1.Parameters.ParseSQL(qry1.SQL.Text,True);
qry2.Parameters.ParseSQL(qry2.SQL.Text,True);
qry1.Parameters.ParamByName('typeid').Value:=i;
qry2.Parameters.ParamByName('typeid1').Value:=i;
qry2.Parameters.ParamByName('typeid2').Value:=i;
qry1.Open; //单步到这里老是提示' 第一行 ":" 附近有语法错误'
qry2.Open;
TLabel(PaiweiFrm.FindComponent('lbl2'+inttostr(i))).caption:='第'+qry1.fieldbyname('id').Asstring+'号';
mmo1.Lines.Add((TLabel(PaiweiFrm.FindComponent('lbl'+inttostr(i))).caption)+#13#10+'下一位'+
(qry2.fieldbyname('id').asstring)+'号');
end
except
ShowMessage('刷新状态出错!');
exit;
end;
end;
var
sqlstr,sqlstr2:string;
i,j:Integer;
oldTime:TDateTime;
begin
sqlstr:='delete from PaiWei_Detail update paiwei_now set ords='' ,noword='' ' ;
qry1.SQL.Clear;
qry1.SQL.Add('select max(PWdatetime) as PWdatetime from PaiWei_Detail') ;
qry1.Open;
oldtime:=qry1.fieldbyname('PWdatetime').asdatetime;
try
if FormatdateTime('dd',now)<>FormatdateTime('dd',oldtime) then
begin
qry2.SQL.Clear;
qry2.SQL.Add(sqlstr);
qry2.ExecSQL;
end;
qry1.SQL.Clear;
qry1.SQL.Add( 'select distinct id from paiwei_type ');
qry1.Open;
j:=qry1.RecordCount;
sqlstr:='select typename from paiwei_type order by id ';
qry1.SQL.Clear;
qry1.SQL.Add(sqlstr);
qry1.Open;
while not qry1.Eof do
begin
TLabel(PaiweiFrm.FindComponent('lbl'+inttostr(qry1.RecNo))).Caption:=qry1.fieldbyname('typename').AsString;
TLabel(PaiweiFrm.FindComponent('lbl1'+inttostr(qry1.RecNo))).Caption:=qry1.fieldbyname('typename').AsString;
qry1.Next;
end; sqlstr:='select count(*) as num,b.tabletype as id from paiwei_detail a left join paiwei_type b '
+' on a.tabtype=b.tabletype group by b.tabletype ' ;
qry1.SQL.Clear;
qry1.SQL.Add(sqlstr);
qry1.Open;
while not qry1.Eof do
begin
TLabel(PaiweiFrm.FindComponent('lbl'+(qry1.fieldbyname('id')).AsString)).Caption:=
TLabel(PaiweiFrm.FindComponent('lbl'+(qry1.fieldbyname('id')).AsString)).Caption+'还有'+
qry1.fieldbyname('num').AsString +'桌客人在等候! ' ;
qry1.Next;
end; sqlstr:='select min(id) as id from paiwei_detail where tabtype =:typeid ';
sqlstr2:='select top 1 * from paiwei_detail where id not in(select min(id) '
+' from paiwei_detail where tabtype=:typeid1) and tabtype=:typeid2 ';
qry1.SQL.Clear;
qry2.SQL.Clear;
qry1.SQL.Add(sqlstr);
qry2.SQL.Add(sqlstr2);
for i:=1 to j do
begin
qry1.Parameters.ParseSQL(qry1.SQL.Text,True);
qry2.Parameters.ParseSQL(qry2.SQL.Text,True);
qry1.Parameters.ParamByName('typeid').Value:=i;
qry2.Parameters.ParamByName('typeid1').Value:=i;
qry2.Parameters.ParamByName('typeid2').Value:=i;
qry1.Open; //单步到这里老是提示' 第一行 ":" 附近有语法错误'
qry2.Open;
TLabel(PaiweiFrm.FindComponent('lbl2'+inttostr(i))).caption:='第'+qry1.fieldbyname('id').Asstring+'号';
mmo1.Lines.Add((TLabel(PaiweiFrm.FindComponent('lbl'+inttostr(i))).caption)+#13#10+'下一位'+
(qry2.fieldbyname('id').asstring)+'号');
end
except
ShowMessage('刷新状态出错!');
exit;
end;
end;
qry2.SQL.Clear;
qry1.SQL.Add(sqlstr);
qry2.SQL.Add(sqlstr2);
for i:=1 to j do
begin
qry1.Parameters.ParseSQL(qry1.SQL.Text,True);
qry2.Parameters.ParseSQL(qry2.SQL.Text,True);
qry1.Parameters.ParamByName('typeid').Value:=i;
qry2.Parameters.ParamByName('typeid1').Value:=i;
qry2.Parameters.ParamByName('typeid2').Value:=i;
qry1.Open; //单步到这里老是提示' 第一行 ":" 附近有语法错误'
qry2.Open;
TLabel(PaiweiFrm.FindComponent('lbl2'+inttostr(i))).caption:='第'+qry1.fieldbyname('id').Asstring+'号';
mmo1.Lines.Add((TLabel(PaiweiFrm.FindComponent('lbl'+inttostr(i))).caption)+#13#10+'下一位'+
(qry2.fieldbyname('id').asstring)+'号');
end
i to j 循环的时间,这不是一直在OPEN()?
begin
qry1.Parameters.ParseSQL(qry1.SQL.Text,True);
qry2.Parameters.ParseSQL(qry2.SQL.Text,True);
qry1.Parameters.ParamByName('typeid').Value:=i;
qry2.Parameters.ParamByName('typeid1').Value:=i;
qry2.Parameters.ParamByName('typeid2').Value:=i;
qry1.Open; //单步到这里老是提示' 第一行 ":" 附近有语法错误'
qry2.Open; TLabel(PaiweiFrm.FindComponent('lbl2'+inttostr(i))).caption:='第'+qry1.fieldbyname('id').Asstring+'号';
mmo1.Lines.Add((TLabel(PaiweiFrm.FindComponent('lbl'+inttostr(i))).caption)+#13#10+'下一位'+
(qry2.fieldbyname('id').asstring)+'号');
end应该先CLOSE再OPEN
(我看见佛):即使不close不行,但是第一次OPEN就是语法错误的.不懂
show出来是这个
for i:=1 to j do
begin
qry1.close;
qry1.sql.text:='select min(id) as id from paiwei_detail where tabtype ='+IntToStr(i);
qry1.open;
...
end;
qry1.Parameters.ParseSQL(qry1.SQL.Text,True);
qry2.Parameters.ParseSQL(qry2.SQL.Text,True);前面加上这个试试,应该不是主从表的关系吧,看不出什么问题
to : case5166 (我看见佛) 这个我也试过了,问题依旧!
这样子吧,或许因为关键字的问题