rm_dbrel.pas
来自「进销存·完整的·有数据库的·非常完整·只得参考」· PAS 代码 · 共 86 行
PAS
86 行
{*****************************************}
{ }
{ 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 + =
减小字号Ctrl + -
显示快捷键?