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 07-07-2003
Avatar de hgiacobone
hgiacobone hgiacobone is offline
Miembro
 
Registrado: may 2003
Ubicación: La Plata, Bs. As., Argentina
Posts: 165
Poder: 21
hgiacobone Va por buen camino
Post Locate

Hola amigos Gurus de las DB...

Defini unas tablas Paradox con indices secundarios a nivel de DBD.

Me han comentado que para poderlos utilizar, igual los engo que definir en mi DataModule porque no se importan esas definiciones dinámicamente a mi aplicación, ¿es así?...

Luego, pera buscar un datos determinado en un campo, me sugirieron utilizar LOCATE, pero me han dicho que los indices aqui no influyen, entonces ¿para qué sirve tener indices?

Supuestamente el LOCATE busca campo a campo la coincidencia. ¿Hay forma de agilizar esa busqueda en tablas grandes?
__________________
Gracias de antemano por vuestra ayuda.
·.:*:.·Yako·.:*:.·
Responder Con Cita
  #2  
Antiguo 07-07-2003
Avatar de __marcsc
__marcsc __marcsc is offline
Miembro
 
Registrado: may 2003
Ubicación: Girona
Posts: 577
Poder: 21
__marcsc Va por buen camino
Hola,

para búsquedas rápidas con BDE utilizando índices, debes utilizar la función FindKey, menos flexible pero mucho más rápida que Locate.

FindKey solamente te permite buscar por los campos de un índice, a diferencia de locate, que te permite buscar por cualquier campo, indexado o no.

Además, el tener índices te permite ordenar la tabla según los campos indexados.

FindKey funciona igual que Locate, pero solamente le tienes que pasar el array con los valores que quieres localizar en el índice (consulta el help si quieres saber más detalles pero a groso modo es esto)

Si tienes alguna otra duda no dudes en preguntar.

Saludos.
Responder Con Cita
  #3  
Antiguo 07-07-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Solamente aclarar, que Locate, si utiliza los índices, lo que sucede es que si no hay índices busca secuencialmente, por lo que es más versatil que FindKey.


Y respecto al DataModulo, no es imprescindible que la conexión con la tabla se haga mediante un datamodulo, pero a mi si me parece conveniente hacerlo así, porque de esta manera con una conexión por tabla, defines propiedades de campos etc. y te sirven para el resto de formularios que utilicen dicha tabla.

El resto me suscribo a lo que te ha dicho Marcs.


Un Saludo.
Responder Con Cita
  #4  
Antiguo 07-07-2003
Avatar de hgiacobone
hgiacobone hgiacobone is offline
Miembro
 
Registrado: may 2003
Ubicación: La Plata, Bs. As., Argentina
Posts: 165
Poder: 21
hgiacobone Va por buen camino
Gracias muchachos por contestar tan rapido.

Cita:
Posteado originalmente por marcoszorrilla
Solamente aclarar, que Locate, si utiliza los índices, lo que sucede es que si no hay índices busca secuencialmente, por lo que es más versatil que FindKey.
Ok, ¿pero como es que utiliza los indices?
¿Es más versatil pero mucho mas lento o es igual?

Cita:

Y respecto al DataModulo, no es imprescindible que la conexión con la tabla se haga mediante un datamodulo...,
Pero yo lo uso de contenedor. La conexion la hago con TSession y TDataBase.
¿Se puede hacer de otra forma?
__________________
Gracias de antemano por vuestra ayuda.
·.:*:.·Yako·.:*:.·
Responder Con Cita
  #5  
Antiguo 07-07-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
1º.- Locate si le mandamos buscar por un campo que está indexado no será lento, tardará prácticamente lo mismo que Findkey.

2º.- Un DataModulo es precisamente eso un contenedor para las Tablas, Tsessions, Tqueryes y algunas cosas más, que nos permite centralizar una seríe de propiedades y datos.

Finalmente aclarar que cuando digo que la conexión no es preciso que se haga mediante un DataModulo, sino se conoce bien lo que es un datamodulo, pudiera prestarse a confusión y pensar que realmente la conexión se realiza por medio del DataModulo, cuando este no es más que un contenedor que centraliza los procesos.

Un Saludo.
Responder Con Cita
  #6  
Antiguo 08-07-2003
Avatar de hgiacobone
hgiacobone hgiacobone is offline
Miembro
 
Registrado: may 2003
Ubicación: La Plata, Bs. As., Argentina
Posts: 165
Poder: 21
hgiacobone Va por buen camino
Gracias chicos por las respuestas.

Ya que estamos bailando, ...
¿es posible hacer lo mismo con SQL o para migrar luego esta aplicación a un sistema con motor SQL seguirá funcionando con las mismas sentencias?
__________________
Gracias de antemano por vuestra ayuda.
·.:*:.·Yako·.:*:.·
Responder Con Cita
  #7  
Antiguo 08-07-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Hombre al 100% no, siempre hay que hacer algunos retoques ya que de unos motores a otros siempre hay alguna pequeña diferencia.


Por poner un ejemplo simple:

Una consulta en Paradox, con fechas en Access necesitaría un pequeño retoque, ya que en el SQL de Access las fechas van entre almohadillas #.

Y en este caso hablamos de 2 bases de datos de escritorio.


Un Saludo.
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


La franja horaria es GMT +2. Ahora son las 11:30:22.


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