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

📄 rm_dbrel.pas

📁 进销存·完整的·有数据库的·非常完整·只得参考
💻 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 + -