Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-07-2007
tenporal tenporal is offline
Miembro
 
Registrado: may 2007
Posts: 28
Poder: 0
tenporal Va por buen camino
Busquedas utilizando ADO

Saludos a tod@s, mi pregunta es la siguiente:

¿Habra otra opcion diferente a LOCATE para busquedas utilizando un ADOTABLE?


Código Delphi [-]
if Adotable1.Locate('cvemateria',mcvemateria,[]) = false then


begin
ShowMessage('La clave de la materia no existe')
end else


begin

Adotable1.edit;
end;










He estado buscando ejemplos pero no los he encontrado, se agradeceria la ayuda a esta pregunta.
Responder Con Cita
  #2  
Antiguo 17-07-2007
tenporal tenporal is offline
Miembro
 
Registrado: may 2007
Posts: 28
Poder: 0
tenporal Va por buen camino
Busquedas con ADO

Saludos a tod@s, mi pregunta es la siguiente:

¿Habra otra opcion diferente a LOCATE para busquedas utilizando un ADOTABLE?
Código Delphi [-]
if Adotable1.Locate('cvemateria',mcvemateria,[]) = false then
begin
ShowMessage('La clave de la materia no existe')
end else begin
Adotable1.edit;
end;

He estado buscando ejemplos pero no los he encontrado, se agradeceria la ayuda a esta pregunta.
Responder Con Cita
  #3  
Antiguo 17-07-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Yo lo hago por filtro asi:
Código Delphi [-]
procedure TFBuscaArticulo.Edit1Change(Sender: TObject);
var   Filtro : String;
begin
   If (Edit1.Text <> '') then
   begin
      Adotable1.Filtered := False;
      Filtro := 'cvemateria Like '''+Edit1.Text + '*'''
      Adotable1.Filter := Filtro;
      Adotable1.Filtered := True
   end
   else
  ShowMessage('La clave de la materia no existe')  
  Adotable1.Filtered := False;
end;
O tambien por sql, hay muchas formas de hacerlo.
Saludos
Responder Con Cita
  #4  
Antiguo 17-07-2007
Avatar de saldanaluis
saldanaluis saldanaluis is offline
Miembro
 
Registrado: nov 2006
Ubicación: Monterrey NL México
Posts: 122
Poder: 18
saldanaluis Va por buen camino
Caral,
Disculpa pero no entendí tu código... ¿Como es que con el Filter se puede saber si se tiene al menos un registro ó no se tiene ningun registro de respuesta, como para poner el mensaje de que no existe la clave de la materia?
En un .locate, al menos la respuesta es un true ó false, y con eso sabes si el locate fue exitoso o no, pero no veo como hacerlo con el filter.
Gracias por tu explicación.
Responder Con Cita
  #5  
Antiguo 18-07-2007
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Cual es el inconveniente de usar Locate? Existen otras maneras de busqueda FindKey u otras con sentencias Sql.
__________________
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!
Responder Con Cita
  #6  
Antiguo 18-07-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola saldanaluis
Tienes razon en cuestionarme, eso pasa por tratar de parecer un programador.
Con un filter, una sentencia sql, un locate, etc y una simple sentencia if o case, se puede hacer casi cualquier cosa, bueno, si eres programador, algo que no soy.
Por eso, tienes razon en cuestionar.
Saludos
Responder Con Cita
  #7  
Antiguo 18-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por saldanaluis
Caral,
Disculpa pero no entendí tu código... ¿Como es que con el Filter se puede saber si se tiene al menos un registro ó no se tiene ningun registro de respuesta, como para poner el mensaje de que no existe la clave de la materia?
En un .locate, al menos la respuesta es un true ó false, y con eso sabes si el locate fue exitoso o no, pero no veo como hacerlo con el filter.
Gracias por tu explicación.
Solo para responder a tu cuestionamiento, usando filter como te lo decia nuestro amigo Carlos, puedes validar de esta forma:

Código Delphi [-]
ADOTable1.Filter = 'campo = algo';
if ADOTable1.RecordCout > 0 then begin
  //Hay al menos un registro
end
else begin
         //NO hay registros con ese filtro
end;

Con eso puedes saber si fué exitoso o no.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #8  
Antiguo 18-07-2007
tenporal tenporal is offline
Miembro
 
Registrado: may 2007
Posts: 28
Poder: 0
tenporal Va por buen camino
Mas opciones para buscar

Gracias por responder a este hilo, mas que nada el codigo que coloque al inicio del hilo, era para conocer si habia mas formas de validar cuando se esta insertando en una tabla que tiene un indice primario y que muestra la informacion en un campo dbedit, ya que si se trata de agregar una clave que ya existe en la tabla, manda un mensaje de error.

Caral, a lo mejor no me explique bien cuando puse codigo, se supone que tienes un boton para agregar un nuevo registro, pero antes de darle el
Código Delphi [-]
 adotable1.insert
Ya que inserta un registro en blanco y luego manda el error de excepcion, por eso debo verificar antes en la tabla si no existe una clave igual que la que se quiere introducir en ese momento, lo que se dice validar la insercion.

En alguna parte vi que se podia utilizar la funcion SEEK, pero no se como se utiliza en delphi con los ADOTABLE.

De antemano gracias por su ayuda.
Responder Con Cita
  #9  
Antiguo 31-03-2010
Avatar de kaeltas
kaeltas kaeltas is offline
Miembro
 
Registrado: abr 2008
Posts: 22
Poder: 0
kaeltas Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
Yo lo hago por filtro asi:
Código Delphi [-]procedure TFBuscaArticulo.Edit1Change(Sender: TObject); var Filtro : String; begin If (Edit1.Text <> '') then begin Adotable1.Filtered := False; Filtro := 'cvemateria Like '''+Edit1.Text + '*''' Adotable1.Filter := Filtro; Adotable1.Filtered := True end else ShowMessage('La clave de la materia no existe') Adotable1.Filtered := False; end;

O tambien por sql, hay muchas formas de hacerlo.
Saludos
Mil Mil Mil Mil Gracias este pedazo de codigo me ayudo muchisisimo, gracias gracias gracias gracias, enserio gracias por esta pagina y gracias a esta comunidad, gracias a todos los que aportan su granito de arena enserio mil gracias.

aqui les pongo un cacho de mi codigo que hice usando esto:

Código:
procedure TForm1.Label18Click(Sender: TObject);
var   Filtro : String;
begin
Filtro := 'Descripcion=''Short'' and Estilo Like '''+'22mn'+ '*''';
AdoTable1.Filter := Filtro;
Adotable1.Filtered := True;
end;
Como pueden ver, pueden hacer lo que quieran con las sentencias, en mi caso es una BD en mysql y esto me deja filtrar las tablas a placer :P

Gracias!
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
SQL utilizando parametros gaps2k SQL 5 28-05-2007 20:31:35
Utilizando el locate alcides Varios 2 06-09-2006 23:41:22
Error utilizando DataSet Coco_jac Conexión con bases de datos 2 13-04-2006 00:12:35
Utilizando un Actionlist Carlos Arevalo OOP 5 13-09-2003 22:14:56
Utilizando InstallShield... apunto Conexión con bases de datos 1 29-05-2003 22:46:33


La franja horaria es GMT +2. Ahora son las 16:01:38.


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