aviatorz
28-11-2012, 18:52:56
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.
...
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:
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
PQConexion.hostname:=host;Por eso supongo que tiene que ver algo con instanciar el PQConexion, que opinan?
El problema es el siguiente cuando quiero por ejemplo inicializar la conexión de postgres.
...
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:
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
PQConexion.hostname:=host;Por eso supongo que tiene que ver algo con instanciar el PQConexion, que opinan?