⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 globalunit.~pas

📁 停车场收费系统停车场收费系统停车场收费系统停车场收费系统
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
            //没有需要同步数据
            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 + -