📄 rm_dbrel.pas
字号:
{*****************************************}
{ }
{ Report Machine v2.0 }
{ DB related stuff }
{ }
{*****************************************}
unit RM_dbrel;
interface
{$I RM.inc}
uses
SysUtils, Windows, Messages, Classes, DB
{$IFDEF Delphi2}
, DBTables, BDE
{$ENDIF};
function RMIsBlob(Field: TField): Boolean;
function RMIsBookmarksEqual(DataSet: TDataSet; b1, b2: TBookmark): Boolean;
procedure RMAssignBlobTo(Blob: TField; Obj: TObject);
procedure RMGetFieldNames(DataSet: TDataSet; List: TStrings);
procedure RMDisableDBControls(aDataSet: TDataSet);
procedure RMEnableDBControls(aDataSet: TDataSet);
implementation
function RMIsBlob(Field: TField): Boolean;
begin
Result := (Field <> nil) and (Field.DataType in [ftBlob..ftTypedBinary]);
end;
procedure RMAssignBlobTo(Blob: TField; Obj: TObject);
begin
if Obj is TPersistent then
TPersistent(Obj).Assign(Blob)
else if Obj is TStream then
begin
TBlobField(Blob).SaveToStream(TStream(Obj));
TStream(Obj).Position := 0;
end;
end;
{$HINTS OFF}
procedure RMGetFieldNames(DataSet: TDataSet; List: TStrings);
var
i: Integer;
begin
try
DataSet.GetFieldNames(List);
except;
end;
end;
{$HINTS ON}
function RMIsBookmarksEqual(DataSet: TDataSet; b1, b2: TBookmark): Boolean;
{$IFDEF Delphi2}
var
n: Integer;
{$ENDIF}
begin
{$IFDEF Delphi2}
dbiCompareBookmarks(DataSet.Handle, b1, b2, n);
Result := n = 0;
{$ELSE}
Result := DataSet.CompareBookmarks(b1, b2) = 0;
{$ENDIF}
end;
procedure RMDisableDBControls(aDataSet: TDataSet);
begin
if aDataSet <> nil then
aDataSet.DisableControls;
end;
procedure RMEnableDBControls(aDataSet: TDataSet);
begin
if aDataSet <> nil then
aDataSet.EnableControls;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -