Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-12-2007
Avatar de pablonill
pablonill pablonill is offline
Miembro
 
Registrado: dic 2006
Posts: 92
Poder: 18
pablonill Va por buen camino
tEdit y campos NOT NULL

Hola, les comento lo siguiente tengo una tabla algo así

Código SQL [-]
CREATE TABLE prueba
(id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  detalle VARCHAR(45) NOT NULL, PRIMARY KEY (id)
)


Hasta aquí todo bien, el tema es el siguiente cuando en delphi hago lo siguiente.

Código Delphi [-]
SqlQuery1.Close;
SqlQuery1.SQL.Clear;
SqlQuery1.SQL.Add('INSERT INTO prueba (detalle) VALUES (:Pr1)');
SqlQuery1.ParamByName('Pr1').Value := Edit1.Text;
SqlQuery.ExecSQL;

Todo perfecto, añade el valor peroo, si el Edit esta vacío, lo mismo lo inserta sin crear una excepción porque el campo esta vacío (propiedad NOT NULL), entonces la pregunta es la siguiente, hay alguna forma de que el Edit me devuelva un valor NULL en caso de que este este vacío. (se me ocurren varias soluciones poco ortodoxas, pero quisiera la correcta, no es que sea molesto solo que quisiera hacer la programación SQL en el motor y la interfase en delphi) Espero haber sido claro. Muchas gracias por su tiempo!

P.D: Uso ibexpress y mysql. (Tube el mismo problema con ado y access)

Última edición por pablonill fecha: 01-12-2007 a las 19:13:18.
Responder Con Cita
  #2  
Antiguo 01-12-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
[quote=pablonill;249811]Hola, les comento lo siguiente tengo una tabla algo así
Código Delphi [-]
Código SQL [-]CREATE TABLE prueba
(id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  detalle VARCHAR(45) NOT NULL, PRIMARY KEY (id)
)



Hasta aquí todo bien, el tema es el siguiente cuando en delphi hago lo siguiente.

Código Delphi [-]SqlQuery1.Close;
SqlQuery1.SQL.Clear;
SqlQuery1.SQL.Add('INSERT INTO prueba (detalle) VALUES (:Pr1)');
SqlQuery1.ParamByName('Pr1').Value := Trim(Edit1.Text);
SqlQuery.ExecSQL;
Has probado la opción que subrayo?

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 02-12-2007
Avatar de pablonill
pablonill pablonill is offline
Miembro
 
Registrado: dic 2006
Posts: 92
Poder: 18
pablonill Va por buen camino
Si, ya lo probe y sigue con lo mismo, yo sigo averiguando y cualquier cosa aviso. Muchas gracias.
Responder Con Cita
  #4  
Antiguo 02-12-2007
Avatar de pablonill
pablonill pablonill is offline
Miembro
 
Registrado: dic 2006
Posts: 92
Poder: 18
pablonill Va por buen camino
Espero que le pueda servir para alguien

Bueno, estuve investigando y esto es lo mas fino que pude lograr.

Código Delphi [-]
function EsVacio(Cadena: string): variant;
begin
  if Trim(Cadena)='' then
    EsVacio := NULL
  else
    EsVacio := Cadena;
end;

y lo llamo asi

Código Delphi [-]
SqlQuery1.Close;
  SqlQuery1.SQL.Clear;
  SqlQuery1.SQL.Add('INSERT INTO Temp (Detalle)  VALUES (:Pr1)');
  SqlQuery1.ParamByName('Pr1').Value := EsVacio(Edit1.Text);
  SqlQuery1.ExecSQL();

Gracias por su tiempo y espero que esto le pueda servir para alguien.
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
Consulta con campos devueltos NULL FGarcia Tablas planas 4 10-09-2007 23:46:12
FOR XML + SQL SERVER 200 y campos con valor null Enan0 SQL 2 07-08-2007 00:45:55
Campos null. Asignación jlrbotella Conexión con bases de datos 3 23-03-2007 16:26:27
Campos Not null de MSQL emeritos SQL 6 13-01-2007 08:29:02
Unir contenido de campos omitiendo los null el-otro SQL 2 28-09-2004 08:39:23


La franja horaria es GMT +2. Ahora son las 00:26:07.


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