奥非域

MSAccess判断表字段是否存在及添加字段

一般用于版本控制,代码如下:

delphi10.4.1,firedac fdquery组件,其他语言看下sql就行。

procedure TfrmMain.upDB();
var
  find: boolean;
  i: integer;
begin
  find := False;
  Qt.Close;
  Qt.Open('select top 1 * from tAccountDetail');
  for i := 0 to Qt.FieldCount - 1 do
  begin
    if Qt.Fields[i].FieldName = 'FP34' then // FP34|其他奖金
    begin
      find := true;
      Break;
    end;
  end;
  if not find then
  begin
    try
      Qt.Close;
      Qt.SQL.Text := 'alter table tAccountDetail add FP34 money DEFAULT 0';
      Qt.ExecSQL;
      Qt.SQL.Text := 'update tAccountDetail set FP34=0';
      Qt.ExecSQL;
      Qt.SQL.Text := 'insert into tSelTemp2(fname,fcode)'
        + ' values(''其他奖金'',''FP34'')';
      Qt.ExecSQL;
    except
      //
    end;
  end;
end;