我现在开始学习往数据库中写数据(追加记录)。在一个窗体中,我做了好多edit、dbedit等,我想将其中的内容做成一条记录,追加到shbx2的补缴情况表中,可是运行时总是出现错误,不知什么原因?
代码如下:procedure TfmBJForm.BCButtonClick(Sender: TObject); var
  shbzh1,shbzh2,shbzh3,shbzh4:string;
 
  bjgzjs,bjysyl,bjyssy:integer;
 
  dwbjblyl,grbjblyl,dwbjblsy,grbjblsy:currency;
 
  dwjnyl,grjnyl,hjjnyl,dwjnsy,grjnsy,hjjnsy:currency;
begin  bjgzjs:=strtoint(edit43.Text);  //运行时怎么不对bjgzjs赋值那?
 
  bjysyl:=strtoint(edit45.Text);  //运行时怎么不对bjysyl赋值那?
 
  bjyssy:=strtoint(edit46.Text);  //运行时怎么不对bjyssy赋值那?
 
  dwbjblyl:=strtocurr(edit14.Text); //运行时dwbjblyl的值怎么为0,edit14.
                                    // Text中的内容明明有数?下面也是。
  grbjblyl:=strtocurr(edit17.Text);
 
  dwbjblsy:=strtocurr(edit15.Text);
 
  grbjblsy:=strtocurr(edit18.Text);
 
  dwjnyl:=strtocurr(edit20.Text);
 
  grjnyl:=strtocurr(edit23.Text);
  
  hjjnyl:=dwjnyl+grjnyl;
 
  dwjnsy:=strtocurr(edit21.Text);
 
  grjnsy:=strtocurr(edit24.Text);
 
  hjjnsy:=dwjnsy+grjnsy; if length(edit2.text)=15  then     begin      shbzh1:=copy(edit2.Text,7,2);      shbzh2:=copy(edit2.Text,9,2);      shbzh3:=copy(edit2.Text,11,2);      shbzh4:='19'+shbzh1;     end    else     begin      shbzh4:=copy(edit2.text,7,4);      shbzh2:=copy(edit2.Text,9,2);      shbzh3:=copy(edit2.Text,11,2);     end; with ADOquery1 do   ADOquery1.close;   ADOquery1.SQL.Clear ;   ADOquery1.SQL.Add('insert into 补缴情况表');   ADOquery1.SQL.Add('values       ('''+dbedit1.Text+''','''+edit6.Text+''','''+edit2.Text+''',');
   ADOquery1.SQL.Add  
        (''''+edit1.Text+''','''+edit3.text+''','''+edit4.text+''',
         '''+shbzh4+shbzh2+shbzh3+''',');
   ADOquery1.SQL.Add(''''+edit5.text+'-'+'08'+''','''+'补'+''',bjgzjs,
         '''+edit8.Text+'-'+'08'+''','''+edit11.Text+'-'+'08'+''',
         bjys_yl,');
   ADOquery1.SQL.Add 
        ('dwbjblyl,grbjblyl,dwjnyl,grjnyl,hjjnyl,
        '''+edit9.Text+'-'+'08'+''','''+edit12.Text+'-'+'08'+''',
        bjys_sy,');
   ADOquery1.SQL.Add('dwbjblsy,grbjblsy,dwjnsy,grjnsy,hjjnsy,
         '''+'2003-08-08'+''','''+'2003-07-08'+''',0,');
   ADOquery1.SQL.Add('0.00,0.00,0,0,0,'''+edit44.Text+'-'+'08'+''')');
   
   ADOquery1.ExecSQL;
   
   bcbutton.Enabled:=false;
   
   xzbutton.Enabled:=true;
end;
1、运行时出现错误:“在此上下文中不允许使用‘bjgzjs’。此处只允许使用常量、表达
  式或变量。不允许使用列名。”补缴情况表中没有“bjgzjs” 的列呀? 而且我在开始
  不是声明其为integer变量了吗?
2、问题是:上面“//“后面的情况;请指教   

解决方案 »

  1.   

    bjgzjs:=strtoint(edit43.Text);  //运行时怎么不对bjgzjs赋值那?//关键是StrToInt的用法。
     
      bjysyl:=strtoint(edit45.Text);  //运行时怎么不对bjysyl赋值那?
     
      bjyssy:=strtoint(edit46.Text);  //运行时怎么不对bjyssy赋值那?
     
      dwbjblyl:=strtocurr(edit14.Text); //运行时dwbjblyl的值怎么为0,edit14.
                                        // Text中的内容明明有数?下面也是。