TSTRINGGRIP + UPDATE SQL 有关问题
TSTRINGGRIP + UPDATE SQL 问题
EXCEL檔有2栏 : keyno, partno
sql table tpadea 主要有 2栏 : dea001 及 dea004
载入excel檔到 Tstringgrid1(已弄好), 每一行与tpadea 比較, 如找到相同的key(dea001); 就更新tpadea的partno(DEA004) 为 tstringgrip的partno. (StringGrid1.Cells[7, r])
以下方法失敗, 请问应该怎样更正? 谢谢.
procedure TForm1.Button1Click(Sender: TObject);
var
r: Integer;
begin
For r := 1 to StringGrid1.RowCount - 1 do
with ADOQuery1 do
begin
Active := false;
SQL.Clear;
SQL.Add('UPDATE TPADEA');
SQL.Add('SET DEA004 = StringGrid1.Cells[7, r] WHERE DEA001=StringGrid1.Cells[5, r]');
ExecSQL
end;
ADOQuery1.Refresh;
end;
end.
------解决方案--------------------
EXCEL檔有2栏 : keyno, partno
sql table tpadea 主要有 2栏 : dea001 及 dea004
载入excel檔到 Tstringgrid1(已弄好), 每一行与tpadea 比較, 如找到相同的key(dea001); 就更新tpadea的partno(DEA004) 为 tstringgrip的partno. (StringGrid1.Cells[7, r])
以下方法失敗, 请问应该怎样更正? 谢谢.
procedure TForm1.Button1Click(Sender: TObject);
var
r: Integer;
begin
For r := 1 to StringGrid1.RowCount - 1 do
with ADOQuery1 do
begin
Active := false;
SQL.Clear;
SQL.Add('UPDATE TPADEA');
SQL.Add('SET DEA004 = StringGrid1.Cells[7, r] WHERE DEA001=StringGrid1.Cells[5, r]');
ExecSQL
end;
ADOQuery1.Refresh;
end;
end.
------解决方案--------------------
- Delphi(Pascal) code
SQL.Add('SET DEA004 = '+Quotedstr(StringGrid1.Cells[7, r])+' WHERE DEA001='+Quotedstr(StringGrid1.Cells[5, r]));
------解决方案--------------------
- Delphi(Pascal) code
如果DEA001字段类型是整数 SQL.Add('SET DEA004 = StringGrid1.Cells[7, r] WHERE DEA001='+StringGrid1.Cells[5, r]); 如果DEA001字段类型是字符串 SQL.Add('SET DEA004 = StringGrid1.Cells[7, r] WHERE DEA001='+quotedstr(StringGrid1.Cells[5, r]));
------解决方案--------------------
1楼就是正确答案了...前提是你的字段类型都是字符串.