unit dbm_sequence; interface uses ZConnection, ZSequence, Classes, dbm_connection; type TSerialGP = (gpsDocIn, gpsMemo, gpsDocCli, gpsWSer); TDBM_sequence = class(TZSequence) public constructor Create(AOwner: TComponent; Connection: TDBM_connection); reintroduce; overload; function SerialByName(s_gen: string): integer; function Serial(gps_gen: TSerialGP): integer; function Get(gps_gen: TSerialGP): integer; end; const AS_GEN: array[TSerialGP] of string = ( 'GEN_DIN' // document entrant ,'GEN_MEMO' // notes et mémos ,'GEN_DOCCLI' // documents clients traités ,'GEN_WSER' // sérial générique ); implementation uses SysUtils; { TGPZSequence } constructor TDBM_sequence.Create(AOwner: TComponent; Connection: TDBM_connection); begin inherited Create(AOwner); Self.Connection := Connection.getConnection; end; function TDBM_sequence.Get(gps_gen: TSerialGP): integer; begin Result := Serial(gps_gen); end; function TDBM_sequence.Serial(gps_gen: TSerialGP): integer; begin SequenceName := UpperCase(AS_GEN[gps_gen]); Result := GetNextValue; Assert(Result > 0); end; function TDBM_sequence.SerialByName(s_gen: string): integer; begin SequenceName := UpperCase(s_gen); Result := GetNextValue; Assert(Result > 0); end; end.
unit dbm_object; interface uses ZConnection; type TDBM_object = class(TObject) protected connection: TZConnection; public constructor Create(connection: TZConnection); virtual; destructor Destroy; override; function getConnection: TZConnection; end; implementation { TDBM_object } constructor TDBM_object.Create(connection: TZConnection); begin Self.connection := connection; end; destructor TDBM_object.Destroy; begin inherited; end; function TDBM_object.getConnection: TZConnection; begin Result := connection; end; end. unit dbm_connection; interface uses dbm_object, ZConnection; type TDBM_connection = class(TDBM_object) private _connection: TZConnection; public constructor Create(connection: TZConnection); procedure startTransaction; procedure commit; procedure rollback; function inTransaction: boolean; function connected: boolean; procedure connect; procedure disconnect; function getConnection: TZConnection; end; implementation { TDBM_connection } procedure TDBM_connection.commit; begin if inTransaction then getConnection.Commit; end; procedure TDBM_connection.connect; begin if not connected then getConnection.Connect; end; function TDBM_connection.connected: boolean; begin Result := getConnection.Connected; end; constructor TDBM_connection.Create(connection: TZConnection); begin _connection := connection; end; procedure TDBM_connection.disconnect; begin if connected then getConnection.Disconnect; end; function TDBM_connection.getConnection: TZConnection; begin Result := _connection; end; function TDBM_connection.inTransaction: boolean; begin Result := getConnection.InTransaction; end; procedure TDBM_connection.rollback; begin if inTransaction then getConnection.Rollback; end; procedure TDBM_connection.startTransaction; begin if not inTransaction then getConnection.StartTransaction; end; end.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question