📄 globalunit.~pas
字号:
//没有需要同步数据
if RecordCount <= 0 then
begin
FreeResource;
Result := 1;
Exit;
end;
end;
with mQuery2 do
begin
Close;
Connection := mCnnRemote;
SQL.Clear;
//更新远程数据库
SQL.Add(mStr2);
//
end;
with mQuery3 do
begin
Close;
Connection := mCnnRemote;
SQL.Clear;
//插入远程数据库
SQL.Add(mStr3);
end;
//更新本地数据库的同步标记
with mQuery4 do
begin
Close;
Connection := mCnnLocal;
SQL.Clear;
//从本地数据库中选择没有同步的数据
SQL.Add(mStr4);
end;
mQuery1.First;
while not mQuery1.eof do
begin
mQuery2.Parameters[0].Value := mQuery1.Fields[0].AsDateTime;
mQuery2.Parameters[1].Value := mQuery1.Fields[1].AsVariant;
mQuery2.Parameters[2].Value := mQuery1.Fields[2].AsInteger;
mQuery2.Parameters[3].Value := mQuery1.Fields[3].AsString;
//mQuery2.Parameters[4].Value := mQuery1.Fields[4];
mQuery2.ExecSQL;
//没有找到相应的更新记录
if mQuery2.RowsAffected <= 0 then
begin
//将数据插入到远程
//?copy above to this place
mQuery3.ExecSQL;
end;
//更新本地数据库的同步标记
with mQuery4 do
begin
//从本地数据库中选择没有同步的数据
Parameters[0].Value := ASY_YES;
//?Parameters[1].Value := ;
//?Parameters[2].Value := ;
ExecSQL;
end;
//同步下一个记录
mQuery1.Next;
end;
except
FreeResource;
Result := -2;
Exit;
end;
FreeResource;
Result := 2;
end;
function AsyFixCardUse(): integer;
begin
//同步固定用户卡使用表
Result := AsyTable1('','');
end;
function AsyTempCardUse(): integer;
begin
//同步临时用户卡使用表
Result := AsyTable1('','');
end;
function AsyFeeStation(): integer;
begin
//同步收费站表
Result := 1;
end;
function AsyGetFee(): integer;
begin
////同步费用收取表
Result := 1;
end;
function AsyShiftRecord(): integer;
begin
//同步换班表
Result := 1;
end;
//==============下载同步====================
function AsyAdmFeeCasual(): integer;
var
mConnection1,mConnection2 : TADOConnection ;
mLocalTable,mRemoteTable : TADOTable;
begin
Result := 1;
mLocalTable := TADOTable.Create(nil);
mConnection1 := GetLocalConnection;
if mConnection1 = nil then
begin
Result := -1;
Exit;
end;
with mLocalTable do
begin
mConnection1.BeginTrans;
Connection := mConnection1;
TableName := 'fee_rate';
Active := True;
while not EOF do
begin
Delete;
end;
end;
mRemoteTable := TADOTable.Create(nil);
mConnection2 := GetRemoteConnection();
if mConnection2 = nil then
begin
Result := -2;
Exit;
end;
with mRemoteTable do
begin
Connection := mConnection2;
TableName := 'fee_rate';
Active := True;
end;
while not mRemoteTable.EOF do
begin
mLocalTable.Append;
mLocalTable.FieldByName('group_id').AsInteger := mRemoteTable.FieldByName('group_id').AsInteger;
mLocalTable.FieldByName('week_no').AsInteger := mRemoteTable.FieldByName('week_no').AsInteger;
mLocalTable.FieldByName('fee_rate1').AsFloat := mRemoteTable.FieldByName('fee_rate1').AsFloat;
mLocalTable.FieldByName('fee_rate2').AsFloat := mRemoteTable.FieldByName('fee_rate2').AsFloat;
mLocalTable.FieldByName('fee_rate3').AsFloat := mRemoteTable.FieldByName('fee_rate3').AsFloat;
mLocalTable.FieldByName('fee_rate4').AsFloat := mRemoteTable.FieldByName('fee_rate4').AsFloat;
mLocalTable.FieldByName('start_hour1').AsFloat := mRemoteTable.FieldByName('start_hour1').AsFloat;
mLocalTable.FieldByName('start_hour2').AsFloat := mRemoteTable.FieldByName('start_hour2').AsFloat;
mLocalTable.FieldByName('start_hour3').AsFloat := mRemoteTable.FieldByName('start_hour3').AsFloat;
mLocalTable.FieldByName('start_hour4').AsFloat := mRemoteTable.FieldByName('start_hour4').AsFloat;
mLocalTable.FieldByName('start_min1').AsFloat := mRemoteTable.FieldByName('start_min1').AsFloat;
mLocalTable.FieldByName('start_min2').AsFloat := mRemoteTable.FieldByName('start_min2').AsFloat;
mLocalTable.FieldByName('start_min3').AsFloat := mRemoteTable.FieldByName('start_min3').AsFloat;
mLocalTable.FieldByName('start_min4').AsFloat := mRemoteTable.FieldByName('start_min4').AsFloat;
mLocalTable.FieldByName('end_hour1').AsFloat := mRemoteTable.FieldByName('end_hour1').AsFloat;
mLocalTable.FieldByName('end_hour2').AsFloat := mRemoteTable.FieldByName('end_hour2').AsFloat;
mLocalTable.FieldByName('end_hour3').AsFloat := mRemoteTable.FieldByName('end_hour3').AsFloat;
mLocalTable.FieldByName('end_hour4').AsFloat := mRemoteTable.FieldByName('end_hour4').AsFloat;
mLocalTable.FieldByName('end_min1').AsFloat := mRemoteTable.FieldByName('end_min1').AsFloat;
mLocalTable.FieldByName('end_min2').AsFloat := mRemoteTable.FieldByName('end_min2').AsFloat;
mLocalTable.FieldByName('end_min3').AsFloat := mRemoteTable.FieldByName('end_min3').AsFloat;
mLocalTable.FieldByName('end_min4').AsFloat := mRemoteTable.FieldByName('end_min4').AsFloat;
mLocalTable.Post;
mRemoteTable.Next;
end;
mConnection1.CommitTrans;
Result := 1;
end;
function AsyAdmFestival(): integer;
var
mConnection1,mConnection2 : TADOConnection ;
mLocalTable,mRemoteTable : TADOTable;
begin
Result := 1;
mLocalTable := TADOTable.Create(nil);
mConnection1 := GetLocalConnection;
if mConnection1 = nil then
begin
Result := -1;
Exit;
end;
with mLocalTable do
begin
mConnection1.BeginTrans;
Connection := mConnection1;
TableName := 'adm_festival';
Active := True;
while not EOF do
begin
Delete;
end;
end;
mRemoteTable := TADOTable.Create(nil);
mConnection2 := GetRemoteConnection();
if mConnection2 = nil then
begin
Result := -2;
Exit;
end;
with mRemoteTable do
begin
Connection := mConnection2;
TableName := 'adm_festival';
Active := True;
end;
while not mRemoteTable.EOF do
begin
mLocalTable.Append;
mLocalTable.FieldByName('festval_id').AsInteger := mRemoteTable.FieldByName('festval_id').AsInteger;
mLocalTable.FieldByName('festval_date').AsDateTime := mRemoteTable.FieldByName('festval_date').AsDateTime;
mLocalTable.FieldByName('special_mk').AsString := mRemoteTable.FieldByName('special_mk').AsString;
mLocalTable.Post;
mRemoteTable.Next;
end;
mConnection1.CommitTrans;
Result := 1;
end;
function AsyTimePhase(): integer;
var
mConnection1,mConnection2 : TADOConnection ;
mLocalTable,mRemoteTable : TADOTable;
begin
Result := 1;
mLocalTable := TADOTable.Create(nil);
mConnection1 := GetLocalConnection;
if mConnection1 = nil then
begin
Result := -1;
Exit;
end;
with mLocalTable do
begin
mConnection1.BeginTrans;
Connection := mConnection1;
TableName := 'time_phase';
Active := True;
while not EOF do
begin
Delete;
end;
end;
mRemoteTable := TADOTable.Create(nil);
mConnection2 := GetRemoteConnection();
if mConnection2 = nil then
begin
Result := -2;
Exit;
end;
with mRemoteTable do
begin
Connection := mConnection2;
TableName := 'time_phase';
Active := True;
end;
while not mRemoteTable.EOF do
begin
mLocalTable.Append;
mLocalTable.FieldByName('start_hour1').AsInteger := mRemoteTable.FieldByName('start_hour1').AsInteger;
mLocalTable.FieldByName('start_min1').AsInteger := mRemoteTable.FieldByName('start_min1').AsInteger;
mLocalTable.FieldByName('end_hour1').AsInteger := mRemoteTable.FieldByName('end_hour1').AsInteger;
mLocalTable.FieldByName('end_min1').AsInteger := mRemoteTable.FieldByName('end_min1').AsInteger;
mLocalTable.FieldByName('start_hour2').AsInteger := mRemoteTable.FieldByName('start_hour2').AsInteger;
mLocalTable.FieldByName('start_min2').AsInteger := mRemoteTable.FieldByName('start_min2').AsInteger;
mLocalTable.FieldByName('end_hour2').AsInteger := mRemoteTable.FieldByName('end_hour2').AsInteger;
mLocalTable.FieldByName('end_min2').AsInteger := mRemoteTable.FieldByName('end_min2').AsInteger;
mLocalTable.FieldByName('start_hour3').AsInteger := mRemoteTable.FieldByName('start_hour3').AsInteger;
mLocalTable.FieldByName('start_min3').AsInteger := mRemoteTable.FieldByName('start_min3').AsInteger;
mLocalTable.FieldByName('end_hour3').AsInteger := mRemoteTable.FieldByName('end_hour3').AsInteger;
mLocalTable.FieldByName('end_min3').AsInteger := mRemoteTable.FieldByName('end_min3').AsInteger;
mLocalTable.FieldByName('start_hour4').AsInteger := mRemoteTable.FieldByName('start_hour4').AsInteger;
mLocalTable.FieldByName('start_min4').AsInteger := mRemoteTable.FieldByName('start_min4').AsInteger;
mLocalTable.FieldByName('end_hour4').AsInteger := mRemoteTable.FieldByName('end_hour4').AsInteger;
mLocalTable.FieldByName('end_min4').AsInteger := mRemoteTable.FieldByName('end_min4').AsInteger;
mLocalTable.Post;
mRemoteTable.Next;
end;
mConnection1.CommitTrans;
Result := 1;
end;
function AsyConfig() :integer;
var
mConnection1,mConnection2 : TADOConnection ;
mLocalTable,mRemoteTable : TADOTable;
begin
Result := 1;
mLocalTable := TADOTable.Create(nil);
mConnection1 := GetLocalConnection;
if mConnection1 = nil then
begin
Result := -1;
Exit;
end;
with mLocalTable do
begin
mConnection1.BeginTrans;
Connection := mConnection1;
TableName := 'config';
Active := True;
while not EOF do
begin
Delete;
end;
end;
mRemoteTable := TADOTable.Create(nil);
mConnection2 := GetRemoteConnection();
if mConnection2 = nil then
begin
Result := -2;
Exit;
end;
with mRemoteTable do
begin
Connection := mConnection2;
TableName := 'config';
Active := True;
end;
while not mRemoteTable.EOF do
begin
mLocalTable.Append;
mLocalTable.FieldByName('config_key').AsString := mRemoteTable.FieldByName('config_key').AsString;
mLocalTable.FieldByName('config_value').AsString := mRemoteTable.FieldByName('config_value').AsString;
mLocalTable.Post;
mRemoteTable.Next;
end;
mConnection1.CommitTrans;
Result := 1;
end;
function AsyCard(): integer;
var
mConnection1,mConnection2 : TADOConnection ;
mLocalTable,mRemoteTable : TADOTable;
begin
Result := 1;
mLocalTable := TADOTable.Create(nil);
mConnection1 := GetLocalConnection;
if mConnection1 = nil then
begin
Result := -1;
Exit;
end;
with mLocalTable do
begin
mConnection1.BeginTrans;
Connection := mConnection1;
TableName := 'card';
Active := True;
while not EOF do
begin
Delete;
end;
end;
mRemoteTable := TADOTable.Create(nil);
mConnection2 := GetRemoteConnection();
if mConnection2 = nil then
begin
Result := -2;
Exit;
end;
with mRemoteTable do
begin
Connection := mConnection2;
TableName := 'card';
Active := True;
end;
while not mRemoteTable.EOF do
begin
mLocalTable.Append;
mLocalTable.FieldByName('card_num').AsString := mRemoteTable.FieldByName('card_num').AsString;
mLocalTable.FieldByName('card_user_id').AsInteger := mRemoteTable.FieldByName('card_user_id').AsInteger;
//mLocalTable.FieldByName('motocar_num').AsString := mRemoteTable.FieldByName('motocar_num').AsString;
//mLocalTable.FieldByName('motocar_type').AsString := mRemoteTable.FieldByName('motocar_type').AsString;
//mLocalTable.FieldByName('motocar_color').AsInteger := mRemoteTable.FieldByName('motocar_color').AsInteger;
mLocalTable.FieldByName('money_left').AsFloat := mRemoteTable.FieldByName('money_left').AsFloat;
mLocalTable.FieldByName('create_date').AsDateTime := mRemoteTable.FieldByName('create_date').AsDateTime;
mLocalTable.FieldByName('expire_date').AsDateTime := mRemoteTable.FieldByName('expire_date').AsDateTime;
mLocalTable.FieldByName('card_state').AsString := mRemoteTable.FieldByName('card_state').AsString;
mLocalTable.FieldByName('card_type').AsString := mRemoteTable.FieldByName('card_type').AsString;
//mLocalTable.FieldByName('description').AsString := mRemoteTable.FieldByName('description').AsString;
mLocalTable.FieldByName('modi_date').AsDateTime := mRemoteTable.FieldByName('modi_date').AsDateTime;
mLocalTable.Post;
mRemoteTable.Next;
end;
mConnection1.CommitTrans;
Result := 1;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -