Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 28-01-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
En tal caso una opción son las componentes ADO.

Para hacer la conexión necesitas una componente TADOConnection y configurar su propiedad ConnectionString. Para ello lo más sencillo es que abras el editor de dicha propiedad desde el inspector de objetos y oprimas el botón "Build...". En la ficha "Proveedor" selecciona "Microsoft Jet 4.0 OLE DB Provider" y en la ficha "Conexión" seleccionas la base de datos de Access.

Una vez configurada la cadena de conexión pones en false la propiedad LoginPrompt (a menos que requieras un usuario y contraseña para acceder a la base).

Para hacer las consultas SQL requieres una componente TADOQuery. La consulta en sí la pones en la propiedad SQL y ejecutas la consulta ya sea con el método Open o con ExecSQL dependiendo del tipo de consulta de que se trate. El primer método es para consultas que regresan registros como SELECT y el segundo para consultas que no regresan registros como INSERT, UPDATE y DELETE.

Puedes usar parámetros en tus consultas, por ejemplo:

Código SQL [-]
select * from personas where nombre like :nombre and edad > :edad

Aquí los dos puntos que preceden a "nombre" y "edad" indican que éstos son parámetros.

Antes de ejecutar una consulta con parámetros debes asiganre valores a éstos. Para ello usas la propiedad Parameters del ADOQuery y su método ParamByName:


Código Delphi [-]
ADOQuery1.Parameters.ParamByName('nombre').AsString := 'PEREZ%';
ADOQuery1.Parameters.ParamByName('edad').AsInteger := 24;

Come ves, ParamByName regresa un objeto de tipo TParameter y debes usar el método AS--- que corresponda al tipo de datos.

En el ejemplo, una vez sustituidos los parámetros la consulta queda:


Código SQL [-]
select * from personas where nombre like "PEREZ%" and edad > 24

que te buscará todos los registros de la tabla `personas` cuyo nombre comienza con "PEREZ" y cuya edad es mayor de 24 años.

Una vez ejecutada la consulta (en este caso con Open) puedes recorrer los registros resultantes con el método Next del ADOQuery. En cada registro puedes acceder a los campos mediante el método FieldByName:

Código Delphi [-]
while not ADOQuery1.Eof do
begin
  {
    Accedes a los campos con
      ADOQuery1.FieldByName('nombre').AsString y
      ADOQuery1.FieldByName('edad').AsInteger y
  }

  ADOQuery.Next;
end;

Como te darás cuenta, Eof es una propiedad de ADOQuery que determina si ya alcanzaste el final de los registros.

También puedes conectar el ADOQuery mediante un TDataSource a cualquier componente de acceso a datos como un TDBNAvigator, TDBGrid, TDBEdit, etc.

// Saludos
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 22:44:13.


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