Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-08-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
Hola.

Esto me ha ocurrido cuando la consulta de la que se reciben los datos, tiene una subconsulta. El Parser de la sentencia no es muy inteligente, y considera la primera tabla que encuentra, como la tabla a modificar.

En todo caso la solución es sencilla. En el evento OnGetTableName del TDatasetProvider, indícale cual es la tabla a utilizar para modificar los registros.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #2  
Antiguo 03-08-2004
Jordy Jordy is offline
Miembro
 
Registrado: may 2003
Posts: 51
Poder: 24
Jordy Va por buen camino
Unhappy

Hola guillotmarc,

Primero muchas grácias por contestarme.
He probado lo que me has dicho y me da el mismo error. Lo que he hecho es lo siguiente:

He ido al TDatasetProvider y he hecho doble click sobre el evento OnGetTableName y he escrito. TableName := 'Nombre de la tabla';

y me da el mismo error

Project Project1.exe raised exception class EDatabaseError with message 'Table unknow nombre de la tabla at line 1, column 17.

y si le doy a F9

Project Project1.exe raised exception class EDatabaseError with message 'Unable to find record. No key specified'. Process stoped.

No sé sí hago algo mal.

Jordy.
Responder Con Cita
  #3  
Antiguo 03-08-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
Hola.

Respecto al primer problema, verifica el nombre de la tabla, sobre todo el tema de mayúsculas/minúsculas. (En Interbase, por ejemplo, para indicar una tabla con carácteres en minúsuclas, hay que entrecerrar su nombre con dobles comillas).

Respecto al problema de Unable to find record, es debido a que no es capaz de detectar el registro a modificar, debido a que no se ha indicado cual es el campo de clave primaria. Para indicarlo, vé a los campos persistentes del TSQLQuery (no del TClientDataset), y en el campo correspondiente a la clave primaria, actívale el flag pfInKey en su propiedad ProviderFlags.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #4  
Antiguo 03-08-2004
Jordy Jordy is offline
Miembro
 
Registrado: may 2003
Posts: 51
Poder: 24
Jordy Va por buen camino
Wink

Muchas grácias Gillotmarc.
Ya que me funciona perfectamente de la siguiente manera.
Yo en Firebird tengo el nombre de la tabla todo en mayusculas, pues he hecho lo qhe tú me has dicho de modificar el nombre de la tabla (antes lo tenía con la primera letra y el resto en minusculas) a mayusculas y todo OK.
En cuanta al segundo problema ha desaparecido.

Muchas Gracias.

Jordy.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 20:07:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi