PDA

Ver la Versión Completa : Conectarse permanentemente a una BD


Aleh
21-05-2008, 13:57:12
Hola soy nuevo en el foro, estoy desarrollando mi proyecto de administración en Delphi y estoy teniendo bastantes problemas. Bueno voy al grano, me gustaria que respondiera alguien si sabe como establecer una conexion con un componente DBExpress desde que entramos en un programa, de manera que solo tenga un TSQLConection, es que si pongo uno por cada SQLQuery me pide la contraseña una y otra vez cada vez que realizo una consulta. Espero que entendais de qué hablo. Gracias.

tenporal
21-05-2008, 14:34:58
El objeto sqlconnection tiene una propiedad LoginPromt que posiblemente la tengas en true, cambiala a false y asi no te pedira el login:)

Neftali [Germán.Estévez]
21-05-2008, 15:39:07
...es que si pongo uno por cada SQLQuery me pide la contraseña una y otra vez cada vez que realizo una consulta.

Es que no deben poner una conexión por cada SQLQuery. Al menos yo no veo razón para ello. Lo lógico es colocar un Connection e un DataSource o lugar accesible por el resto de formularios y conectar todos los querys a ese Connection.

De otra forma estás gastando más recursos (más conexiones de las necesarias) además de tiempo, ya que realizar la conexión es relativamente lento.

Aleh
21-05-2008, 15:52:26
Solucioné lo de que me pidiera contraseñas, pero claro.. leyendo lo que pone Neftali tiene razon, los recursos...mi aplicacion tiene varios formularios MDIChild que cuelgan de un Main, ¿podria poner por ejemplo un Connection en el Main y tener acceso a el desde los Childs?, ¿como lo hago?, si teneis alguna idea. Gracias.

Casimiro Notevi
21-05-2008, 18:53:11
Normalmente los componentes de bases de datos se colocan en un DataModule principal al que acceden todos los formularios del programa.

Aleh
23-05-2008, 14:11:20
Y cómo se hace eso??, he conseguido incluir un DataModule a mi proyecto, pero como coloco un componente ahi??, hay que hacerlo escribiendo todo??, yo estoy usando el componente TSQLConnection de los DBExpress... si pueden ayudarme. GRACIAS.

enecumene
23-05-2008, 14:16:06
Y cómo se hace eso??, he conseguido incluir un DataModule a mi proyecto, pero como coloco un componente ahi??, hay que hacerlo escribiendo todo??, yo estoy usando el componente TSQLConnection de los DBExpress... si pueden ayudarme. GRACIAS.

De la misma forma que colocas un componente en un form :rolleyes:, sólo que sirve para componentes de conecciones de datos.

Saludos. ;)

Aleh
23-05-2008, 14:26:06
Yo para agregar un componente a un formulario arrastro el componente, pero en tiempo de diseño... en el datamodule no puedes poner DISEÑO, asi que ni idea de cómo se agrega... si alguien puede explicar un poquito cómo, lo agradeceria.

Delphius
23-05-2008, 15:38:44
Un TDataModule no es tan diferente a un TForm. La diferencia está en que el TDataModule no puede contener controles y/o componentes visuales.

Para usar un componente de datos dispuesto en un TDataModule, sólo es necesario incluir en la sección uses el nombre de dicha unidad.

por ejemplo, supongamos que nuestro tForm1, asociado a un Unit1 hace uso de un TQuery dispuesto en el TDataModule2, el cual está asociado a la Unit2.

Entonces, esto se hace así:

uses Unit2;

Y de este modo ya podemos trabajar con los componentes que están dispuestos en dicho DM. Por ejemplo:

procedure TForm1.Button1Click(Sender: TObject);
begin
DataModule2.Query1.SQL := ...
end;

Espero que se me entienda la idea. Sino volvemos a repasar.

Saludos,

Aleh
23-05-2008, 16:28:06
Entender se entiende, pero no consigo hacer que el componente coja el datamodule correctamente. No se en que estoy fallando, en fin, espero que pronto solucione esto, porque seguro que es una tonteria pero no me sale.

Delphius
23-05-2008, 16:34:10
Entender se entiende, pero no consigo hacer que el componente coja el datamodule correctamente. No se en que estoy fallando, en fin, espero que pronto solucione esto, porque seguro que es una tonteria pero no me sale.
Hola Aleh,
¿Podrías definir el significado de "no consigo hacer que el componente coja el datamodule correctamente"?

Al decirnos que fallas, poco podemos hacer. ¿Porqué no nos relatas más acabada y precisamente tus inquitudes?

No te vamos a cobrar por la cantidad de palabras, explica con mayores detalles tus dudas y prodemos serte de ayuda. Y de ser posible, una muestra de tu código (favor de emplear las etiquetas [ delphi ] [ /delphi ] (sin espacios) para visualizar correctamente el código).

Saludos,

Aleh
23-05-2008, 16:45:45
Muchas gracias Delphius!!, pero ya por fin consegui dar con el error, gracias a tu explicación y leyendola un par de veces, jejejeje.

El problema era que no estaba asignando correctamente la unidad del datamodule en los formularios.

GRACIAS!