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 23-06-2008
Edgtho Edgtho is offline
Miembro
 
Registrado: abr 2006
Posts: 47
Poder: 0
Edgtho Va por buen camino
Error Field Value Required

Buenas,

Estoy intentando introducir un valor desde un clientdataset a una tabla y me da el error "field Value Required" no se que mas tocar, el caso es que siempre me da el mismo error.

No puedo usar campos persistentes ya que la tabla se enlaca en runtime. La tabla de destino esta en Mysql y tiene dos campos como clave primaria. El caso es que en la tabla origen me puedo encontrar facilmente datos en los que solo tengan el primer campo con valor mientras que el segundo este en blanco (no nulo, en blanco).

Cuando intento copiar el registro desde delphi me da el error "field value has required". Recorriendo los campos y poniendo required=false sigue dandome el mismo error. Igualando el "EmtpyStr", solo parece ir cuando le meto un caracter de espacio " " pero entonces al hacer el applyupdates me salta el error "reader has no more rows".


Por si sirve de informacion, utilizo Delphi2007


un saludo
__________________
Dios es real a menos que sea declarado entero
Responder Con Cita
  #2  
Antiguo 23-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola,

probablemente en el diseño de la tabla en la base de datos sea donde aparece que son requeridos, por lo que la deberias modificar con el alter table y no con el required = true. Ahora bien, dos claves primarias en una tabla es algo un poco incongruente, pues lo bueno de la clave primaria es que sea unica. Otro detalle, nulo es para indicar precisamente que un campo esta en blanco ('', nil, char(#0), 'is NULL', etc..)

Espero haberte ayudado o dado alguna pista de como solucionarlo.

saludos.

Última edición por coso fecha: 23-06-2008 a las 16:14:28.
Responder Con Cita
  #3  
Antiguo 23-06-2008
Edgtho Edgtho is offline
Miembro
 
Registrado: abr 2006
Posts: 47
Poder: 0
Edgtho Va por buen camino
No es incongruente si es por ejemplo si es una tabla de articulos que tenga "Codigo;clase" como clave, o por ejemplo Albaran(codigo) y Lineas de albaran(codigo,linea).

El problema no esta en el diseño de la tabla, si no en el clientdataset. En lo que delphi manda. Por lo del alter table me parece que en realidad has entendido mal mi pregunta. Yo indique que haciendo una consulta no pasaba nada sino que era a traves del clientdataset cuando existia el problema.

Al final he encontrado la respuesta:

Si tenemos un clientdataset ( sqlconnection -> query -> provider -> clientdataset) al abrirlo este trae las definiciones de campos, pues los campos que son la clave primaria se marcan primero como REQUERIDOS, este valor se puede quitar (required=false) pero el problema principal es cuando el tipo de campos es ademas STRING.

Los Tfields del clientdataset de tipo string (TStringfield) tiene una propiedad llamada TRANSLITERATE. Si pasamos '', nil, char(#0) o cualquier derivado saltara el fallo "Field value required" o "reader has no more rows" si quitamos TRANSLITERATE e insertamos un valor ' ' no tenemos el problema y el campo se inserta (notese que hay un espacio en blanco).

Despues hay que hacer una chapucilla mandando un update table para eliminar dichos espacios en blanco sobre ese campo, que al efectuarse en el lado del servidor no hay problema entonces.

Esto me parece que es un problema de Delphi2007 con los clientdataset, me falta comprobar si falla tambien en Delphi7.
__________________
Dios es real a menos que sea declarado entero
Responder Con Cita
  #4  
Antiguo 23-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
bueno, me alegro q igualmente lo hayas resuelto

saludos
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
[Fatal Error] Required package 'EverButton' not found belpab Varios 3 14-12-2007 20:54:04
Error con Firebird y DBGrid: Ambiguous field name between..... Cannabis Firebird e Interbase 2 18-09-2007 03:20:12
[Fatal Error] Required package 'FreeRep6' not found yoyo12 Impresión 3 04-05-2007 14:29:44
Traducción del mensaje "Field value required" menfis Conexión con bases de datos 1 18-02-2005 11:43:03
[Fatal Error]Required package 'dcloffice2... Albis API de Windows 3 17-01-2004 19:34:55


La franja horaria es GMT +2. Ahora son las 00:29:50.


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