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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-06-2007
ANDRES86 ANDRES86 is offline
Miembro
 
Registrado: mar 2007
Posts: 16
Poder: 0
ANDRES86 Va por buen camino
Zeos Acces - ¿Como buscar registros?

Hola Todos

Estoy trabajando con el Zeos Acces para hacer la conexion por red entre MYsql y Delphi, hasta el momento me ha trabajado muy bien, el problema es el Zeos Acces no tiene el tan valioso findkey, Alguien sabe entonces como se buscan registros con este componente.
Responder Con Cita
  #2  
Antiguo 23-06-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Por supuesto:
Código Delphi [-]
query1.sql.text := 'select * from tabla where claveprimaria = :clave'
query1.parambyname('clave').AsXXXX := lo que sea
query1.Open;

Olvídate del findkey y locate en estos Sistemas Gestores de Bases de Datos (SGBBDD). Aquí se trata de buscar solo el registro que hace falta, nada de traer al ordenador cliente los 3 millones de registros de la tabla para después usar un Locate o Findkey.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 23-06-2007
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
No coincido Lepe, hay ocasiones en que se requiere hacer una sub-búsqueda en el set de registros que se trajeron de un Query. Ahi si es válido el findkey o locate.

Digamos que tienes una tabla "clientes" y quieres traer todos los clientes con ventas en este mes. Haces el query SQL y los traes. Ahora bien, ya tienes ese set de datos y ahora quieres encontrar un nombre en particular. Pues ahi si se puede usar un findkey o locate que será más rápido que volver a hacer el query.

Las ZDataset si trae locate y findkey pues descienden de TDAtaset.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #4  
Antiguo 23-06-2007
ANDRES86 ANDRES86 is offline
Miembro
 
Registrado: mar 2007
Posts: 16
Poder: 0
ANDRES86 Va por buen camino
gracias por las respuestas, mira pues el Zquery no se me hace muy familiar para mi, me puedes coloborar explicandome como lo conecto a Ztable es que lo hago y no me funciona, y respecto a ZDataset pues no lo encuentro sinseramente, ¿ me podes decir donde esta?.
Responder Con Cita
  #5  
Antiguo 23-06-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Estaba pensando en otras situaciones. Muy de acuerdo contigo AzidRain.

El ZDataset, imagina que son 4 Zquerys en un componente. Una para cuando quieres insertar, otra para eliminar, otra para refrescar el registro actual y por último otra Zquery para modificar los datos.

busca información sobre el SQL, un ejemplo:
Código SQL [-]
insert into Clientes (idCliente, nombreCliente) Values (:idcliente, :nombreCliente)

update Clientes set idCliente = :idCliente, nombreCliente = :nombreCliente where idcliente = :old_idcliente

delete from clientes where idcliente = :old_idcliente

// refresh:
select idCliente, nombrecliente where idcliente = :old_idcliente

//select:
select idCliente, nombrecliente where idcliente = :idcliente
doble clic a ZDataset, boton derecho y añade los campos.
Enlaza ese ZDataset con tu TZTransaction, usa un DBNavigator y unos edits enlazados a los campos de este ZDAtaset. Listo, ya puedes insertar, borrar, modificar y refrescar desde la tabla. Lo que has ganado, es que solo viajará 1 registro por la red (el que quieres modificar).

Edito: usar la etiqueta noparse para las caritas dentro del código sql

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 23-06-2007 a las 22:13:30.
Responder Con Cita
  #6  
Antiguo 24-06-2007
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Fijate que yo me encontré sin querer una chapuza:

"select * from clientes where numcliente is null"

Obviamente me devuelve un set vacio, pero que crees, si haces un insert, efectivamente agregas un registro a la tabla.

Respondiendo a nuestro amigo: ZTable es un ZQuery Modificado, la diferencia es que ZTable siempre hace un select * from...o sea se trae todos los registros de la tabla sin importar su número...En cambio en ZQuery, puedes modificar su propiedad SQL para que contenga el select que necesites (puedes ser un insert o un delete), aqui es donde radica su potencia.

Se usa de forma idéntica a cualquier otra tabla y tiene casi los mismos métodos que ZTable.

Código Delphi [-]
Procedure demoQuery;
 var MiQuery:TZQuery;
Begin
  MiQuery := TZQuery.Create(nil);
  Try
    MiQuery.Connection := LaConexion; //Asumimos que ya tienes el componente  TZConnection debidamente configurado y creado
    MiQuery.SQL.Add('select * from clientes'); 
    MiQuery.Open;
     //---
     // Hacer algo con los datos devueltos
    // 
  Finally
    MiQuery.Close;
  end; 
end;

Obviamente la propiedad SQL normalmente contendrá cosas mas complicadas que un select *.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #7  
Antiguo 10-04-2018
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Gracias por tu ayuda, para futuro y refencia de otros segun Embacadero genera un error si se cierra el Query, como debe quedar y que a mi me funciono segun el foro es:
Código SQL [-]
  qTpPd.DisableControls;
  BM := qTpPd.GetBookmark;
  qTpPd.Refresh;
  qTpPd.Bookmark := BM;
  qTpPd.EnableControls;
Responder Con Cita
  #8  
Antiguo 10-04-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Está bien recordárselo 11 años después
Responder Con Cita
Respuesta


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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
buscar registros iguales en una tabla didier MS SQL Server 1 23-09-2005 10:08:20
Borra registros duplicados en tabla ACCES manu Conexión con bases de datos 2 24-05-2005 23:15:39
buscar registros brandolin Conexión con bases de datos 3 21-01-2004 17:05:26
buscar registros brandolin Firebird e Interbase 1 19-01-2004 21:59:11
Como buscar todos los registros que incluyan una cierta cadema kasieyes SQL 3 28-10-2003 06:03:53


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


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