Power Builder - error de mysql

 
Vista:

error de mysql

Publicado por luiss (90 intervenciones) el 13/07/2006 01:00:38
hola gente, tengo un problema, tengo este codigo:

SELECT t_pago.t_pago
INTO :ls_tpago1
FROM t_pago
where (t_pago = :ls_tpago);

if ((ls_tpago = 'NULL') OR ls_tpago='') )THEN
Messagebox ("Dato no valido", "El dato que desea ingresar no es valido...", StopSign!, OK!)
end if

el campo t_pago es obligatorio, y lo que hago es erificar que no se ingrese nada nulo, pero la cosa es que al ingresar un espacio me lo guarda, y si no ingreso nada me sale el error SQLSTATE S1000 (siciendo que el campo no puede ser nulo), el cartelito del if ni me sale
tengo: powerbuilder version 10.2.1 built 9537 y mysql odbc 3.51

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:error de mysql

Publicado por Andres (331 intervenciones) el 13/07/2006 01:47:13
Luis

Tienes que repara el codigo, primero colaca este scrip

if isnull(ls_tpago) or ls_tpago=''))THEN
Messagebox ("Dato no valido", "El dato que desea ingresar no es valido...", StopSign!, OK!)

>>> RETURN

end if

Despues el select

Atte Andres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:error de mysql

Publicado por luiss (90 intervenciones) el 13/07/2006 01:54:50
probe asi y no me anduvo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:error de mysql

Publicado por Gabriel (20 intervenciones) el 13/07/2006 15:45:59
Buenas luiss, primero que nada, veo que hay una variable que se llama distinto que por la que estas preguntando (me imagino que es un error de tipeo cuando planteastes el problema acá. Una se llama "ls_tpago1" y la otra "ls_tpago").
Para que no te agreguen espacios hace lo siguiente ni nulos usa el siguiente código:

IF isnull(ls_tpago) = TRUE or trim(ls_tpago) = '' then
Messagebox ("Dato no valido", "El dato que desea ingresar no es valido...", StopSign!, OK!)
END IF

En el código que pusistes estas preguntando si la variable contiene la palabra "NULL". Tenés que usar la función isnull(). Por el tema de los espacion uso la función trim() que me devuelve una cadena sin espacion, si esa cadena es vacia es por que no lo cargaron o le pusieron espacios solamente.
Espero te sirva, saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antonio
Val: 176
Bronce
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:error de mysql

Publicado por Antonio (1271 intervenciones) el 14/07/2006 22:30:46
Hola Luiss:

Mira, entra al Painter de tu datawindow y posesionate en el campo que deseas que siempre lleve datos, dale clic derecho para entrar a las propiedades del campo y selecciona la ceja de "Edit", ahi busca la opción de "Empty string is null" y activala, guarda tu datawindow y prueba con eso, si aun asi no puedes atorar el proceso, entonces en tu datawindow en el evento de "Itemchanged" escribe éste código:

String ls_data

if dow.name = 'nombre_campo" then
ls_data = Trim ( data )
if IsNull ( ls_data ) then ls_data = ''
if ls_data = '' then
MessageBox('¡ Aviso !','Indica el valor...',Information! )
return 1
end if
end if

Espero te sirva amigo y suerte....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar