📄 unitdatacontroller.pas
字号:
unit UnitDataController;
interface
uses
classes, ADODB, SysUtils, DB ,
{$ifdef CodeSite}
CSIntf,
{$endif} // CodeSite
UnitDataInterface;
type
TDataController = class(TBaseController)
private
function AsADOConnection: TADOConnection;
protected
// procedure InitializeObject;
procedure CreateConnection; override;
procedure SetConnectString(const Value: string); override;
public
constructor Create(AOwner: TComponent; AConnect: string);
// destructor Destroy; override;
// constructor Create(AOwner: TComponent; AConnect: string); reintroduce;
// destructor Destroy; override;
// procedure CloseConnection;
function CreateCommand(AText: string; AType: TCommandType): TBaseCommand; override;
// function IsAccessDB: Boolean;
// function OpenConnection: Boolean;
function InTransaction: Boolean; override;
function BeginTrans: integer; override;
procedure CommitTrans; override;
procedure RollbackTrans; override;
function Execute(ASQL: string): Boolean; override;
published
// property Connected: Boolean read GetConnected;
// property Connection: TADOConnection read GetConnection;
// function CreateCommand(AText: string; AType: TCommandType): TBaseCommand;
// property ConnectString: string read FConnect write SetConnectString;
end;
implementation
uses UnitAppLogger, UnitDataCommand;
{ TDataController }
{
******************************* TDataController ********************************
}
//
constructor TDataController.Create(AOwner: TComponent; AConnect: string);
begin
{$ifdef CodeSite}
CodeSite.EnterMethod('TDataController.Create');
CodeSite.SendMsg(AConnect);
{$endif} // CodeSite
inherited Create(AOwner, AConnect);
// FConnect := AConnect;
// CreateConnection;
{$ifdef CodeSite}
CodeSite.ExitMethod('TDataController.Create');
{$endif} // CodeSite
end;
//
//destructor TDataController.Destroy;
//begin
// CloseConnection;
// inherited;
// {$ifdef CodeSite}
// CodeSite.SendMsg('TDataController.Destroy');
// {$endif} // CodeSite
//end;
//
//procedure TDataController.CloseConnection;
//begin
// if (FConnection <> nil) and FConnection.Connected then
// begin
// FConnection.Close;
// end;
//end;
//
function TDataController.CreateCommand(AText: string; AType: TCommandType):
TBaseCommand;
begin
// {$ifdef CodeSite}
// CodeSite.EnterMethod('TDataController.CreateCommand');
//// CodeSite.SendFmtMsg('TDataController.CreateCommand:Text=[%s],Type=%d',
//// [AText, Ord(AType)]);
// {$endif} // CodeSite
result := TDataCommand.Create(Self, Self, AText, AType);// Self);
// with (result as TDataCommand) do
// begin
// CommandType := AType;
// CommandText := AText;
// end;
// {$ifdef CodeSite}
// CodeSite.ExitMethod('TDataController.CreateCommand');
// {$endif} // CodeSite
end;
procedure TDataController.CreateConnection;
begin
{$ifdef CodeSite}
CodeSite.EnterMethod('TDataController.CreateConnection');
{$endif} // CodeSite
Connection := TADOConnection.Create(Self);
with TADOConnection(Connection) do
begin
ConnectionString := FConnect;
LoginPrompt := False;
end;
{$ifdef CodeSite}
CodeSite.SendMsg(FConnect);
CodeSite.ExitMethod('TDataController.CreateConnection');
{$endif} // CodeSite
end;
//function TDataController.GetConnected: Boolean;
//begin
// result := FConnection.Connected;
//end;
//
//procedure TDataController.InitializeObject;
//begin
// CreateConnection;
//end;
//
//function TDataController.IsAccessDB: Boolean;
//
// const
// JetProvider = 'Microsoft.Jet.OLEDB';
//
//begin
// result := (AnsiPos(JetProvider, ConnectString) > 0);
//end;
//
//function TDataController.OpenConnection: Boolean;
//begin
// if FConnection = nil then
// CreateConnection;
// result := FConnection.Connected;
// if result then Exit;
// try
// // CloseConnection;
// FConnection.Open;
// result := FConnection.Connected;
// except
// on e: Exception do
// begin
// FConnection.Close;
// AppLogger.AddLog(Self, 'TDataController.OpenConnection: %s', [E.Message]);
// raise;
// end;
// end; // try/except
//end;
procedure TDataController.SetConnectString(const Value: string);
begin
// if FConnect <> Value then
// begin
// FConnect := Value;
// if FConnection.Connected then
// FConnection.Close;
// FConnection.ConnectionString := FConnect;
// end;
inherited SetConnectString(Value);
(Connection as TADOConnection).ConnectionString := Value;
end;
//function TDataController.GetConnection: TADOConnection;
//begin
// if FConnection = nil then
// CreateConnection;
// result := FConnection as TADOConnection;
//end;
//procedure TDataController.SetConnection(const Value: TADOConnection);
//begin
// FADOConnection := Value;
//end;
function TDataController.BeginTrans: integer;
begin
result := AsADOConnection.BeginTrans;
end;
procedure TDataController.CommitTrans;
begin
if InTransaction then
AsADOConnection.CommitTrans;
end;
function TDataController.InTransaction: Boolean;
begin
result := AsADOConnection.InTransaction;
end;
procedure TDataController.RollbackTrans;
begin
AsADOConnection.RollbackTrans;
end;
function TDataController.AsADOConnection: TADOConnection;
begin
result := Connection as TADOConnection;
end;
function TDataController.Execute(ASQL: string): Boolean;
begin
try
// statements to try
AsADOConnection.Execute(ASQL);
result := True;
except
on e: Exception do
begin
AppLogger.AddLog(Self, 'Execute: %s', [E.Message]);
{$ifdef CodeSite}
CodeSite.SendMsg(ASQL);
{$endif} // CodeSite
raise;
end;
end; // try/except
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -