Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-06-2004
uper uper is offline
Miembro
 
Registrado: abr 2004
Posts: 296
Poder: 21
uper Va por buen camino
Me da un error al dejar en blanco un campo en interbase

Hola todos,
disculpen una pregunta acerca de las inserciones en interbase 6.0, no lo habia notado, tengo un campo llamado Tel_cel, es decir que anteriorme se tomaba el mismo telefono de casa para capturalo en Tel_cel (telefono celular).

Mi consulta es la siguiente select Id_user, nom, tel, tel_cel) from usuarios (Por decir estos campos...) pero ahora hay algunas personas que si tienen telefono celular y otras no, en mi tabla de usuarios los campo tel, y tel_cel son varchar(18) y son null que puedo dejar en blanco al hacer las inserciones.

Resulta que al agregar un registo nuevo y dejo el campo tel_cel en blanco me da un error que dice que el valor de tel_cel debe ser llenado...
entonces se queda trabada y me saca del programa por lo tanto lo que habia capturado no se graba, tengo los componetes Ibx y para actualizar los datos uso los componentes IbDataset, Ibtransacction, Ibsql ya programada en la propiedad insertsql del ibdataset algo como esto :
Insert Into usuarios (Id_user, nom, tel, tel_cel) value (:Id_user, :nom, :tel, :tel_cel)
En el Ibsql en la propiedad SQL algo como esto: Select max(id ) Next From usuarios
Y por ultimo en el evento Onnewrecord escribo algo asi:

with IBSQL1 do
begin
ExecQuery;
ibdatasetId.Value := fieldByName('Next').AsInteger + 1;
Close;
end;

Y en donde se coloca las lineas de confirmar los cambios CommitRetaining, RollbackRetaining lo que se denomina transsacciones


Les agradeceria si me puedieran darme alguna solucion.
Responder Con Cita
  #2  
Antiguo 11-06-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Mira yo pienso que tienes el campo validado para que no quede en nulo si es asi cuando crees las tablas quitale la validacion
Cita:
check not null
al campo telefono celular
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #3  
Antiguo 16-06-2004
uper uper is offline
Miembro
 
Registrado: abr 2004
Posts: 296
Poder: 21
uper Va por buen camino
ok voy a revisar...

ok, eduarcol pero esto es referente a que cada campo tenga lo denominado Not null.
Por que para este campo solo lo defino como
Tel_celular varchar(15) y listo

Y cada vez que dejo en blanco este campo al ingresar un registro me arroja un error y me pide que sea evaluado.

espero que me des otra idea
gracias
Responder Con Cita
  #4  
Antiguo 17-06-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Otra idea que se me ocurre es que el componente TField tenga la opcion de requiredfield como true

Solo si cargas los TField en el TDataSet
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #5  
Antiguo 17-06-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Para determinar si el problema está en el cliente o en el servidor, podes intentar insertar un registro con este campo a null desde isql. Si alli rebota, hay algo en el servidor que espera que tenga un valor.

Si allí pasa bien, entonces el problema está en tu programa de delphi.

En cualquiera de los dos casos es extremadamente útil conocer el mensaje exacto de error (incluyendo códigos y clases de excepciones) que están involucrados.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 19-06-2004
uper uper is offline
Miembro
 
Registrado: abr 2004
Posts: 296
Poder: 21
uper Va por buen camino
voy a verificar este mensaje de error . . .

Ok, saludos a todos.
Gracias eduarcol por esta idea voy a intentarlo con esta propiedad del Ibdatset.
Y como dice jachguate voy apuntar el mensaje que me arroja al hacer inserciones de datos,
Confirmare que sucede desde el lado del servidor interbase.
Y comentare acerca de lo sucedido.

Saludos y gracias
Responder Con Cita
  #7  
Antiguo 23-06-2004
uper uper is offline
Miembro
 
Registrado: abr 2004
Posts: 296
Poder: 21
uper Va por buen camino
Hola, a todos, disculpen ustedes con respecto a este problemita que me arroja un error desde el programa es el siguiente:

error
Project sistem.exe raised exception class EDatabaseerror with message 'Field Tel_cel' must have a value; process stoped use or Run to continue.

Esto sucede cuando inserto registros y dejo alguno vacio, de acuerdo a lo que mencionaba jachguate que si venia del lado del servidor, pues comento, que hice unas inserciones directamente como esta Insert Into usuarios (Id_user, nom, tel, tel_cel) value (5, 'Juan Carl','58-854-85' ,'') como ve deje el ultimo campo vacio y me lo acepto y se agrego a la tabla, entonces es del lado del cliente, como mencionaba eduarcol en cada uno de los componente TField por parte del Ibdataset seleccione los campos y le asigne requiredfield como false y pude agregar registros con datos vacios como es el caso del campo tel_cel.

Sin encambio cuando se desee tener campos que se deban llenar forzamente como lo es nombre_user por decirlo se puede hacer desde el evento del campo Onvalidate sin importar como esta definido el tipo de campo desde la
Tabla, si es caracter if campo is null then un showmensaje('falta dato a evaluar'), para números y fechas seria el mismo codigo a seguir ?

Saludos y gracias
Responder Con Cita
  #8  
Antiguo 23-06-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

Hola.

La verdad tu explicación está bastante enredada.. y creo que estas confundiendo algunas cosas.

En primer lugar, una cadena vacia es distinto de NULL.

De manera que si has puesto restricciones Not Null a algunos campos, estos SI te aceptarán cadenas vacias, pero no valores NULL.

probá la sentencia:

Código SQL [-]
Insert Into usuarios (Id_user, nom, tel, tel_cel) 
values (5, 'Juan Carl','58-854-85' ,NULL)
.

El mensaje de error que mencionas

Cita:
Empezado por uper
me arroja un error desde el programa es el siguiente:
error
Project sistem.exe raised exception class EDatabaseerror with message 'Field Tel_cel' must have a value; process stoped use or Run to continue.
No viene del servidor, sino precisamente de que has dejado Required a True para el campo Tel_Cel.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #9  
Antiguo 24-06-2004
uper uper is offline
Miembro
 
Registrado: abr 2004
Posts: 296
Poder: 21
uper Va por buen camino
hola,
ok, gracias jachguate pero el mensaje que me arroja es de la aplicación, como lo mencione, y los campos de la tabla los defini como null, pero encontre la solucion con la propiedad Requiered a false del TField en el TDataSet.

les agradesco mucho.
Muchas gracias.
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 17:25:33.


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