Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-02-2005
Holderhek Holderhek is offline
Miembro
 
Registrado: feb 2005
Posts: 17
Poder: 0
Holderhek Va por buen camino
Problemas con un TADOConnection en un DataModule

Hola

Dentro de un proyecto agregue un DataModule para que todos los Forms tengan acceso al mismo componente TADOConnection.
Entonces, lo que tengo son varios Forms que en la declaracion del "uses" puse el DataModule y dentro del DataModule esta este TADOConnection seteado a la Base de Datos que tengo (Base de Datos en Acces. Esto esta bien ya que antes tenia el TADOConnection en el mismo Form que lo usaba y funcionaba bien. Ahora que lo separe ya no funciona).

Mi problema es el siguiente.

Me aparece el error de "Access Violation" en la primera linea que ocupa el TADOConnection.

Intente creando nuevamente el TADOConnection y seteando el ConnectionString y otras propiedades en el procedure de creacion del DataModule pero no funciono.

Tambien intente crear el TADOConnection en la primera parte donde ocupo el TADOConnection y tampoco funciono.

Bueno, espero algun consejo.
Gracias por su tiempo.
Saludos.
Responder Con Cita
  #2  
Antiguo 07-02-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Pues tiene que funcionar, lo primero tienes que hacer un "Uses", del Datamodulo en donde se hallan estos componentes.

Otro problema puede ser que como antes lo tenías en el propio formulario, arrastrases en su momento algún campo al formulario o conectases la rejilla al componente que tenías en el formulario y como ahora ya no está es posible que por ahí venga el error.

En resumen haz el Uses mencionado y luego todos los componentes que tengas conectados al TADoConection revisa no estén conectados al que tenías en el formulario.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 08-02-2005
Holderhek Holderhek is offline
Miembro
 
Registrado: feb 2005
Posts: 17
Poder: 0
Holderhek Va por buen camino
Hola

Gracias por responder pero el problema es otro.

Estuve haciendo unas pruebas y definitivamente yo estoy mal, asi es que me gustaria saber como se hace bien.
Puse un TADOConnection (ADOConnection1) en un DataModule (DataModule1) y lo configure. Luego en un Form (Form1) puse un ADOQuery (ADOQuery1) y le puse como Connection el ADOConnection del DataModule (O sea DataModule1.ADOConnection1) luego probe el programa y funcionaba.

Pero ahora intente hacer lo que yo querya hacer y es acceder al ADOConnection con codigo.
En el FormCreate del Form1 puse una simple sentencia:
DataModule1.ADOConnection1.LoginPrompt:=False;
Segun yo deberia funcionar, y me da error de Access Violation.

¿Por que no se puede hacer lo que quiero hacer? ¿Por que si se puede linkear un ADOConnection pero no me deja acceder a sus propiedades dentro del codigo en otro Unit? ¿Como se deberia realizar estas operaciones?

Bueno, espero se entienda.

Gracias por su tiempo.

Saludos.
Responder Con Cita
  #4  
Antiguo 08-02-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Con esto simpletemente tendría que funcionarte:
Código Delphi [-]
 ADOConnection1.LoginPrompt:=False;

Tienes que ir al menu de archivo e indicarle que vas a utilizar la Unidad que contiene el DataModlulo.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 08-02-2005
Avatar de unoccio
unoccio unoccio is offline
Registrado
 
Registrado: feb 2005
Posts: 5
Poder: 0
unoccio Va por buen camino
El problema que tenés es de memoria, estás accediendo a un objeto que todavía no ha sido creado.
Fijate el código del proyecto, en la creación de los forms y el dataModule, seguramente se crea primero el "Form1" y luego el DataModule, por eso en el onCreate del Form1 querés acceder al DM que todavía no está creado y obtenés este error de memoria.

Seguramente tenés esto:
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TDMConnections, DMConnections);

cambialo por algo así:

Application.CreateForm(TDMConnections, DMConnections);
Application.CreateForm(TForm1, Form1);

saludos.
Responder Con Cita
  #6  
Antiguo 08-02-2005
Holderhek Holderhek is offline
Miembro
 
Registrado: feb 2005
Posts: 17
Poder: 0
Holderhek Va por buen camino
Hola
Gracias por tus respuestas, pero el problema era algo muy simple.
Fue un simple problema de orden de creacion de Units.
Basto con poner primero el DataModule antes de todos los Forms que ocupaban el DataModule para que ya no pasara.
(Soy nuevito en esto de Delphi, empece a principio de año no mas :-P)
Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:01:11.


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