unit ProgVersionMst; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, wItem, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt, FireDAC.Phys.PGDef, FireDAC.VCLUI.Wait, FireDAC.Comp.UI, FireDAC.Phys.PG, Data.DB, FireDAC.Comp.DataSet, FireDAC.Comp.Client; type TProgVersionMst = class(TwItem) private { Private declarations } FExeName: AnsiString; FUpdateTime: AnsiString; FMajor: AnsiString; FMinor: AnsiString; FPatch: AnsiString; protected { Protected declarations } public { Public declarations } class function xGetObjMesProgVersion(AQuery: TFDQuery): TProgVersionMst; class function xAddSqlMark(velStr: string): string; class function LoadFromSingleQuery(AQuery: TFDQuery): TProgVersionMst; published { Published declarations } property ExeName: AnsiString read FExeName write FExeName; property UpdateTime: AnsiString read FUpdateTime write FUpdateTime; property Major: AnsiString read FMajor write FMajor; property Minor: AnsiString read FMinor write FMinor; property Patch: AnsiString read FPatch write FPatch; end; implementation { TProgVersionMst } class function TProgVersionMst.LoadFromSingleQuery(AQuery: TFDQuery): TProgVersionMst; begin Result := nil; while not AQuery.Eof do begin Result := TProgVersionMst.Create(nil); Result.OBID := AQuery.FieldByName('OBID').AsString; Result.Name := AQuery.FieldByName('Name').AsString; Result.wClassName := AQuery.FieldByName('wClassName').AsString; Result.CreateDate := AQuery.FieldByName('CreateDate').AsString; Result.CreateTime := FormatDateTime('hh:nn:ss', AQuery.FieldByName('CreateTime').AsDateTime); Result.CreatorID := AQuery.FieldByName('CreatorID').AsString; Result.IsValid := AQuery.FieldByName('IsValid').AsString; Result.LcStatus := AQuery.FieldByName('LcStatus').AsString; Result.ExeName := AQuery.FieldByName('ExeName').AsString; Result.UpdateTime := AQuery.FieldByName('UpdateTime').AsString; Result.Major := AQuery.FieldByName('Major').AsString; Result.Minor := AQuery.FieldByName('Minor').AsString; Result.Patch := AQuery.FieldByName('Patch').AsString; AQuery.Next; end; end; class function TProgVersionMst.xAddSqlMark(velStr: string): string; begin Result := ''; Result := '''' + velStr + ''''; end; class function TProgVersionMst.xGetObjMesProgVersion( AQuery: TFDQuery): TProgVersionMst; var sql: string; begin Result := nil; sql := 'SELECT * FROM "ProgVersionMst"'; sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t'); sql := sql + ' AND "ExeName"=' + xAddSqlMark('NeolMes.exe'); try AQuery.Close; AQuery.SQL.Text := sql; AQuery.Open; except on E: Exception do ShowMessage('xGetObjMesProgVersion Äõ¸® ½ÇÇà ¿À·ù: ' + E.Message); end; Result := LoadFromSingleQuery(AQuery); end; end.