1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- unit ScUpdateDataBase;
- interface
- uses
- SysUtils, ScFileArchiver, ADODB, ScTables, ScAutoUpdateUnit;
- function UpdateDB(AFileArchiver: TScMDBArchiver): Boolean;
- implementation
- uses ConstMethodUnit;
- procedure DoProjectOnUpdateData(ATableName: string; AEventType: TUpdateEventType;
- ASQLType: TSQLType; AConnection: TADOConnection);
- var
- aqQuery: TADOQuery;
- begin
- aqQuery := TADOQuery.Create(nil);
- try
- aqQuery.Connection := AConnection;
- if AEventType = uetAddFields then
- begin
- if ATableName = 'DrawingQuantity' then
- begin
- aqQuery.SQL.Add(Format('Update %s Set IsGatherQ = IsGatherQty', [ATableName]));
- aqQuery.ExecSQL;
- end;
- end;
- finally
- aqQuery.Free;
- end;
- end;
- function UpdateDB(AFileArchiver: TScMDBArchiver): Boolean;
- var
- Updater: TScUpdater;
- begin
- Updater := TScUpdater.Create;
- try
- Updater.OnUpdateData := DoProjectOnUpdateData;
- Updater.Open(AFileArchiver.FileName, AFileArchiver.Connection, AFileArchiver.FileInfo.FileVersion);
- Result := Updater.FileNeedUpdate;
- if Result then
- begin
- {Update tables}
- Updater.AddTableDef(SBills, @tdBills, Length(tdBills), False, False);
- Updater.AddTableDef(SDrawingQuantity, @tdDrawingQuantity, Length(tdDrawingQuantity), False, False);
- Updater.AddTableDef(SDQCalcExpression, @tdDQCalcExpression, Length(tdDQCalcExpression), False, False);
- Updater.AddTableDef(SHisRestorePoints, @tdHisRestorePoints, Length(tdHisRestorePoints), False, False);
- Updater.AddTableDef(SBidLot, @tdBidLot, Length(tdBidLot), False, False);
- Updater.AddTableDef(SGradeStat, @tdGradeStat, Length(tdGradeStat), False, False);
- Updater.AddTableDef(SGradeStatTotal, @tdGradeStatTotal, Length(tdGradeStatTotal), False, False);
- Updater.AddTableDef(SRecycleBin, @tdRecycleBin, Length(tdRecycleBin), False, False);
- Result := Updater.ExcuteUpdate;
- if Result then
- begin
- AFileArchiver.SetFileVer(ConstBillsFileVersion);
- // AFileArchiver.SetFileVer(ConstBudgetFileVersion);
- end;
- end;
- finally
- Updater.Free;
- end;
- end;
- end.
|