![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Comprueba si tienes abierto algún dataset del formulario en tiempo de diseño. Antes del create propiamente dicho se ejecuta la carga de componentes del formulario, y tiene toda la pinta de que uno de los componentes necesita conectarse a la base de datos mientras se está creando.
Un saludo |
|
#2
|
||||
|
||||
|
Hola Javier.
El mensaje de error que señalas aparece cuando el conjunto de datos SQLDataSet necesita realizar algo a través del objeto TSQLConnection, pero éste no se encuentra asignado en la propiedad SQLConnection. Es como si el segundo formulario causara que la propiedad SQLConnection de una de las consultas se perdiera. Por otra parte, no es buena idea dejar en tiempo de diseño la propiedad Active de los conjuntos de datos en True. Sino, abrirlos en tiempo de ejecución conforme los procesos y formularios de la aplicación los necesiten. En cuanto a poder ver el camino que siguió el programa hasta llegar al punto de ruptura, usa la ventana de pila de llamadas (call stack), pero compilando primero la aplicación con la opción Use Debug DCUs de las opciones del proyecto. Algunas preguntas: ¿Estás creando y destruyendo módulos de datos en tiempo de ejecución o solamente formularios? ¿Todos los componentes de acceso a datos están en los módulos de datos o algunos están en formularios? ¿Existen componentes TSQLDataSet que no estén en el mismo módulo de datos que el componente TSQLConnection? ¿Usas herencia visual? (plantillas de formularios) Me voy a dormir, pero por la mañana americana regresaré a echar otro vistazo. ![]() |
|
#3
|
||||||||
|
||||||||
|
Gracias a todos por responder.
Intentaré explicar con más detalle la batería de preguntas que me haceis. Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Seguiré investigando e intentaré retroalimentar los avances o la solución. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#4
|
||||
|
||||
|
Esto es un poltergueist o como demonios se escriba
![]() Si comento la apertura de un SQLDataset + clientDataset concreto, no me da el error. Si lo descomento, me da. Insisto, es cuando abro primero un módulo y luego el otro. Si lo hago en orden inverso, funciona. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#5
|
||||
|
||||
|
Bueno, haciendo diferentes pruebas he conseguido llegar a que no me casque y funcione como debe hacerlo.
No sé porqué extraña razón, hasta el momento, un servidor de Uds. para hacer dos datasets maestro detalle, los hacía un poco a manija. ( Por favor no os riais ). Qué quiere decir esto: que tengo un maestro, y en su evento OndataChange, por cada tabla detalle, cierro el dataset, doy valor al parámetro, y vuelvo a abrirlo. Hasta ahora siempre me ha funcionado, hasta éste el caso que nos ocupa. Finalmente, una vez identificado el dataset que me provocaba el error ( que por cierto sigo sin saber porqué fallaba ) , he cambiado la manera de relacionarlo con el dataset maestro, y he utilizado las propiedades de ClientDataset, MasterSource y MasterFields, abriéndolo al crear el formulario y quitando del evento OnDataChange del maestro la apertura del mismo. No sé si ha sido un aviso de Delphi del tipo "no seas tan burro" o algo similar, pero como os contaba, hasta ahora NUNCA ME HABIA PASADO. Espero que le sirva a alguien la respuesta, al menos a los que os habeis interesado para saber que está resuelto el problema Gracias a todos PD: Al, la invitación sigue en pie
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#6
|
|||
|
|||
|
ayuda
buenas hola ha todos
miren tengo que hacer un programa que elimine registros y el codigo lo tengo asi cd.query1.close; cd.query1.SQL.add('delete*from clilentes'); cd.query1.SQL.add('where id_cliente=:id'); cd.query1.Params[0].AsInteger:=strtoint(edit1.Text); cd.query1.Prepare; cd.query1.UnPrepare; cd.query1.ExecSQL; y pos si me elimina pero cuando quiero eliminar por segunda ves me marca error quiero que me elimine cuantos quiera |
|
#7
|
||||
|
||||
|
Cita:
![]() En tu caso, tu duda que tienes no tiene nada que ver con el tema que se estaba tratando, en otras palabras para cada duda o problema diferentes debes abrir un nuevo tema(Hilo), de ahí que es importante leer la Guía de Estilo., sin olvidar que tambien antes de postear puedes hacer una busqueda con el buscador del Club ![]() Saludos y muchas gracias por tu comprensión ![]()
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7 |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| dbExpress - ClientDataSets anidados | PabloZZZ | Conexión con bases de datos | 4 | 13-10-2010 22:58:29 |
| ClientDataSets y Firebird | Walterdf | Conexión con bases de datos | 19 | 27-08-2010 20:41:31 |
| dbexpress Error: unknown error Code '101' | raorre | Conexión con bases de datos | 3 | 13-10-2008 07:53:49 |
| ClientDataSets- Personalizar errores | rochi | Conexión con bases de datos | 0 | 03-05-2008 06:47:52 |
| Clientdatasets anidados con ADO | Johnny Q | Conexión con bases de datos | 4 | 03-11-2005 02:53:25 |
|