unit srvImpresiones_Impl; {----------------------------------------------------------------------------} { This unit was automatically generated by the RemObjects SDK after reading } { the RODL file associated with this project . } { } { This is where you are supposed to code the implementation of your objects. } {----------------------------------------------------------------------------} interface uses {vcl:} Classes, SysUtils, {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, {Ancestor Implementation:} DARemoteService_Impl, {Used RODLs:} DataAbstract_Intf, {Generated:} FactuGES_Intf, uDADataTable, uDABINAdapter, uDAClasses, uDAScriptingProvider, uDABusinessProcessor; type { TsrvImpresiones } TsrvImpresiones = class(TDARemoteService, IsrvImpresiones) Diagrams: TDADiagrams; DABINAdapter: TDABINAdapter; bpImpresiones: TDABusinessProcessor; schImpresiones: TDASchema; DataDictionary: TDADataDictionary; procedure DARemoteServiceCreate(Sender: TObject); procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; var ConnectionName: string); protected { IsrvImpresiones methods } function InsertarMarcaImpresion(const NombreTabla: String; const IdTabla: Integer): Boolean; function IncrementarMarcaImpresion(const IdMarcaImpresion: Integer): Boolean; end; implementation {$R *.dfm} uses {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils; procedure Create_srvImpresiones(out anInstance : IUnknown); begin anInstance := TsrvImpresiones.Create(NIL); end; { srvImpresiones } procedure TsrvImpresiones.DARemoteServiceBeforeAcquireConnection( Sender: TDARemoteService; var ConnectionName: string); begin ConnectionName := dmServer.ConnectionName; end; procedure TsrvImpresiones.DARemoteServiceCreate(Sender: TObject); begin SessionManager := dmServer.SessionManager; end; function TsrvImpresiones.IncrementarMarcaImpresion( const IdMarcaImpresion: Integer): Boolean; begin // end; function TsrvImpresiones.InsertarMarcaImpresion(const NombreTabla: String; const IdTabla: Integer): Boolean; begin var ASchema : TDASchema; AConn : IDAConnection; dsData: IDADataset; AWhere : TDAWhereExpression; AWhereExpr1: TDAWhereExpression; AWhereExpr2: TDAWhereExpression; begin Result := ''; { Construir la expresión del Where a partir de los parámetros que se reciban. } with TDAWhereBuilder.Create do try AWhereExpr1 := NewBinaryExpression(NewField('', 'CODIGO'), NewConstant(NombreReferencia, datString), dboEqual); if (EmpresaID <> -1) then begin AWhereExpr2 := NewBinaryExpression(NewField('', 'ID_EMPRESA'), NewConstant(EmpresaID, datInteger), dboEqual); AWhere := NewBinaryExpression(AWhereExpr1, AWhereExpr2, dboAnd); end else AWhere := AWhereExpr1; finally Free; end; ASchema := schReferencias; AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName); try try dsData := ASchema.NewDataset(AConn, 'Referencias', ['VALOR'], '', '', False, True); dsData.DynamicWhere.Expression := AWhere; except RaiseError('No existe la tabla REFERENCIAS'); end; dsData.Active := True; if dsData.IsEmpty then RaiseError('No existe la referencia ' + NombreReferencia + ' en la tabla REFERENCIAS.'); Result := dsData.FieldByName('VALOR').AsString; finally dsData := NIL; end; end; initialization TROClassFactory.Create('srvImpresiones', Create_srvImpresiones, TsrvImpresiones_Invoker); finalization end.