Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Inicializar TADOConnection (https://www.clubdelphi.com/foros/showthread.php?t=5433)

xgerard 21-11-2003 00:20:50

Inicializar TADOConnection
 
hola!

estoy desarrollando un proyecto en el que tengo que usar objetos ADO dentro de una dll, pero al compilarlo me manda un warning de que el objeto no ha sido inicilizado y no se como hacer eso :confused:

les pongo un pedazo del codigo...

procedure alta(nombre, maestra : string;edad, grado : integer);
var
database : TADOConnection;
query: TADOQuery;
begin
database.Connected := false; <-------- Al llegar a esta parte se interrumpe la ejecucion del programa
database.ConnectionString :='Provider=MSDASQL.1;Password=colegio;Persist Security Info=True;User ID=colegio;Data Source=myodbc3-test';
database.Connected := true;
.
.
.

de antemano gracias ... :)

Osorio 21-11-2003 15:05:43

Exactamente, el objeto no ha sido Inicializado, debes hacer algo similar con el Query tambien.


procedure alta(nombre, maestra : string;edad, grado : integer);
var
database : TADOConnection;
query: TADOQuery;
begin

database:= TADOConnection.Create(self);//Aki se inicializa el objeto

database.Connected := false; <-------- Al llegar a esta parte se interrumpe la ejecucion del programa
database.ConnectionString :='Provider=MSDASQL.1;Password=colegio;Persist Security Info=True;User ID=colegio;Data Source=myodbc3-test';
database.Connected := true;
.


Suerte

xgerard 21-11-2003 20:13:02

Cita:

Osorio comentó:

database:= TADOConnection.Create(self);//Aki se inicializa el objeto


ya lo probe, y ahora me dice que "self" no esta declarado :confused:

roman 21-11-2003 20:30:53

Cita:

xgerard comentó:
ya lo probe, y ahora me dice que "self" no esta declarado :confused:
Self sólo existe en el contexto de un objeto (generalmente un formulario) Cómo estás usando las componentes fuera de un formulario debes especificar otro parámetro al constructor, por ejemplo:

database:= TADOConnection.Create(nil);

Y no olvides que en algún momento deberás destruir tú mismo las componentes que crees de esta forma:

database.free;

// Saludos

roman 21-11-2003 20:33:54

Aclaro un poco:

El parámetro de Create es el "dueño" (owner) del objeto. El dueño es quien se encarga de destruir al objeto y normalmente será el formulario. Por ello, cuando insertas componentes en un formulario no tienes que preocuparte de destruirlos.

En este caso no hay formulario que pueda ser el dueño del componente y por eso pasas nil cómo duelo, esto es, nadie será dueño del componente y por esta razón deberás ser tú mismo quien libere la componente.

// Saludos

xgerard 21-11-2003 20:56:14

GRACIAS! :D

ya veo una luz al final del tunel :p


La franja horaria es GMT +2. Ahora son las 19:39:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi