Domingo 22 de Diciembre de 2024, 07:51
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Power Builder
(Moderador:
F_Tanori
) »
Ayuda Con Validacion!!
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Ayuda Con Validacion!! (Leído 3586 veces)
girl18
Nuevo Miembro
Mensajes: 7
Ayuda Con Validacion!!
«
en:
Miércoles 28 de Junio de 2006, 19:44 »
0
Hola les escribo para ver si alguien me puede ayudar, con un problema tengo, lo quiero hacer es lo siguiente: tengo una tabla llamada equipos y esta tabla tiene varios campos entre los cuales hay uno llamado marbete, y lo que yo quiero es que cuando el usuario vaya a ingresar un nuevo marbete , es sistema no le permita ingresar un numero de marbete si este ya existe, es decir quiero antes de guardarlo, me compare el dato introducido con los existentes en la base de datos para ese campo. Espero me pudan ayudar, ya que estoy empezando a utilizar esta herramienta, y no c como hacer esto....
Tweet
jc_investigador07
Miembro activo
Mensajes: 34
Re: Ayuda Con Validacion!!
«
Respuesta #1 en:
Miércoles 28 de Junio de 2006, 20:36 »
0
hola que tal. quizas esto porcion de codigo te ayude en tu problema, primero el dato que deseas comparar lo almacenas en una variable, aca de muestro mas o menos como seria la lógica:
variable = <dato_comparar>
select <campo> into :variable from <tabla> where <campo>=:variable;
if sqlca.sqlcode=0 then
//dato encontrado
else
//dato no encontrado
end if
Me respondes si te salio. bye
pierpiter
Miembro activo
Mensajes: 58
Re: Ayuda Con Validacion!!
«
Respuesta #2 en:
Jueves 29 de Junio de 2006, 21:02 »
0
Te agrego una descripción más sobre el sqlca.
El SQLCA es un objeto que se usa en la transacción, me imagino que algo ya sabrás de esto.
El SQLCode es una propiedad del objeto SQLCA que te devuelve el número de error después de la ejecución de una sentencia. Los números de error más comunes son:
0 Se ejecutó correctamente.
100 Cuando no se encuentra el registro.
-1 Cuando hay algún error en la sentencia.
Por ese motivo en el ejemplo pregunta por el valor de esta propiedad (si es 0, es porque encontro el registro, si es distinta de 0 es que no lo encontró).
Hilando fino, puede que haya algún error en la sentencia o que quieras comparar valores que no corresponden (por ejemplo, un dato string con un campo númerico en la base de datos) en este caso te estaría devolviendo el código de error -1 pero aparecería como que no lo encontró, cuando en realidad hay un error en la sentencia, no quiere decir que el dato no exista.
también podés usar otra propiedad de este objeto (SQLCA) para ver una descripción del error producido (la propiedad SQLErrText), acá un ejemplo:
Código: Text
IF SQLCA.SQLCode = -1 THEN
MessageBox("SQL error", SQLCA.SQLErrText)
END IF
Bueno, espero haber aportado algo a tus comienzos, cualquier duda, consulta que en el foro seguro te responden, saludos.
leoandres
Miembro activo
Mensajes: 79
Re: Ayuda Con Validacion!!
«
Respuesta #3 en:
Viernes 30 de Junio de 2006, 23:56 »
0
Saludos...
Tienes que programar el evento itemchanged para hacer la búsqueda que te sugieren por el select...
//Evento itemchanged
// asumo que marbete es un string es el nombre del campo en el datawindow...
CHOOSE CASE 'MARBETE'
string sl_dato, sl_dato1
sl_dato=this.Getitemstring(this.getRow(),'marbete')
SetNull(sl_dato1)
select marbete into :sl_dato1 from tabla where marbete = :sl_dato;
IF sl_dato=sl_dato1 THEN
MessageBox('Error!','Marbete ya existe!')
END IF
leopoldotaylhardat@hotmail.com
Leopoldo Taylhardat
Software, Organización y Sistemas
Maracay, Venezuela
"En computación solo hay una cosa segura...
que no hay nada seguro" - Leopoldo Taylhardat
"Cada alternativa que tengas durante la búsqueda,
será una meta en sí misma" - Jorge Olguín.
leoandres
Miembro activo
Mensajes: 79
Re: Ayuda Con Validacion!!
«
Respuesta #4 en:
Viernes 30 de Junio de 2006, 23:59 »
0
Disculpa... utiliza en vez de sl_dato=this.getItemstring(this.getRow(),'marbete') lo siguiente...
sl_dato=data
donde "data· es el valor almacenado temporalmente para los procesos internos del datawindow...
leopoldotaylhardat@hotmail.com
Leopoldo Taylhardat
Software, Organización y Sistemas
Maracay, Venezuela
"En computación solo hay una cosa segura...
que no hay nada seguro" - Leopoldo Taylhardat
"Cada alternativa que tengas durante la búsqueda,
será una meta en sí misma" - Jorge Olguín.
k8bis
Nuevo Miembro
Mensajes: 15
Re: Ayuda Con Validacion!!
«
Respuesta #5 en:
Miércoles 5 de Julio de 2006, 01:44 »
0
algo mas especifico de lo que quiso decir leo creo que fue algo asi
Long ll_res
Integer li_marbete
li_marbete = Integer(data)
Choose case dwo.name
Case "marbete"
select count(1)
into :ll_res
from equipos
where marbete = :li_marbete using SQLCA;
If ll_res > 0 Then
MessageBox("Aviso","El marbete " + data + " ya existe. Verifique!")
REturn 1
End If
End Choose
ramz
Nuevo Miembro
Mensajes: 14
Re: Ayuda Con Validacion!!
«
Respuesta #6 en:
Miércoles 5 de Julio de 2006, 14:53 »
0
Buen dia a todos, les hago una anotacion ojo con las sentencias SQL que tienen incluidas funciones de count, max, min, avg; pues si las tablas no estan indexadas o mantenidas en el indice puede demorarse un poco mas en el poceso de busqueda. Esto me ocurrio con una base de datos informix, esto es bueno hacerlo para tabla que no tendran crecimientos altos en el almacenamiento de datos.
Otro consejito mi querida girl18 cuando programes en PB seria mejor utilizar directamente los parametros de cada evento que te da Power Builder, es decir, no crear variables innecesarias si Power las da, esto es menos codgio, menos esfuerzo en la maquina, mas rapidez, mas simplicidad en los procesos.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Power Builder
(Moderador:
F_Tanori
) »
Ayuda Con Validacion!!