我现在开始学习往数据库中写数据(追加记录)。在一个窗体中,我做了好多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、问题是:上面“//“后面的情况;请指教
代码如下: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、问题是:上面“//“后面的情况;请指教
bjysyl:=strtoint(edit45.Text); //运行时怎么不对bjysyl赋值那?
bjyssy:=strtoint(edit46.Text); //运行时怎么不对bjyssy赋值那?
dwbjblyl:=strtocurr(edit14.Text); //运行时dwbjblyl的值怎么为0,edit14.
// Text中的内容明明有数?下面也是。