Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   validar datos contra un valor de una tabla (https://www.clubdelphi.com/foros/showthread.php?t=43977)

robertillo 25-05-2007 07:17:14

validar datos contra un valor de una tabla
 
Hola;

Actualmente estoy programando en Delphi una aplicación pequeña - este foro es un tesoro para aprender (gracias) - mi duda va en que quiero validar un dato (código) que se pone en un TEdit y me indique si ese valor esta o no en la base de datos por medio de una bandera o mensaje ej:

si pongo 01 y ese valor esta en la tabla, me muestre un mensaje de que existe, sino me muestra uno de que no esté o algo así.

Estoy haciendo algo como esto pero no se si me estoy complicando más de lo debido


Código Delphi [-]
procedure validarVehiculo (xValor: string; var xValidado: boolean);
var     
DatosRegistro: TClientDataSet;    
xSQL: string;
begin
xSQL:= 'select v.cod_vehiculo '
        +'from vehiculo v, empresa e '
        +'where v.id_empresa = e.id_empresa '
        +'and v.cod_vehiculo =' + xValor + ' order by id_ruta_lugar'; //aqui no estoy muy seguro        
        +'order by cod_vehiculo ';
 
 with DatosRegistro do begin   
  if not (RecordCount = 0) then begin  
 
 //...codigo   
 //...asumo que por aqui tengo que hacer una validación tipo
 
 if xValor = fieldByname('cod_vehiculo')
 if Edit1.Text = xValor then
    xValidado:= true
  else 
   xValidado:= False;
end;




uso como motor de BD: interbase
Alguien me puede guiar un pco o si tienen una idea mejor :confused: . Saludos

Lepe 25-05-2007 11:08:31

En este aspecto Firebird es igual a Interbase, puedes leer este mensaje en concreto. En concreto la última parte del mensaje es la que se refiere a tu caso concreto, pero también puede valerte el resto.

Saludos

Neftali [Germán.Estévez] 25-05-2007 11:18:28

Cita:

Empezado por robertillo
//...asumo que por aqui tengo que hacer una validación tipo

Código Delphi [-]
 if xValor = fieldByname('cod_vehiculo')
 if Edit1.Text = xValor then

Una vez que accedes al campo con FieldByName, te falta decir cómo quieres recoger el dato...

Código Delphi [-]
  if (xValor = FieldByName('Cod_vehiculo').AsString) ...

Kenobi 25-05-2007 17:01:46

tengo dos inquietudes en torno a este tema.....
 
Hola amigos, aca van mis inquietudes ....

Código SQL [-]
xSQL:= 'select v.cod_vehiculo '
+'from vehiculo v, empresa e '
+'where v.id_empresa = e.id_empresa '
+'and v.cod_vehiculo =' + xValor + ' order by id_ruta_lugar'; //aqui no estoy muy seguro 
+'order by cod_vehiculo ';

1.- porque usar una instruccion sql si podrias usar locate.....

digo yo la instruccion locate es mas sencilla y segun entiendo la idea es tener la menor cantidad de codigo posible, por aquello del futuro mantenimiento......

2.- de esto no estoy muy seguro pero creo que esta instruccion no es muy segura....

Código SQL [-]
if not (RecordCount = 0) then

de donde lo saque esto de que no es muy segura, no lo recuerdo y alli esta mi inquietud ...

segun entiendo el modo mas "seguro" para reemplazar dicha instruccion es asi..

Código SQL [-]
if not tabla.eof then

en todo caso es mi humilde aporte, y si estoy equivocado, please haganmelo saber,.....

Lepe 25-05-2007 17:32:46

Cita:

Empezado por Lepe
En este aspecto Firebird es igual a Interbase, puedes leer este mensaje en concreto. En concreto la última parte del mensaje es la que se refiere a tu caso concreto, pero también puede valerte el resto.

Saludos

Pero en concreto, este mensaje mio es demasiado concreto. :D :D


PD: Juer que espeso estaba :D (asias jhonny)

jachguate 25-05-2007 18:58:15

He editado el mensaje original de robertillo para encerrar el código en la etiqueta [delphi], de manera que él pueda editarlo y ver la forma de usarla. Además, en mi firma, están los vínculos a la ayuda de la etiqueta [code] que se usa de la misma manera.

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 00:58:39.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi