Hola, tengo una duda sobre usar Locate y Select, he buscado en varios post y según lo que he leido Locate funciona en modo local, es decir si traigo los datos de la tabla a la terminal pero si uso una instrucción Select, si el registro existe me lo muestra sin problema pero si no existe como retorna el valor de "no encontrado" o "False" para tomarlo como lo hace Locate?
Uso Firebird 2.5 con IBX
Ejemplo Locate :
Código Delphi
[-]
Var
R_es: Boolean;
begin
C_od := FBuscodi.Edit1.Text;
if C_od = '' then
begin
MessageDlg('! NO puede Ingresar el Codigo en Blanco !',mtConfirmation,[mbOK], 0);
Exit;
end;
R_es:= Masterdb.Bodega.Locate('CODIGO', C_od, []);
if R_es = False then
begin
MessageDlg('! El Codigo NO Existe !',mtConfirmation,[mbOK], 0);
Exit;
end
ejemplo SQL:
Código Delphi
[-]
DM.ValeMas.close;
DM.ValeMas.SelectSql.Clear;
DM.ValeMas.SelectSql.Add('Select * From BODEGA WHERE NUMERO = :BUSCADO');
DM.ValeMas.SelectSql.Add('ORDER BY NUMERO');
DM.ValeMas.ParamByName('BUSCADO').AsInteger:= Nva;
DM.ValeMas.Open;
O
Código Delphi
[-]
MasterDB.IBQuery1.close;
MasterDB.IBQuery1.Sql.Clear;
MasterDB.IBQuery1.Sql.Add('Select Codigo,Descripcion,Stock,Proveedor,Fecha_c From BODEGA WHERE CODIGO LIKE :BUSCADO');
MasterDB.IBQuery1.ParamByName('BUSCADO').AsString:= EditCon.Text+'%';
MasterDB.IBQuery1.Open;
Saludos