最近客户需要往数据库中导入数据,直接通过AdvStringGrid导入是比较简单的,后来发现了一个问题,如果数据库中已经存在的数据,那么在导入进去,岂不是重复了?特别是那个表如果是基础表,正好你导入的时候,有数据需要和那两个相同的数据关联,而且用的不是主键,问题岂不是打了,就写了如下的代码:
procedure TForm1.ToolButton2Click(Sender: TObject);
var
i :integer;
begin
adoTbCarrier.Close;
adoTbCarrier.Open;
for i := 0 to asg.RowCount-1 do
begin
adoQ.SQL.Text :='Select * from carrier where carrierid ='+ #39+asg.Cells[0,i]+#39;
adoQ.Open;
if adoQ.RecordCount > 0 then
begin
adoQ.Edit;
adoQ.FieldByName('carrierCode').AsString := asg.Cells[1,i];
adoQ.Post;
end
else
begin
adoTbCarrier.Append;
adoTbCarrier.FieldByName(&