FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
validacion de clave
Saludos a todos y gracias por su ayuda de antemano.
mi problema es que he estado tratando de hacer una funcion por medio de la cual valide cuando quiero agregar un registro a mi tabla si la clave que estoy ingresando ya existe y entonces me regrese un valor indicando esto pues de otra manera me manda un mensaje de error bien raro generado por el sql de que la clave que estoy ingresando ya existe. No se si alguien me pudiera ayudar con esta funcion, la clave la ingreso a un edit y cuando doy click en el boton guardar es cuando debe de decir si la clave existe o no. Gracias !!!
__________________
--------------------------------- ********** ASAPH ********** ---------------------------------
Última edición por samuelabad fecha: 05-11-2005 a las 22:34:31. |
#2
|
||||
|
||||
¿Cuál es la sentencia SQL que estás usando y cuál es el texto del error que te genera?
// Saludos |
#3
|
|||
|
|||
Esta es mi Sentencia
ADOModulo.ADOQuery1.SQL.Clear;
ADOModulo.ADOQuery1.SQL.Add('Select clave_mpo from municipios where clave_mpo= (edit1.text)'); i:=ADOModulo.ADOQuery1.sql.rowsaffected; No me deja ni compilarla me dice que no reconoce rowsaffected, Uso Delphi 7
__________________
--------------------------------- ********** ASAPH ********** ---------------------------------
|
#4
|
||||
|
||||
Pues yo utilizaría un simple Count, con la condición que pones y si devuelve registros es que ya existe el registro.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#5
|
||||
|
||||
Marcos, creo que no es correcto esto que dices. Si hace un COUNT, siempre regresará un registro, aun cuando su valor sea cero.
// Saludos |
#6
|
|||
|
|||
Codigo
Intente con esto pero aun asi me manda error del sql cuando agrego una clave ya ingresada, osea no me valida todabia
i:=0; ADOModulo.ADOQuery1.SQL.Clear; ADOModulo.ADOQuery1.SQL.text:=('Select clave_mpo from municipios where clave_mpo=:cl'); ADOModulo.ADOQuery1.ExecSQL; i:=ADOModulo.ADOQuery1.rowsaffected; if i=0 then ShowMessage('La clave es Valida') else ShowMessage('La clave es Invalida');
__________________
--------------------------------- ********** ASAPH ********** ---------------------------------
|
#7
|
||||
|
||||
RowsAffected te devuelve el número de registros afectados (modificados o borrados). Tú estás seleccionando registros, no afectándolos en forma alguna. De ahí que no te funcione.
// Saludos |
#8
|
||||
|
||||
Saludos
Bueno, he hecho una prueba con IBx y Firebird, y RowsAffected me devuelve un valor con Select. No se si Con Ado sea diferente
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#9
|
|||
|
|||
Porque no intentas:
ADOModulo.ADOQuery1.SQL.Clear; ADOModulo.ADOQuery1.SQL.text:=('Select clave_mpo from municipios where clave_mpo=:cl'); ADOModulo.ADOQuery1.ExecSQL; If ADOModulo.AdoQuery1.IsEmpty then ShowMessage('La clave es Valida') else ShowMessage('La clave es Invalida'); |
#10
|
||||
|
||||
Hola Román, tienes razón en tu afirmación, pero lo que yo progongo funciona:
Me estoy refiriendo no al número de registros devueltos, que como muy bien dices como mínimo sería uno, sino a la cuenta que si que arrojará 0 cuando no exista ningún registro que cumpla la condición. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
|
|
|