Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-05-2013
darkerviti darkerviti is offline
Miembro
NULL
 
Registrado: may 2013
Posts: 14
Poder: 0
darkerviti Va por buen camino
Cita:
Empezado por Al González Ver Mensaje
Gracias por retroalimentar. Hagamos una prueba:

Justo después de ejecutarse la línea "DM.cdsClassNew.Insert;", ¿qué valor hay en el campo IDStudy, y en el campo ID del conjunto de datos maestro? Y justo antes del Post, ¿qué valor hay en el campo IDStudy?

Otra pregunta, ¿usas Filter u OnFilterRecord?

Una más, ¿si sólo haces el Post (sin lo que está después de él), también desaparece el registro?

Por último, ¿seguro que dsStudySel está conectado a cdsStudySel?

Vale, he estado haciendo pruebas, si comento todo lo demás a partir del Post, en el grid se muestra bien, pero no aparece por la bbdd, además, si intento insertar una segunda vez, me da el siguiente error:
Código:
raised exception class EDBClient with message 'Key violation.'
Si después del post sí que hago el ApplyUpdates, inserta en bbdd y muestra en el grid, pero si intentan insertar una segunda vez, suelta el mismo error que antes.
Si meto el refresh, ya no aparece en el grid, inserta bien en bbdd y me deja insertar todas las veces que yo quiera.
En cuanto a los valores que tienen:
- Justo después del insert, el campo idstudy esta vacio y el id del maestro tiene como valor 7.
- Justo antes del post el campo idstudy ya tiene también el valor 7.

No utilizo ni Filter ni OnFilterRecord y sí, dsStudySel está conectado a cdsStudySel, lo he revisado por si las moscas.

Muchas gracias por el interés.
Responder Con Cita
  #2  
Antiguo 13-05-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Asegúrate de que el conjunto de datos que está del lado del proveedor permanece cerrado.

¿Qué campos tienen la bandera pfInKey? Toma en cuenta que debe tener esa bandera activa (de la propiedad ProviderFlags) el campo de llave primaria de todos los conjuntos de datos (sean maestros o detalles), tanto del lado proveedor como del lado cliente. Y, en caso de capturar varios registros en memoria antes de enviarlos al servidor, debes alimentar ese campo (no esperar a que el servidor lo haga). ¿Cómo se llama el campo de llave primaria de la tabla detalle? Los demás campos no deben tener activa esa bandera.

Por otra parte, estando bien todo lo anterior, ya no sería necesaria la sentencia de asignación al campo IDStudy (TClientDataSet lo asignará de forma automática).

Saludos.
Responder Con Cita
  #3  
Antiguo 13-05-2013
darkerviti darkerviti is offline
Miembro
NULL
 
Registrado: may 2013
Posts: 14
Poder: 0
darkerviti Va por buen camino
Cita:
Empezado por Al González Ver Mensaje
Asegúrate de que el conjunto de datos que está del lado del proveedor permanece cerrado.

¿Qué campos tienen la bandera pfInKey? Toma en cuenta que debe tener esa bandera activa (de la propiedad ProviderFlags) el campo de llave primaria de todos los conjuntos de datos (sean maestros o detalles), tanto del lado proveedor como del lado cliente. Y, en caso de capturar varios registros en memoria antes de enviarlos al servidor, debes alimentar ese campo (no esperar a que el servidor lo haga). ¿Cómo se llama el campo de llave primaria de la tabla detalle? Los demás campos no deben tener activa esa bandera.

Por otra parte, estando bien todo lo anterior, ya no sería necesaria la sentencia de asignación al campo IDStudy (TClientDataSet lo asignará de forma automática).

Saludos.
He revisado las banderas y no estaba activa ninguna, he puesto pfInKey activa en las claves primarias tanto del maestro como del detalle y nada.


He hecho la prueba quitando el mastersource y con eso me funciona, la verdad es que no tiene mucho sentido eso, creo yo.
Responder Con Cita
  #4  
Antiguo 13-05-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Si gustas podemos verlo en conferencia por Skype. Tengo entendido que cuenta con "visor" de escritorio remoto. O si gustas haz una "prueba aislada" y anéxala en un mensaje para que los demás podamos mirar de cerca el problema.

Salgo por unas horas, saludos.
Responder Con Cita
  #5  
Antiguo 27-05-2013
darkerviti darkerviti is offline
Miembro
NULL
 
Registrado: may 2013
Posts: 14
Poder: 0
darkerviti Va por buen camino
Cita:
Empezado por Al González Ver Mensaje
Si gustas podemos verlo en conferencia por Skype. Tengo entendido que cuenta con "visor" de escritorio remoto. O si gustas haz una "prueba aislada" y anéxala en un mensaje para que los demás podamos mirar de cerca el problema.

Salgo por unas horas, saludos.
Siento no haber dado señales de vida, pero no he podido ponerme con esto durante estos días.

Retomo el hilo, ¿a qué te refieres con lo de prueba aislada? ¿os mando paso a paso pantallazos o algo así?

Un saludo.
Responder Con Cita
  #6  
Antiguo 27-05-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por darkerviti Ver Mensaje
¿a qué te refieres con lo de prueba aislada?
Un nuevo programa con lo mínimo necesario para reproducir el error en la computadora de quien desee descargarlo para ver de cerca el problema. "Aislando" (separando) el problema de todo lo demás que contenga tu aplicación.

Saludos.
Responder Con Cita
  #7  
Antiguo 29-05-2013
darkerviti darkerviti is offline
Miembro
NULL
 
Registrado: may 2013
Posts: 14
Poder: 0
darkerviti Va por buen camino
Buenos días,

Parece que lo he resuelto a la tremenda, si cierro la conexión a la bbdd y la vuelvo a abrir, todo funciona.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
actualizar base de datos desde dbgrid edgar_prospero Varios 36 31-08-2012 02:27:34
DBGrid. Al actualizar los datos 'No pude encontrar la fila para su actualizacion' juliannemiro Varios 2 02-02-2012 04:30:02
Actualizar datos con TQuery sin mover dbgrid odrack Varios 2 13-02-2009 19:53:03
actualizar datos mediante un dbgrid chass Varios 2 28-07-2008 23:01:59
¿Cómo puedo actualizar en el DBGrid los datos que inserto en la misma sesión? nuri SQL 3 18-07-2005 18:27:19


La franja horaria es GMT +2. Ahora son las 23:06:01.


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