📄 udm.pas
字号:
_cds := TBaseDBForm.OpenSelectFromDataset(app_name, sql_str);
end;
// 记录数统计
fDataCount := _cds.RecordCount;
db_name := getDBName;
// 校验数据是否有变化,需要重新缓存
if gIsCacheLogon then
begin
// 新库
if gUseNewDBServer then
begin
sql_str := Format('select * from V_MSC_Vehicle where ID in (select * from F_GetVehicleTableByUserID(%d)) ', [
gCurUsrInfo.UsrId]);
check_sql_str := Format('select * from V_Logon_Cache_MSC_Vehicle where ID in (select * from F_GetVehicleTableByUserID(%d)) ', [
gCurUsrInfo.UsrId]);
baseDBLogon.SetLogon(False, db_name, sql_str, check_sql_str,
dir_name , file_name, 'ID', _user_sql_str, _user_file_name);
end
// 旧库
else begin
if gCurUsrInfo.WatchRangeId = 0 then
begin
sql_str :=
'select * from TeamInfo,CarInfo where TeamInfo.TeamId=CarInfo.TeamId and TeamInfo.GroupId' + ' in(' + gCurUsrInfo.Ranger + ')';
check_sql_str :=
'select * from V_Logon_Cache_TeamInfo_CarInfo where GroupId' + ' in(' + gCurUsrInfo.Ranger + ')';
end
else if gCurUsrInfo.WatchRangeId = 1 then
begin
sql_str :=
'select * from TeamInfo,CarInfo where TeamInfo.TeamId=CarInfo.TeamId and TeamInfo.TeamId' + ' in(' + gCurUsrInfo.Ranger + ')';
check_sql_str :=
'select * from V_Logon_Cache_TeamInfo_CarInfo where TeamID' + ' in(' + gCurUsrInfo.Ranger + ')';
end
else if gCurUsrInfo.WatchRangeId = 2 then
begin
sql_str :=
'select * from CarInfo where CarID' + ' in(' + gCurUsrInfo.Ranger + ')';
check_sql_str :=
'select * from V_Logon_Cache_CarInfo where CarID' + ' in(' + gCurUsrInfo.Ranger + ')';
end;
baseDBLogon.SetLogon(False, db_name, sql_str, check_sql_str,
dir_name , file_name, 'CarID', _user_sql_str, _user_file_name);
end;
end;
// 打开数据集
_cds.First;
// 初始化车辆信息列表,释放已有的数据
InitCarInfoList;
CarIds := '';
// 填写 车辆信息
if gUseNewDBServer then
begin
while not _cds.Eof do
begin
if VarIsNull(_cds.FieldValues['CommNO']) then
begin
_cds.Next;
Continue;
end;
comm_no_str := Trim(_cds.FieldValues['CommNO']);
comm_no_str_short := Copy(comm_no_str, 3, 9);
if comm_no_str_short = '' then
comm_no_str_short := '0';
vehicle_id := StrToInt(comm_no_str_short);
sCarId:= comm_no_str_short;
if CarIds='' then CarIds:= sCarId
else CarIds:= CarIds+ ','+ sCarId;
CarInfo:= TCarInfo.Create;
TCarInfo.SetVarToFieldValue(CarInfo, 'CarID', vehicle_id);
//ruihanxl
// 遍历车辆信息字段列表
for i := 0 to CarInfo.CarinfoValueList.Count - 1 do
begin
p_field_value := PBaseDBFieldValue(CarInfo.CarinfoValueList.Items[i]);
field_name := p_field_value^.FieldInfo^.FieldName;
if p_field_value^.FieldInfo^.IsInput then
Continue;
if (field_name <> 'CarID') and
(field_name <> '') then
TCarInfo.SetVarToFieldValue(CarInfo, field_name, _cds.FieldByName(field_Name).Value);
end;
gTeamID := CarInfo.TeamId;
gCarInfoList.AddObject(sCarId, CarInfo);
if Assigned(fProgress) then fProgress(Self, 1, fDataCount);
_cds.Next;
end;
end
// 旧库
else begin
while not _cds.Eof do begin
if gVersionFlag = 75 then
begin
if not _cds.FieldByName('ParkName').IsNull then
begin
if UpperCase(Trim(_cds.FieldByName('ParkName').AsString)) <>
UpperCase('SC') then
begin
if Assigned(fProgress) then fProgress(Self, 1, fDataCount);
_cds.Next;
Continue;
end;
end;
end;
sCarId := Trim(_cds.FieldValues['CarId']);
if CarIds = '' then
CarIds := sCarId
else
CarIds := CarIds + ','+ sCarId;
CarInfo:= TCarInfo.Create;
// ruihanxl
for i := 0 to CarInfo.CarinfoValueList.Count - 1 do
begin
p_field_value := PBaseDBFieldValue(CarInfo.CarinfoValueList.Items[i]);
field_name := p_field_value.FieldInfo.FieldName;
if p_field_value^.FieldInfo^.IsInput then
Continue;
if field_name <> '' then
TCarInfo.SetVarToFieldValue(CarInfo, field_name, _cds.FieldByName(field_Name).Value);
end;
gTeamID := CarInfo.TeamId;
gCarInfoList.AddObject(sCarId, CarInfo);
frmMain.AddDebugInfo(Format('login--FlushCarInfoList Progress %d', [fDataCount]));
if Assigned(fProgress) then fProgress(Self, 1, fDataCount);
_cds.Next;
end;
end;
// 执行 更新数据的查询
if gIsCacheLogon then
baseDBLogon.LogonCache311;
// begin
// if gUseNewDBServer then
// begin
// sql_str := Format('select * from V_MSC_Vehicle where ID in (select * from F_GetVehicleTableByUserID(%d)) ', [
// gCurUsrInfo.UsrId]);
// check_sql_str := Format('select * from V_Logon_Cache_MSC_Vehicle where ID in (select * from F_GetVehicleTableByUserID(%d)) ', [
// gCurUsrInfo.UsrId]);
// end
// else begin
// if gCurUsrInfo.WatchRangeId = 0 then
// begin
// sql_str :=
// 'select * from TeamInfo,CarInfo where TeamInfo.TeamId=CarInfo.TeamId and TeamInfo.GroupId' + ' in(' + gCurUsrInfo.Ranger + ')';
// check_sql_str :=
// 'select * from V_Logon_Cache_TeamInfo_CarInfo where GroupId' + ' in(' + gCurUsrInfo.Ranger + ')';
// end
// else if gCurUsrInfo.WatchRangeId = 1 then
// begin
// sql_str :=
// 'select * from TeamInfo,CarInfo where TeamInfo.TeamId=CarInfo.TeamId and TeamInfo.TeamId' + ' in(' + gCurUsrInfo.Ranger + ')';
// check_sql_str :=
// 'select * from V_Logon_Cache_TeamInfo_CarInfo where TeamID' + ' in(' + gCurUsrInfo.Ranger + ')';
// end
// else if gCurUsrInfo.WatchRangeId = 2 then
// begin
// sql_str :=
// 'select * from CarInfo where CarID' + ' in(' + gCurUsrInfo.Ranger + ')';
// check_sql_str :=
// 'select * from V_Logon_Cache_CarInfo where CarID' + ' in(' + gCurUsrInfo.Ranger + ')';
// end;
// end;
// TBaseDBLogonCacheThread.Create(False, messageHandle, False, APP_BASEDB_AUTH_NAME, sql_str, check_sql_str,
// dir_name , file_name, 'ID', _user_sql_str, _user_file_name);
// end;
end;
//procedure TDataModule1.FlushBaseDBGroupInfoList(_cds: TClientDataSet);
//var
// sGroupId: string;
// GroupInfo: TGroupInfo;
// db_name: string;
//begin
//
// db_name := getDBName;
// InitGroupInfoList;
// _cds := TBaseDBForm.OpenSelectFromDataset(db_name,
// 'select * from groupInfo');
// while not _cds.Eof do begin
// sGroupId:= Trim(_cds.FieldValues['GroupID']);
// GroupInfo:= TGroupInfo.Create;
// GroupInfo.GroupId:= _cds.FieldValues['GroupID'];
// GroupInfo.GroupName:= Trim(_cds.FieldValues['GroupName']);
// gGroupInfoList.AddObject(sGroupId, GroupInfo);
// _cds.Next;
// if Assigned(fProgress) then fProgress(Self, 1, fDataCount);
// end;
//end;
//
//procedure TDataModule1.FlushBaseDBTeamInfoList(_cds: TClientDataSet);
//var
// TeamInfo: TTeamInfo;
// sTeamId, TeamIds: string;
// db_name: string;
//begin
// db_name := getDBName;
// InitTeamInfoList;
// _cds := TBaseDBForm.OpenSelectFromDataset(db_name,
// 'select * from V_MSC_Group');
// TeamIds:= '';
// while not _cds.Eof do begin
// sTeamId:= Trim(_cds.FieldValues['LevelID']);
// if TeamIds='' then TeamIds:= sTeamId
// else TeamIds:= TeamIds+ ','+ sTeamId;
// TeamInfo:= TTeamInfo.Create;
// TeamInfo.TeamId:= _cds.FieldValues['LevelID'];
// TeamInfo.TeamName:= Trim(_cds.FieldValues['LevelName']);
// TeamInfo.GroupId:= _cds.FieldValues['GroupId'];
// gTeamInfoList.AddObject(sTeamId, TeamInfo);
// _cds.Next;
// if Assigned(fProgress) then fProgress(Self, 1, fDataCount);
// end;
//end;
procedure TDataModule1.FlushCarInfoList(_cds: TClientDataSet;
_log_name, _user_sql_str, _user_file_name: string);
var
sCarId, CarIds: string;
CarInfo: TCarInfo;
vehicle_str : string;
check_vehicle_str: string;
dir_name : string;
file_name : string;
i : Integer;
field_name : string;
p_field_value : PBaseDBFieldValue;
begin
if not Assigned(_cds) then
_cds := cdsCarInfo
else begin
if gCurUsrInfo.WatchRangeId = 0 then
vehicle_str :=
'from TeamInfo,CarInfo where TeamInfo.TeamId=CarInfo.TeamId and TeamInfo.GroupId' + ' in(' + gCurUsrInfo.Ranger + ')'
else if gCurUsrInfo.WatchRangeId = 1 then
vehicle_str :=
'from TeamInfo,CarInfo where TeamInfo.TeamId=CarInfo.TeamId and TeamInfo.TeamId' + ' in(' + gCurUsrInfo.Ranger + ')'
else if gCurUsrInfo.WatchRangeId = 2 then
vehicle_str :=
'from CarInfo where CarID' + ' in(' + gCurUsrInfo.Ranger + ')';
_cds.CommandText := 'select * ' + vehicle_str;
end;
dir_name := ExtractFilePath(Application.ExeName) + 'LogonCache\';
file_name := _log_name + '_CarInfo.txt';
InitCarInfoList;
_cds.Close;
if gIsCacheLogon and FileExists(dir_name + file_name) then
begin
_cds.LoadFromFile(dir_name + file_name);
fDataCount := _cds.RecordCount;
end
else begin
try
_cds.Open;
except
if FileExists(dir_name + _user_file_name) then
Windows.DeleteFile(PChar(dir_name + _user_file_name));
Exit;
end;
end;
CarIds:= '';
while not _cds.Eof do begin
if gVersionFlag = 75 then
begin
if not _cds.FieldByName('ParkName').IsNull then
begin
if UpperCase(Trim(_cds.FieldByName('ParkName').AsString)) <>
UpperCase('SC') then
begin
if Assigned(fProgress) then fProgress(Self, 1, fDataCount);
_cds.Next;
Continue;
end;
end;
end;
sCarId:= Trim(_cds.FieldValues['CarId']);
if CarIds='' then CarIds:= sCarId
else CarIds:= CarIds+ ','+ sCarId;
CarInfo:= TCarInfo.Create;
//ruihanxl
for i := 0 to CarInfo.CarinfoValueList.Count - 1 do
begin
p_field_value := PBaseDBFieldValue(CarInfo.CarinfoValueList.Items[i]);
field_name := p_field_value.FieldInfo.FieldName;
if field_name = '' then
Continue;
if p_field_value^.FieldInfo^.IsInput then
Continue;
if _cds.FindField(field_Name) <> nil then
TCarInfo.SetVarToFieldValue(CarInfo, field_name, _cds.FieldByName(field_Name).Value);
end;
gTeamID := CarInfo.TeamId;
gCarInfoList.AddObject(sCarId, CarInfo);
frmMain.AddDebugInfo(Format('login--FlushCarInfoList Progress %d', [fDataCount]));
if Assigned(fProgress) then fProgress(Self, 1, fDataCount);
_cds.Next;
end;
if gIsCacheLogon then
begin
if gCurUsrInfo.WatchRangeId = 0 then
begin
vehicle_str :=
'select * from TeamInfo,CarInfo where TeamInfo.TeamId=CarInfo.TeamId and TeamInfo.GroupId' + ' in(' + gCurUsrInfo.Ranger + ')';
check_vehicle_str :=
'select * from V_Logon_Cache_TeamInfo_CarInfo where GroupId' + ' in(' + gCurUsrInfo.Ranger + ')';
end
else if gCurUsrInfo.WatchRangeId = 1 then
begin
vehicle_str :=
'select * from TeamInfo,CarInfo where TeamInfo.TeamId=CarInfo.TeamId and TeamInfo.TeamId' + ' in(' + gCurUsrInfo.Ranger + ')';
check_vehicle_str :=
'select * from V_Logon_Cache_TeamInfo_CarInfo where TeamID' + ' in(' + gCurUsrInfo.Ranger + ')';
end
else if gCurUsrInfo.WatchRangeId = 2 then
begin
vehicle_str :=
'select * from CarInfo where CarID' + ' in(' + gCurUsrInfo.Ranger + ')';
check_vehicle_str :=
'select * from V_Logon_Cache_CarInfo where CarID' + ' in(' + gCurUsrInfo.Ranger + ')';
end;
frmMain.AddDebugInfo('login--FlushCarInfoList Create Thread');
try
TBaseDBLogonCacheThread.Create(False, messageHandle, True, 'ETGPSDB', vehicle_str,
check_vehicle_str, dir_name, file_name, 'CarID', _user_sql_str, _user_file_name);
except
end;
end;
isCloseDB := True;
frmMain.AddDebugInfo('login--FlushCarInfoList End');
end;
procedure TDataModule1.FlushEFenseList;
var
sCarIds: string;
EFense: TEfenceItem;
CarInfo: TCarInfo;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -