Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-06-2014
Leopard2 Leopard2 is offline
Miembro
NULL
 
Registrado: may 2012
Posts: 39
Poder: 0
Leopard2 Va por buen camino
Consulta rapida sobre buscar en una tabla

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

Última edición por ecfisa fecha: 10-06-2014 a las 04:24:35.
Responder Con Cita
  #2  
Antiguo 10-06-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por Leopard2 Ver Mensaje
... 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?
Hola Leopard2.

Podes usar el método IsEmpty:
Código Delphi [-]
function TForm1.CodeExists(const Code: string): Boolean;
begin
  with IBQuery do
  begin
    Close;
    SQL.Text:= 'SELECT CODIGO FROM TABLA WHERE CODIGO = :PCOD';
    ParamByName('PCOD').AsString:= Code;
    Open;
    Result:= not IsEmpty;
  end;
end;

Ej. de uso:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  if CodeExists('000111') then
    ShowMessage('El código existe')
  else
    ShowMessage('El código no existe');
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 10-06-2014
Leopard2 Leopard2 is offline
Miembro
NULL
 
Registrado: may 2012
Posts: 39
Poder: 0
Leopard2 Va por buen camino
Gracias por la respuesta, voy a probarlo.
saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consulta doble sobre una tabla amerika111 SQL 1 24-06-2013 18:33:31
A ver, una consulta rápida AzidRain Varios 11 15-06-2010 22:18:01
Duda rapida sobre Locate Bicholoco Conexión con bases de datos 8 09-03-2007 21:51:41
Consulta rápida al DRAE marcoszorrilla La Taberna 16 12-01-2007 22:52:05
Buscar registros de forma rapida Tecnic2 Conexión con bases de datos 2 29-09-2004 18:11:56


La franja horaria es GMT +2. Ahora son las 10:38:13.


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
Copyright 1996-2007 Club Delphi