这是我的代码,通过循环得到strNo递加的值,我刚学delphi,不知道到底怎么做?求高手指点
procedure TForm1.RzBitBtn1Click(Sender: TObject);
var
  Inc,strNo:string;
begin
with ADOQuery1 do  begin
    while not ADOQuery1.Eof do
   begin
   strNo:='00001'+'0000'+IntToStr(1);
   inc(1);
   next;
   end;
错误报告:[Error] Unit1.pas(57): Missing operator or semicolon
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

解决方案 »

  1.   

    修改了一下,还是一样的错误
    procedure TForm1.RzBitBtn1Click(Sender: TObject); 
    var
     iNo:Integer;
      Inc,strNo:string; 
    begin 
    with ADOQuery1 do  begin 
        while not ADOQuery1.Eof do 
      begin 
      strNo:='00001'+'0000'+IntToStr(iNo); 
      inc(iNo); ----这里出错
      next; 
      end;
    end; 
    错误报告:[Error] Unit1.pas(57): Missing operator or semicolon 
    [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
      

  2.   

    procedure TForm1.RzBitBtn1Click(Sender: TObject);
    var
      i:integer;
      strNo:string;
    begin
      with ADOQuery1 do  
      begin
        open;
        first;
        i:=1;
        while not Eof do
        begin
          strNo:='000010000'+IntToStr(i);
          inc(i);
          next;
        end;
      end; 
    end;
      

  3.   

    procedure TForm1.RzBitBtn1Click(Sender: TObject); 
    var 
      iNo:Integer; 
      strNo:string; 
    begin 
      with ADOQuery1 do  begin 
         while not Eof do begin 
           strNo:='00001'+'0000'+IntToStr(iNo); 
           inc(iNo); 
            next; 
        end;
      end; 
    end; 
      

  4.   

     变量里多了一个: Inc 变量同函数同名了。最好改改
      

  5.   

    我晕哦,这个问题解决了,但是让我的程序中的另外一个功能消失了。
    具体情况是这样的,完整的程序没有报错,但是让我的程序中的sGUID失去作用了,每一行的sGUID都是一样的了!!以下是我的完整程序,高手看看,哪儿该修改!~~谢谢了!~~
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, RzButton, ADODB, Provider, DBClient, DB, Grids, DBGridEh,
      RzShellDialogs,comObj,ActiveX, StdCtrls;
    type
      TForm1 = class(TForm)
        ADOConnection1: TADOConnection;
        DBGridEh1: TDBGridEh;
        DataSource1: TDataSource;
        ADOConnection2: TADOConnection;
        ADOQuery1: TADOQuery;
        DataSource2: TDataSource;
        DBGridEh2: TDBGridEh;
        RzBitBtn1: TRzBitBtn;
        ADOQuery2: TADOQuery;
        procedure FormCreate(Sender: TObject);
        procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
        procedure RzBitBtn1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
    implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
    try
      ADOConnection2.Connected:=true;
      ADOConnection1.Connected:=true;
     Except
      Application.MessageBox('数据库连接失败,请检查参数!','警告',mb_iconwarning)
     end;
    end;procedure TForm1.RzBitBtn1Click(Sender: TObject);
    var
      I,iNo:Integer;
      sGUID,strNo:string;
      TmpGUID:TGUID;
    begin
    with  ADOQuery2 do begin
      ADOQuery2.SQL.clear;
      ADOQuery2.SQL.add('select * from [sheet1$]');
      ADOQuery2.Open;
      ADOQuery2.First;
    end;begin
      for I := 0 to 1000 do
      begin
        if CoCreateGUID(TmpGUID) = S_OK then
          sGUID := GUIDToString(TmpGUID)
      end;
    end;    ADOQuery1.SQL.Clear;
        ADOQuery1.SQL.add('select * from Pub_Btype');
        ADOQuery1.Open;
        iNo:=1;while not ADOQuery2.eof do begin
        ADOQuery1.Append;
        strNo:='00001'+'0000'+IntToStr(iNo);
        inc(iNo);
        next;
        ADOQuery1.FieldByName('BTypeID').AsString:=strNo;
        ADOQuery1.FieldByName('_id').asstring:=sguid;
        ADOQuery1.FieldByName('parid').AsString:='00001' ;
        ADOQuery1.FieldByName('_Level').AsString:='2' ;
        ADOQuery1.FieldByName('Modetype').AsString:='1' ;
        ADOQuery1.FieldByName('PriceType').AsString:='preprice1' ;
        ADOQuery1.FieldByName('FullName').asstring:=adoquery2.fieldbyname('名称').asstring;
        ADOQuery1.FieldByName('UserCode').asstring:=adoquery2.fieldbyname('编码').asstring;
        ADOQuery1.FieldByName('abbrName').asstring:=adoquery2.fieldbyname('简码').asstring;
        ADOQuery1.FieldByName('Comment').asstring:=adoquery2.fieldbyname('备注').asstring;
        ADOQuery2.next;
        end;
    ADOQuery1.Post;
    end;procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
    ADOConnection1.Connected:=false;
    ADOConnection2.Connected:=false;
    end;end.
      

  6.   


    unit Unit1; interface uses 
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
      Dialogs, RzButton, ADODB, Provider, DBClient, DB, Grids, DBGridEh, 
      RzShellDialogs,comObj,ActiveX, StdCtrls; 
    type 
      TForm1 = class(TForm) 
        ADOConnection1: TADOConnection; 
        DBGridEh1: TDBGridEh; 
        DataSource1: TDataSource; 
        ADOConnection2: TADOConnection; 
        ADOQuery1: TADOQuery; 
        DataSource2: TDataSource; 
        DBGridEh2: TDBGridEh; 
        RzBitBtn1: TRzBitBtn; 
        ADOQuery2: TADOQuery; 
        procedure FormCreate(Sender: TObject); 
        procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); 
        procedure RzBitBtn1Click(Sender: TObject); 
      private 
        { Private declarations } 
      public 
        { Public declarations } 
      end; var 
      Form1: TForm1; 
    implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); 
    begin 
      try 
        ADOConnection2.Connected:=true; 
        ADOConnection1.Connected:=true; 
      Except 
        Application.MessageBox('数据库连接失败,请检查参数!','警告',mb_iconwarning) 
      end; 
    end; procedure TForm1.RzBitBtn1Click(Sender: TObject); 
    var 
      I,iNo:Integer; 
      sGUID,strNo:string; 
      TmpGUID:TGUID; 
    begin 
      with  ADOQuery2 do begin 
        ADOQuery2.SQL.clear; 
        ADOQuery2.SQL.add('select * from [sheet1$]'); 
        ADOQuery2.Open; 
        ADOQuery2.First; 
      end;   for I := 0 to 1000 do begin 
        if CoCreateGUID(TmpGUID) = S_OK then 
          sGUID := GUIDToString(TmpGUID) 
      end;    ADOQuery1.SQL.Clear; 
      ADOQuery1.SQL.add('select * from Pub_Btype'); 
      ADOQuery1.Open; 
      iNo:=1;   with Adoquery2 do while not eof do begin 
        ADOQuery1.Append; 
        strNo:='00001'+'0000'+IntToStr(iNo); 
        inc(iNo); 
        ADOQuery1.FieldByName('BTypeID').AsString:=strNo; 
        ADOQuery1.FieldByName('_id').asstring:=sguid; 
        ADOQuery1.FieldByName('parid').AsString:='00001' ; 
        ADOQuery1.FieldByName('_Level').AsString:='2' ; 
        ADOQuery1.FieldByName('Modetype').AsString:='1' ; 
        ADOQuery1.FieldByName('PriceType').AsString:='preprice1' ; 
        ADOQuery1.FieldByName('FullName').asstring:=adoquery2.fieldbyname('名称').asstring; 
        ADOQuery1.FieldByName('UserCode').asstring:=adoquery2.fieldbyname('编码').asstring; 
        ADOQuery1.FieldByName('abbrName').asstring:=adoquery2.fieldbyname('简码').asstring; 
        ADOQuery1.FieldByName('Comment').asstring:=adoquery2.fieldbyname('备注').asstring; 
        next; 
      end; 
      if AdoQuery1.state in [dsinsert,dsEdit] then ADOQuery1.Post; 
    end; procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); 
    begin 
      ADOConnection1.Connected:=false; 
      ADOConnection2.Connected:=false; 
    end; end. 
      

  7.   


    interface uses 
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
      Dialogs, RzButton, ADODB, Provider, DBClient, DB, Grids, DBGridEh, 
      RzShellDialogs,comObj,ActiveX, StdCtrls; 
    type 
      TForm1 = class(TForm) 
        ADOConnection1: TADOConnection; 
        DBGridEh1: TDBGridEh; 
        DataSource1: TDataSource; 
        ADOConnection2: TADOConnection; 
        ADOQuery1: TADOQuery; 
        DataSource2: TDataSource; 
        DBGridEh2: TDBGridEh; 
        RzBitBtn1: TRzBitBtn; 
        ADOQuery2: TADOQuery; 
        procedure FormCreate(Sender: TObject); 
        procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); 
        procedure RzBitBtn1Click(Sender: TObject); 
      private 
        { Private declarations } 
      public 
        { Public declarations } 
      end; var 
      Form1: TForm1; 
    implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); 
    begin 
      try 
        ADOConnection2.Connected:=true; 
        ADOConnection1.Connected:=true; 
      Except 
        Application.MessageBox('数据库连接失败,请检查参数!','警告',mb_iconwarning) 
      end; 
    end; procedure TForm1.RzBitBtn1Click(Sender: TObject); 
    var 
      I,iNo:Integer; 
      sGUID,strNo:string; 
      TmpGUID:TGUID; 
    begin  
      ADOQuery2.SQL.clear; 
      ADOQuery2.SQL.add('select * from [sheet1$]'); 
      ADOQuery2.Open; 
      ADOQuery2.First;   ADOQuery1.SQL.Clear; 
      ADOQuery1.SQL.add('select * from Pub_Btype'); 
      ADOQuery1.Open; 
      iNo:=1;   with Adoquery2 do while not eof do begin     if CoCreateGUID(TmpGUID) = S_OK then 
          sGUID := GUIDToString(TmpGUID)     ADOQuery1.Append; 
        strNo:='00001'+'0000'+IntToStr(iNo); 
        inc(iNo); 
        ADOQuery1.FieldByName('BTypeID').AsString:=strNo; 
        ADOQuery1.FieldByName('_id').asstring:=sguid; 
        ADOQuery1.FieldByName('parid').AsString:='00001' ; 
        ADOQuery1.FieldByName('_Level').AsString:='2' ; 
        ADOQuery1.FieldByName('Modetype').AsString:='1' ; 
        ADOQuery1.FieldByName('PriceType').AsString:='preprice1' ; 
        ADOQuery1.FieldByName('FullName').asstring:=adoquery2.fieldbyname('名称').asstring; 
        ADOQuery1.FieldByName('UserCode').asstring:=adoquery2.fieldbyname('编码').asstring; 
        ADOQuery1.FieldByName('abbrName').asstring:=adoquery2.fieldbyname('简码').asstring; 
        ADOQuery1.FieldByName('Comment').asstring:=adoquery2.fieldbyname('备注').asstring; 
        next; 
      end; 
      if AdoQuery1.state in [dsinsert,dsEdit] then ADOQuery1.Post; 
    end; procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); 
    begin 
      ADOConnection1.Connected:=false; 
      ADOConnection2.Connected:=false; 
    end; end.  
     
     
      

  8.   

    这次,给的代码,报错了!~~
    ADOQuery1.Append; 
     这句出了问题
      

  9.   


    原来一点也不会啊。下面这个行的。interface uses 
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
      Dialogs, RzButton, ADODB, Provider, DBClient, DB, Grids, DBGridEh, 
      RzShellDialogs,comObj,ActiveX, StdCtrls; 
    type 
      TForm1 = class(TForm) 
        ADOConnection1: TADOConnection; 
        DBGridEh1: TDBGridEh; 
        DataSource1: TDataSource; 
        ADOConnection2: TADOConnection; 
        ADOQuery1: TADOQuery; 
        DataSource2: TDataSource; 
        DBGridEh2: TDBGridEh; 
        RzBitBtn1: TRzBitBtn; 
        ADOQuery2: TADOQuery; 
        procedure FormCreate(Sender: TObject); 
        procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); 
        procedure RzBitBtn1Click(Sender: TObject); 
      private 
        { Private declarations } 
      public 
        { Public declarations } 
      end; var 
      Form1: TForm1; 
    implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); 
    begin 
      try 
        ADOConnection2.Connected:=true; 
        ADOConnection1.Connected:=true; 
      Except 
        Application.MessageBox('数据库连接失败,请检查参数!','警告',mb_iconwarning) 
      end; 
    end; procedure TForm1.RzBitBtn1Click(Sender: TObject); 
    var 
      I,iNo:Integer; 
      sGUID,strNo:string; 
      TmpGUID:TGUID; 
    begin  
      ADOQuery2.SQL.clear; 
      ADOQuery2.SQL.add('select * from [sheet1$]'); 
      ADOQuery2.Open; 
      ADOQuery2.First;   ADOQuery1.SQL.Clear; 
      ADOQuery1.SQL.add('select * from Pub_Btype'); 
      ADOQuery1.Open; 
      iNo:=1;   with Adoquery2 do while not eof do begin     if CoCreateGUID(TmpGUID) = S_OK then 
          sGUID := GUIDToString(TmpGUID) ;    ADOQuery1.Append; 
        strNo:='00001'+'0000'+IntToStr(iNo); 
        inc(iNo); 
        ADOQuery1.FieldByName('BTypeID').AsString:=strNo; 
        ADOQuery1.FieldByName('_id').asstring:=sguid; 
        ADOQuery1.FieldByName('parid').AsString:='00001' ; 
        ADOQuery1.FieldByName('_Level').AsString:='2' ; 
        ADOQuery1.FieldByName('Modetype').AsString:='1' ; 
        ADOQuery1.FieldByName('PriceType').AsString:='preprice1' ; 
        ADOQuery1.FieldByName('FullName').asstring:=adoquery2.fieldbyname('名称').asstring; 
        ADOQuery1.FieldByName('UserCode').asstring:=adoquery2.fieldbyname('编码').asstring; 
        ADOQuery1.FieldByName('abbrName').asstring:=adoquery2.fieldbyname('简码').asstring; 
        ADOQuery1.FieldByName('Comment').asstring:=adoquery2.fieldbyname('备注').asstring; 
        next; 
      end; 
      if AdoQuery1.state in [dsinsert,dsEdit] then ADOQuery1.Post; 
    end; procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); 
    begin 
      ADOConnection1.Connected:=false; 
      ADOConnection2.Connected:=false; 
    end; end.