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 !!! |
¿Cuál es la sentencia SQL que estás usando y cuál es el texto del error que te genera?
// Saludos |
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 |
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. |
Marcos, creo que no es correcto esto que dices. Si hace un COUNT, siempre regresará un registro, aun cuando su valor sea cero.
// Saludos |
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'); |
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 |
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 :confused: |
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'); |
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. |
La franja horaria es GMT +2. Ahora son las 10:31:51. |
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