Ver Mensaje Individual
  #1  
Antiguo 28-11-2012
aviatorz aviatorz is offline
Registrado
NULL
 
Registrado: sep 2011
Posts: 7
Reputación: 0
aviatorz Va por buen camino
Como compartir metodos entre formularios y tambien la conexion a postgres??

En Lazarus 1.0.2, estoy intentando hacer una clase que solo contenga métodos y en esos métodos se realice cualquier operación y desde los formularios llamar a esos métodos.

El problema es el siguiente cuando quiero por ejemplo inicializar la conexión de postgres.
Código:
...
class var
      {Variables de clases}
      SQLquery:TSQLQuery;
      Datasource:TDataSource;
      Transaccion:TSQLTransaction;
      PQConexion:TPQConnection;  
...
class procedure StaticData.Inicializa_conexion(usuario,contrasena,host,db:string);
begin
     PQConexion.hostname:=host;
     PQConexion.databaseName:=db;
     PQConexion.username:=usuario;
     PQConexion.password:=contrasena;

     PQConexion.transaction:= Transaccion;
     Transaccion.DataBase:=PQConexion;
     SQLQuery.Transaction:=Transaccion;
     Datasource.DataSet:=SQLQuery;

     try
        PQConexion.connected:=true;
        Application.MessageBox(PChar('Conexion realizada con exito'),PChar('Conexion'),MB_ICONINFORMATION);
     except
       on e:exception do
       begin
         Application.MessageBox(PChar('Ha ocurrido el siguiente Error: '+e.Message),PChar('Error'),MB_ICONINFORMATION);
         PQConexion.connected:=false;
       end;
     end;
end;
me aparece un error que según entiendo tiene que ver algo con la instanciacion del objeto PQConexion, el error dice:
Cita:
El proyecto x ha lanzado una excepcion de la clase 'External:SIGSEGV'. en direccion 403AD0
Corrí el proyecto paso a paso y el error se da cuando intenta hacer la primera asignación al PQConexion
Código:
PQConexion.hostname:=host;
Por eso supongo que tiene que ver algo con instanciar el PQConexion, que opinan?
Responder Con Cita