![]() |
Conectar a un DataSet de otro form.
¡¡Saludos!!: :rolleyes:
Estoy haciendo un programilla de bases de datos, en especial para una biblioteca. Tengo un form para "asignar" un libro a una persona, que es cuando lo coge prestado. El caso es que quiero que en ese form se me muestre, en un DBComboBox, todos los libros disponibles (La columna Título de la tabla TblLibros, que tiene como dataset dsLibros). Bien, cómo no podía poner el Dataset directamente desde el form para coger libros aún añadiendo las uses, he puesto el siguiente código cuando lo llamo
Sin embargo, tampoco me funciona. ¿Cómo podría hacer lo que me propongo?. Gracias, simplemente, por aguantarme :rolleyes: :p |
Mira a ver esta línea me parece que no es correcta: frmCogerLibro.eLibro.DataSource := frmPrincipal.frmLibros1.dsLibros; Si el Dataset esta en frmPrincipal, sobraría la alusión a libros. Un Saludo. |
Lo siento marcos, pero no comprendo lo que me quieres decir, y eso que lo has dicho lo más simple del mundo entero.
Aclaro más la situación, por si las moscas: El botón para llamar al nuevo form (para "asignar" un libro) está en un frame incrustado en el form principal. |
Cita:
Es que guiándonos por la nomeclatura de tus objetos, la línea a la que Marcos hace referencia: no tiene sentido a menos que el formulario frmLibros esté contenido en el formulario frmPrincipal, cosa posible pero poco probable. // Saludos |
Es que es así ;) frmLibros está dentro de frmPrincipal, para llamarlo desde el form principal, pues si no me abofetea con un:
Código:
[Error] uUsuarios.pas(90): Undeclared identifier: 'frmLibros' |
Cita:
Porque, a ver, se puede hacer, pero.......... como dice Román no es muy normal hacerlo (para eso están los frames y otros contenedores) |
Volvamos al inicio
Cita:
// Saludos |
El dataset está en un frame, el frame está "incrustado" en el form principal.
|
Cita:
Ya he probado con una estructura similar a la que tienes y funciona bien (que conste que hasta ahora no has dicho qué es lo que no funciona bien). Lo único que se me ocurre es que no tengas enlazado el DataSource al DataSet o bien que en diseño estés activando el DataSet incorrecto, es decir el del Frame externo y no el del incrustado en el formulario. // Saludos pd: ¿Para qué pones los DataSource y DataSets en un frame? |
Pues lo que no me funciona bien es que me aparece el DBComboBox vacío :(.
Y los pongo en un frame porqué pense que al agregarlos sería como si fuese contenido del form.. pero me equivoqué. |
Pues ya te dije, debe funcionar así.
Asegurate de que en el frame incrustado el DataSety el DataSource sigan enlazados. Si en algún momento los desconectaste en la ejecución seguirán desconectados aun cuando en el frame externo sigan conectados. De cualquier forma sí creo que hay algo un poco errado en el diseño. A menos que el dataset lo utilices solo en un lugar, por lo general será más práctico que coloques tus dataset en un data module y los datasource junto con los controles dbaware. // Saludos |
mmm.¿Estoy a tiempo de moverlo todo a un datamodule? :D. Otra cosa... datamodule no era de BDE?
|
¿Qué base de datos utilizas? Yo estoy utilizando el DataModule con una base de datos mysql. No creo que haya ningún problema.
Saludos. |
Puedes utilizar los datamodulos con cualquier base de datos, yo los utilizo con Access, Firebird, Paradox......
Un Saludo. |
Pues sí. Un DataModule prácticamente no difiere de una unidad plana excepto por proporcionar una superficie para poner componenes no visuales durante el diseño.
// Saludos |
Tema solucionado: Colé ya el datamodule y cambié toda la aplicación con éxito ;).
Muchísimas gracias a todos |
La franja horaria es GMT +2. Ahora son las 17:29:29. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi