Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-09-2007
Avatar de Victor Vega
Victor Vega Victor Vega is offline
Miembro
 
Registrado: feb 2005
Posts: 12
Poder: 0
Victor Vega Va por buen camino
Ayuda en busqueda usando ADO

Hola como estan amigos programadores. tengo una duda, realmente ya me di por vencido y acudo en su ayuda:
trabajo delphi 7 con sql server 7.. para la conexion use componente ado y para los procedimientos de guardar y eliminar usé adoquery, tambien se como actualizar. pero mi problema surge en lo siguiente:
quiero que cuando ingrese un dato en el edit (dni) me busque en la tabla datos si existe este registro, y si lo consigue me cargue el resto de sus datos en otros edits (nombre,apellido,etc..) necesito esto para poder decirle al procedimiento actualizar cuales seran afectados por tal procedimiento. por favor denme una idea..
Responder Con Cita
  #2  
Antiguo 06-09-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola Victor Vega, bienvenido a clubdelphi.

Antes que nada, aprovechando de que eres nuevo en los foros, te aconsejo que te tomes unos minutos para que leas la guia de estilo, son algunos detalles a tener en cuenta para cuando intervengas y participes en estos foros.

Bueno, al grano.
Si estás empleando un ADOQuery, lo más común es lanzar una consulta SQL del tipo SELECT. Algo como esto:

Código SQL [-]
select * from TU_TABLA where TU_TABLA.DNI = DNI_A_BUSCAR

Una vez que lanzas la consulta, con la propiedad RecordCount obtienes la cantidad de registros afectados por dicha consulta. Con este valor debes comprobar que exista: es decir se debe cumplir lo siguiente:

Código Delphi [-]
MyQuery.RecordCount = 1

El DNI es único, por lo que si se consigue un registro, haz obtenido los valores correspondientes a la persona.
Ahora solo es cuestión de lanzar la consulta UPDATE con los valores adecuados asociando en la condición WHERE el mismo valor de filtrado. Es decir:

Código SQL [-]
update .... WHERE TU_TABLA.DNI = DNI_A_BUSCAR

Tal vez te sea útil ver el tema de lanzar consultas mediante parámetros: con realizar una búsqueda con el término ParambyName obtendrás resultados.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 06-09-2007
Avatar de Victor Vega
Victor Vega Victor Vega is offline
Miembro
 
Registrado: feb 2005
Posts: 12
Poder: 0
Victor Vega Va por buen camino
Gracias por la ayuda

Gracias por la ayuda.. si entiendo lo q me quieres decir en este caso.. pero lo q aun no capto es esto:

la tabla datos contiene estos campos(dni,nombres,apellidos...)

en el edit (dni) introduzco el valor (01) edit.text:=01
cuando el me busque en la tabla datos este registro y lo halle haga algo asi:
nombres.text:=nombre
apellidos.text:=apellido
(osea q en cada edit correspondiente me muestre el campo indicado)
esto para que?
para que cuando vaya a editar este registro yo pueda hacer lo siguiente:
si el edit (nombres.txt) me mostro un dato ya guardado con el nombre Fulano yo pueda modificar ese edit y cambiar en vez de Fulano a Sultano.
Asi lograre que cuando guarde los cambios se hagan de la manera correcta.
no se si me explique bien.. pero en resumidas... necesito es saber como muestro los campos de la busqueda en los edits.....
Responder Con Cita
  #4  
Antiguo 06-09-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola nuevamente,
Con respecto a lo que dices... lo daba por sentado al hecho de que si estabas empleando un query y que si sabes lanzar consultas actualizables es porque tenías presente la manera de como obtener los registros.
Para acceder al valor del campo debes valerte del FieldbyName. Por ejemplo:

Código Delphi [-]
EditNombre.Text := MiQuery.FieldbyName('NOMBRE').asString;

Siendo NOMBRE, el nombre del campo a capturar. Es necesario indicar el tipo adecuado del dato mediante asXXXX siendo XXXX el tipo a devolver. En este ejemplo, al tratarse de un texto, le indico AsString.

Espero que se entienda.
Si recién te estas iniciando, te aconsejo una lectura a La Cara Oculta de Delphi 4. La puedes conseguir en internet, es un buen libro (pdf) que trata el ABC de Delphi, sobre todo lo referente a base de datos.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 06-09-2007
Avatar de Victor Vega
Victor Vega Victor Vega is offline
Miembro
 
Registrado: feb 2005
Posts: 12
Poder: 0
Victor Vega Va por buen camino
Se presento un detalle

El detalle q se me presenta ahora es el siguiente:
Despues de que hago la consulta:

with QBuscar do
begin
SQL.Clear;
SQL.Text:='select * from Datos where Datos.cedula=(:cedula)';
Parameters.ParamByName('cedula').Value:=txtcedula.Text;
{Aqui deberia asignar los valores a los edits, pero no me aparece la funcion "FieldbyName"...}
end;
espero me ayudes y disculpes.....
Responder Con Cita
  #6  
Antiguo 06-09-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Bueno... mira... no tengo Delphi a mano... y lo escribí al vuelo... Tu código debe ir más o menos así...

Código Delphi [-]
with MyQuery do
    begin
      SQL.Clear;
      SQL.Add('Select * from Datos where Datos.Cedula = :CedulaParam');
      // Suponiendo que Cedula es del tipo integer...
      MyQuery.Parameters.ParamByName('CedulaParam').Value := StrToInt(Edit1.Text);
      Open;

      if RecordCount = 1
         then begin
                // hay un registro... entonces muestro el contenido del
                // campo nombre
                Edit1.Text := FieldByName('Nombre').AsString;
              end;
    end;

Puede que tenga una fallas pero las cosas van por algo de este estilo.
EDITO:
Por cierto... sería oportuno decirte que uses las etiquetas [ DELHPI ], [/ DELPHI ] (sin espacios) de modo que el código que expones se vea mejor.
Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 06-09-2007 a las 05:50:37. Razón: recomendación del uso de etiquetas
Responder Con Cita
  #7  
Antiguo 06-09-2007
Avatar de Victor Vega
Victor Vega Victor Vega is offline
Miembro
 
Registrado: feb 2005
Posts: 12
Poder: 0
Victor Vega Va por buen camino
Thumbs up Operativo

Gracias amigo.. me sirvieron tus sugerencias y tu paciencia, si funciono muy bien... ahora seguire practicando. si tienes razon, soy algo nuevo en este lenguaje, mi fuerte siempre ha sido vb6 y .net. pero quiero conocer opciones aparte de microsoft jeje.... y la borland me esta agradando.. muchas gracias de antemano.
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
Ayuda con la busqueda en una tabla mjjj Conexión con bases de datos 5 02-04-2007 23:48:12
Ayuda para enviar pdf por fax, usando Delphi 7 manolop Varios 6 15-03-2007 12:48:19
¿Alguien me ayuda con la busqueda? sergiotur Tablas planas 3 06-03-2007 20:52:34
Busqueda usando un DBLookupComboBox esimon OOP 19 08-10-2006 22:31:42
Búsqueda usando un índice con ADO. vpepen Conexión con bases de datos 9 03-02-2005 14:32:32


La franja horaria es GMT +2. Ahora son las 00:14:37.


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