Variant do es not reference an automation object ( 积分: 100 )

  • 主题发起人 主题发起人 chen010126
  • 开始时间 开始时间
C

chen010126

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手帮帮忙!我想用stringgrid中的用户输入的数据插入数据库中编译时没有错运行时就弹出一个提示框内容就是标题的内容!"保存"按钮的代码如下:
procedure Tfrmqty.sbsaveClick(Sender: TObject);
var row:integer;
no,price,count:string;
begin
if (formadvance.panadvance.Showing) then
begin
for row:=1 to formadvance.StringGrid1.RowCount-1 do
begin
no:=formadvance.StringGrid1.Cells[2,row];
price:=formadvance.StringGrid1.Cells[formadvance.StringGrid1.colcount-2,row];
count:=formadvance.StringGrid1.Cells[formadvance.StringGrid1.colcount-1,row];
formadvance.adoq1.Close;
formadvance.adoq1.SQL.Clear;
formadvance.adoq1.SQL.Add('select * from D_ABC where 物料编码=:V');
formadvance.adoq1.Parameters[0].Value:=no;
formadvance.adoq1.Open;
if formadvance.adoq1.Eof then
begin
//insert
formadvance.adoq1.Close;
formadvance.adoq1.SQL.Clear;
formadvance.adoq1.SQL.Add('insert into D_ABC values(:a,:b,:c)');
formadvance.adoq1.Parameters[0].Value.asstring:=trim(no);
formadvance.adoq1.Parameters[1].Value.asfloat:=strtofloat(trim(price));
formadvance.adoq1.Parameters[2].Value.asfloat:=strtofloat(trim(count));
formadvance.adoq1.ExecSQL;
end
else
begin
//update
formadvance.adoq1.close;
formadvance.adoq1.sql.clear;
formadvance.adoq1.sql.add('update D_ABC set 单价=:A,一年预估使用量=:B where 物料编码:C');
formadvance.adoq1.parameters[0].value.asfloat:=strtofloat(trim(price));
formadvance.adoq1.parameters[1].value.asfloat:=strtofloat(trim(count));
formadvance.adoq1.parameters[2].value:=trim(no);
formadvance.adoq1.execsql;
end;
end;
end;
end;
我用的是delphi6+sql 各位高手帮帮忙!
表结构为:
物料编码: varchar[12]
单价: float[8]
一年预估使用量: float[8]
 
各位高手帮帮忙!我想用stringgrid中的用户输入的数据插入数据库中编译时没有错运行时就弹出一个提示框内容就是标题的内容!"保存"按钮的代码如下:
procedure Tfrmqty.sbsaveClick(Sender: TObject);
var row:integer;
no,price,count:string;
begin
if (formadvance.panadvance.Showing) then
begin
for row:=1 to formadvance.StringGrid1.RowCount-1 do
begin
no:=formadvance.StringGrid1.Cells[2,row];
price:=formadvance.StringGrid1.Cells[formadvance.StringGrid1.colcount-2,row];
count:=formadvance.StringGrid1.Cells[formadvance.StringGrid1.colcount-1,row];
formadvance.adoq1.Close;
formadvance.adoq1.SQL.Clear;
formadvance.adoq1.SQL.Add('select * from D_ABC where 物料编码=:V');
formadvance.adoq1.Parameters[0].Value:=no;
formadvance.adoq1.Open;
if formadvance.adoq1.Eof then
begin
//insert
formadvance.adoq1.Close;
formadvance.adoq1.SQL.Clear;
formadvance.adoq1.SQL.Add('insert into D_ABC values(:a,:b,:c)');
formadvance.adoq1.Parameters[0].Value.asstring:=trim(no);
formadvance.adoq1.Parameters[1].Value.asfloat:=strtofloat(trim(price));
formadvance.adoq1.Parameters[2].Value.asfloat:=strtofloat(trim(count));
formadvance.adoq1.ExecSQL;
end
else
begin
//update
formadvance.adoq1.close;
formadvance.adoq1.sql.clear;
formadvance.adoq1.sql.add('update D_ABC set 单价=:A,一年预估使用量=:B where 物料编码:C');
formadvance.adoq1.parameters[0].value.asfloat:=strtofloat(trim(price));
formadvance.adoq1.parameters[1].value.asfloat:=strtofloat(trim(count));
formadvance.adoq1.parameters[2].value:=trim(no);
formadvance.adoq1.execsql;
end;
end;
end;
end;
我用的是delphi6+sql 各位高手帮帮忙!
表结构为:
物料编码: varchar[12]
单价: float[8]
一年预估使用量: float[8]
 
设个断点 看看是哪一行出的问题
 
后退
顶部