rmd_sqldir.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 606 行 · 第 1/2 页
PAS
606 行
{*****************************************}
{ }
{ Report Machine 2.0 }
{ Wrapper for Diamond Access }
{ }
{*****************************************}
unit RMD_SQLDir;
interface
{$I RM.INC}
uses
Classes, SysUtils, Forms, ExtCtrls, DB, Controls, StdCtrls,
RM_Common, RM_Class, RM_DataSet, RM_Parser, RMD_DBWrap, SDEngine
{$IFDEF USE_INTERNAL_JVCL}, rm_JvInterpreter{$ELSE}, JvInterpreter{$ENDIF}
{$IFDEF Delphi6}, Variants{$ENDIF};
type
TRMDSQLDirComponents = class(TComponent) // fake component
end;
{ TRMDSDDatabase }
TRMDSDDatabase = class(TRMDialogComponent)
private
FDatabase: TSDDatabase;
function GetConnected: Boolean;
procedure SetConnected(Value: Boolean);
function GetDatabaseName: string;
procedure SetDatabaseName(Value: string);
function GetKeepConnection: Boolean;
procedure SetKeepConnection(Value: Boolean);
function GetLoginPrompt: Boolean;
procedure SetLoginPrompt(Value: Boolean);
function GetRemoteDatabase: string;
procedure SetRemoteDatabase(Value: string);
function GetServerType: TSDServerType;
procedure SetServerType(Value: TSDServerType);
function GetTransIsolation: TSDTransIsolation;
procedure SetTransIsolation(Value: TSDTransIsolation);
function GetSessionName: string;
procedure SetSessionName(Value: string);
function GetParams: TStrings;
procedure SetParams(Value: TStrings);
protected
public
constructor Create; override;
destructor Destroy; override;
procedure LoadFromStream(aStream: TStream); override;
procedure SaveToStream(aStream: TStream); override;
published
property Connected: Boolean read GetConnected write SetConnected;
property DatabaseName: string read GetDatabaseName write SetDatabaseName;
property KeepConnection: Boolean read GetKeepConnection write SetKeepConnection;
property LoginPrompt: Boolean read GetLoginPrompt write SetLoginPrompt;
property RemoteDatabase: string read GetRemoteDatabase write SetRemoteDatabase;
property ServerType: TSDServerType read GetServerType write SetServerType;
property TransIsolation: TSDTransIsolation read GetTransIsolation write SetTransIsolation;
property SessionName: string read GetSessionName write SetSessionName;
property Params: TStrings read GetParams write SetParams;
end;
{ TRMDSDQuery }
TRMDSDQuery = class(TRMDQuery)
private
FQuery: TSDQuery;
// procedure _GetSessionName(Sender: TObject);
function GetDetachOnFetchAll: Boolean;
procedure SetDetachOnFetchAll(Value: Boolean);
function GetParamCheck: Boolean;
procedure SetParamCheck(Value: Boolean);
function GetSessionName: string;
procedure SetSessionName(Value: string);
protected
function GetParamCount: Integer; override;
function GetSQL: string; override;
procedure SetSQL(Value: string); override;
function GetFilter: string; override;
procedure SetFilter(Value: string); override;
function GetDatabaseName: string; override;
procedure SetDatabaseName(const Value: string); override;
function GetDataSource: string; override;
procedure SetDataSource(Value: string); override;
function GetParamName(Index: Integer): string; override;
function GetParamType(Index: Integer): TFieldType; override;
procedure SetParamType(Index: Integer; Value: TFieldType); override;
function GetParamKind(Index: Integer): TRMParamKind; override;
procedure SetParamKind(Index: Integer; Value: TRMParamKind); override;
function GetParamText(Index: Integer): string; override;
procedure SetParamText(Index: Integer; Value: string); override;
function GetParamValue(Index: Integer): Variant; override;
procedure SetParamValue(Index: Integer; Value: Variant); override;
procedure GetDatabases(sl: TStrings); override;
procedure GetTableNames(DB: string; Strings: TStrings); override;
procedure GetTableFieldNames(const DB, TName: string; sl: TStrings); override;
public
constructor Create; override;
procedure LoadFromStream(aStream: TStream); override;
procedure SaveToStream(aStream: TStream); override;
published
property DetachOnFetchAll: Boolean read GetDetachOnFetchAll write SetDetachOnFetchAll;
property ParamCheck: Boolean read GetParamCheck write SetParamCheck;
property SessionName: string read GetSessionName write SetSessionName;
end;
implementation
uses RM_Const, RM_utils, RM_PropInsp, RM_Insp, RM_EditorStrings;
{$R RMD_SqlDir.RES}
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{ TRMDSDDatabase }
constructor TRMDSDDatabase.Create;
begin
inherited Create;
Typ := gtAddin;
BaseName := 'SDDatabase';
FBmpRes := 'RMD_SDDATABASE';
FDatabase := TSDDatabase.Create(RMDialogForm);
FComponent := FDatabase;
DontUndo := True;
end;
destructor TRMDSDDatabase.Destroy;
begin
if Assigned(RMDialogForm) then
FreeAndNil(FDatabase);
inherited Destroy;
end;
function TRMDSDDatabase.GetConnected: Boolean;
begin
Result := FDatabase.Connected;
end;
procedure TRMDSDDatabase.SetConnected(Value: Boolean);
begin
FDatabase.Connected := Value;
end;
function TRMDSDDatabase.GetDatabaseName: string;
begin
Result := FDatabase.DatabaseName;
end;
procedure TRMDSDDatabase.SetDatabaseName(Value: string);
begin
FDatabase.DatabaseName := Value;
end;
function TRMDSDDatabase.GetKeepConnection: Boolean;
begin
Result := FDatabase.KeepConnection;
end;
procedure TRMDSDDatabase.SetKeepConnection(Value: Boolean);
begin
FDatabase.KeepConnection := Value;
end;
function TRMDSDDatabase.GetLoginPrompt: Boolean;
begin
Result := FDatabase.LoginPrompt;
end;
procedure TRMDSDDatabase.SetLoginPrompt(Value: Boolean);
begin
FDatabase.LoginPrompt := Value;
end;
function TRMDSDDatabase.GetRemoteDatabase: string;
begin
Result := FDatabase.RemoteDatabase;
end;
procedure TRMDSDDatabase.SetRemoteDatabase(Value: string);
begin
FDatabase.RemoteDatabase := Value;
end;
function TRMDSDDatabase.GetServerType: TSDServerType;
begin
Result := FDatabase.ServerType;
end;
procedure TRMDSDDatabase.SetServerType(Value: TSDServerType);
begin
FDatabase.ServerType := Value;
end;
function TRMDSDDatabase.GetTransIsolation: TSDTransIsolation;
begin
Result := FDatabase.TransIsolation;
end;
procedure TRMDSDDatabase.SetTransIsolation(Value: TSDTransIsolation);
begin
FDatabase.TransIsolation := Value;
end;
function TRMDSDDatabase.GetSessionName: string;
begin
Result := FDatabase.SessionName;
end;
procedure TRMDSDDatabase.SetSessionName(Value: string);
begin
FDatabase.SessionName := Value;
end;
function TRMDSDDatabase.GetParams: TStrings;
begin
Result := FDatabase.Params;
end;
procedure TRMDSDDatabase.SetParams(Value: TStrings);
begin
FDatabase.Params.Assign(Value);
end;
procedure TRMDSDDatabase.LoadFromStream(aStream: TStream);
begin
inherited LoadFromStream(aStream);
RMReadWord(aStream);
FDatabase.ServerType := TSDServerType(RMReadByte(aStream));
FDatabase.DatabaseName := RMReadString(aStream);
FDatabase.RemoteDatabase := RMReadString(aStream);
FDatabase.Transisolation := TSDTransisolation(RMReadByte(aStream));
FDatabase.SessionName := RMReadString(aStream);
RMReadMemo(aStream, FDatabase.Params);
FDatabase.LoginPrompt := RMReadBoolean(aStream);
FDatabase.KeepConnection := RMReadBoolean(aStream);
FDatabase.Connected := RMReadBoolean(aStream);
end;
procedure TRMDSDDatabase.SaveToStream(aStream: TStream);
begin
inherited SaveToStream(aStream);
RMWriteWord(aStream, 0);
RMWriteByte(aStream, Byte(FDatabase.ServerType));
RMWriteString(aStream, FDatabase.DatabaseName);
RMWriteString(aStream, FDatabase.RemoteDatabase);
RMWriteByte(aStream, Byte(FDatabase.Transisolation));
RMWriteString(aStream, FDatabase.SessionName);
RMWriteMemo(aStream, FDatabase.Params);
RMWriteBoolean(aStream, FDatabase.LoginPrompt);
RMWriteBoolean(aStream, FDatabase.KeepConnection);
RMWriteBoolean(aStream, FDatabase.Connected);
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{TRMDSDQuery}
constructor TRMDSDQuery.Create;
begin
inherited Create;
FComponent := FQuery;
BaseName := 'SDQuery';
FBmpRes := 'RMD_SDQUERY';
FQuery := TSDQuery.Create(RMDialogForm);
DataSet := FQuery;
end;
function TRMDSDQuery.GetDetachOnFetchAll: Boolean;
begin
Result := FQuery.DetachOnFetchAll;
end;
procedure TRMDSDQuery.SetDetachOnFetchAll(Value: Boolean);
begin
FQuery.DetachOnFetchAll := Value;
end;
function TRMDSDQuery.GetParamCheck: Boolean;
begin
Result := FQuery.ParamCheck;
end;
procedure TRMDSDQuery.SetParamCheck(Value: Boolean);
begin
FQuery.ParamCheck := Value;
end;
function TRMDSDQuery.GetSessionName: string;
begin
Result := FQuery.SessionName;
end;
procedure TRMDSDQuery.SetSessionName(Value: string);
begin
FQuery.SessionName := Value;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?