为什么我的代码有一行不能编译,50分,在先线等 ( 积分: 50 )

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

darlingpeng

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么我的代码有一行不能编译,代码本身没有错误啊
msql6:='select * from txt_tmp1';
with ADOQuery4 do begin
ADOQuery4.Close;
ADOQuery4.SQL.Clear;
ADOQuery4.SQL.Add(msql6);
ADOQuery4.Open;
while not eof do begin

a1:=ADOQuery4.fieldbyname('a1').AsString;
b1:=copy(a1,1,6);
c1:='create';
if b1=c1 then begin
n:=n+1; //可以编译

end;
next;
end;
end;

为什么下面的代码基本一样但是不能编译呢
for i:=1 to n do begin
k:=0;
msql3:='select * from txt_tmp1';
with ADOQuery5 do begin //
ADOQuery5.Close;
ADOQuery5.SQL.Clear;
ADOQuery5.SQL.Add(msql3);
ADOQuery5.Open;
while not eof do begin

d1:=ADOQuery5.fieldbyname('a1').AsString;
//l:=l+1;
e1:=copy(d1,1,6);
f1:='create';
if e1=f1 then
begin
// inc(k);
a0:=ADOQuery5.fieldbyname('a0').AsInteger;
k:=k+1; //不能编译,自动跳过这行代码,我找了很久,没找到原因,请大侠们帮帮忙
end;
next;
j:=j+1;
end;
end;//
end;
 
可以啊 编译通过啊 你是不是有的变量没有定义啊? 你的代码好乱啊
procedure TForm1.Button1Click(Sender: TObject);
var
I,K,a0,j:integer;
msql3,d1,e1,f1:String;
const n =100;
begin
for i:=1 to n do begin
k:=0;
msql3:='select * from txt_tmp1';
with ADOQuery5 do begin //
ADOQuery5.Close;
ADOQuery5.SQL.Clear;
ADOQuery5.SQL.Add(msql3);
ADOQuery5.Open;
while not eof do begin

d1:=ADOQuery5.fieldbyname('a1').AsString;
//l:=l+1;
e1:=copy(d1,1,6);
f1:='create';
if e1=f1 then
begin
// inc(k);
a0:=ADOQuery5.fieldbyname('a0').AsInteger;
k:=k+1; //不能编译,自动跳过这行代码,我找了很久,没找到原因,请大侠们帮帮忙
end;
next;
j:=j+1;
end;
end;//
end;
end;
 
有没有人知道是怎么回事,我开始以为是delphi编译器出了问题
我重装 delphi 后还是不能编译那行代码
 
你的代码写得太不规范了
with ADOQuery5 do 后面的又写ADOQuery5.fieldbyname('a0').AsInteger

a0:=ADOQuery5.fieldbyname('a0').AsInteger;
这一句有执行吗
 
变量肯定定义了
k:=k+1; //不能编译,自动跳过这行代码,我找了很久,没找到原因,请大侠们帮帮忙
就是这行代码编译前面没有 “ . ” ,程序执行时就跳过这行代码了
我觉的代码没有问题,就是不能编译这行代码
 
to 勇者,

a0:=ADOQuery5.fieldbyname('a0').AsInteger;
可以执行,我也不想写这个代码,
关键是 k:=k+1; 这行代码不执行,
 
什么嘛!这是因为你的这个k实际上并没有什么用处,所以delphi编译器将它优化掉了! 你编译时应该有 Value assigned to 'k' never used 的提示,因此编译时应该注意delphi的提示.
 
to
dreamisx,
谢谢,我看看,刚才网络不好
Value assigned to 'k' never used 这个提示确实有
 
to
dreamisx,
谢谢了,问题解决了,
!是因为你的这个k实际上并没有什么用处,所以delphi编译器将它优化掉了所以delphi编译器将它优化掉了!
 
后退
顶部