![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Buenas!
La idea es la siguiente: Creas un DataModule y le colocas un TADOConnection (que llamaremos conexion) y un TOpenDialog. El código de esta unidad es el siguiente: En la creación del DataModule el programa va a buscar en el registro de Windows la rama HKEY_LOCAL_MACHINE\software\EduP\Pedidos y recoge un valor de cadena que se llama BBDD. En este valor se almacena la ruta y el nombre de la base de datos. Si la clave no existe se lanza el opendialog para que se seleccione la base de datos y guarda el valor. Una vez tiene el valor concatena los textos para la connectionString y abre la conexión a la base de datos. A partir de ahí cualquier TADOTable o TADOQuery necesita acceder al TADOConnection del DataModule y listo. Espero que te sirva Edu |
|
#2
|
|||
|
|||
|
Me da un error de lectura.
Yo lo que hago es incluir UDataModule en el formulario principal y desde alli hago: DataMod.DataModuleCreate(self); La linea donde me da el error es esta: Begin if (Reg.OpenKey('\SOFTWARE\Gestorvvs\datos', true)) and (OpenDialog1.Execute) then ... Te pediria un ultimo favor y es que al no saber utilizar los DataModule me gustaria que me pusieses un ejemplo sobre como harias tu una sentencia SQL una vez obtenida la UDataModule.pas. Supongo que una vez hecha esta unidad la puedo utilizar todas las veces que quiera.Muchas gracias por todo y un saludo Última edición por Moises22 fecha: 13-12-2005 a las 15:03:50. |
|
#3
|
||||
|
||||
|
Esta unidad va a ser común para todo el proyecto. En cualquier formulario que necesites acceder a la base de datos deberás incluirla en el uses. Después pinchas un TADOQuery en el formulario y miras la ventana de propiedades: Encontrarás una que se llama Connection. Si deslpiegas te va a aparecer la conexión del DataModule. Una vez seleccionada la conexión debes utilizar la propiedad SQL para escribir la sentencia, y desde código asignar los parámetros y abrir este TADOQuery. Mut fácil.
Edu |
|
#4
|
|||
|
|||
|
Sip correcto, pero mi problema es el siguiente.
He hecho lo que me has dicho y añado en el form que yo quiero lo siguiente: ADOQuery1.SQL.Add('Select * from usadas'); ADOQuery1.Open; ADOQuery1.Free; Pues bien, me da un error que me dice "Missin connection or ConnectionString", parece que no pilla bien la conexion. El DataModule lo tengo exactamente = que el que me propusiste. Gracias por la ayuda de todas formas |
|
#5
|
||||
|
||||
|
Te falta el ADOQuery1.connection := DataModule.Conexion
Si lo tienes pinchado en el formulario puedes ir a la página de propiedades y seleccionalo. Un saludo Edu |
|
#6
|
|||
|
|||
|
Eso lo puse como me dijiste, es decir, en las propiedades del objeto TADOQuery mire Connection, desplegue y me salio automaticamente DataMod.Conexion , supongo que si hago estoy no le tengo que hacer en el codigo.
Aunque tb e de decirte que e probado a poner lo que me dijiste desde el codigo, es decir, ADOQuery1.Connection:=DataMod.Conexion; y me sigue dando exactamente el mismo error. La UDataModule esta copiada de la que me propusiste, tengo la impresion de que algo anda mal alli, pero tb podria ser que me pasara por alto algo al enlazar con ADOQuery. ¿ Que puede ser ? ¿ Que se me ha podido pasar por alto ? Última edición por Moises22 fecha: 14-12-2005 a las 10:04:49. |
|
#7
|
|||
|
|||
|
He resuelto uno de los problemas leyendo en el foro, y es que habia que poner en la ejecucion de la Aplicacion que se creara el UDataModule antes que el Unit1.
Ahora me da un problema que considero mas logico aunque no consigo saber por qué.Me dice: No se encontro el origen de datos o no especifico un o no se especifico ningun controlador predeterminado ¿¿¿¿ Que estoy haciendo mal ????? |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|