consulta bd de 10 millones de registros
compa帽eros buenas tardes tengo una pregunta como puedo accesar una base de datos de vfp que contiene 10 millones de registros de una manera super rapida.
me explico yo tengo la base indexada como hago para que cuando digite la cedula en un listbox solo me muestre los registros que contienen esta cedula pero de una manera super super rapida.
mil gracias
Softcomercial
me explico yo tengo la base indexada como hago para que cuando digite la cedula en un listbox solo me muestre los registros que contienen esta cedula pero de una manera super super rapida.
mil gracias
Softcomercial
Utilza la instrucci贸n SQL Select y se lo pasas como parametro en la propiedad Recordsource de un Grid para mostrar la informaci贸n. Por ejemplo
cadena="SELECT * FROM tabla WHERE_
cedula="+valorcedula
grid.Recordsource=cadena
Este codigo lo metes en el evento valid del control donde tecleas la cedula
Esto normalmente es muy rapido, pero recuerda que las tablas de VFP no est谩n pensadas para soportar un numero tan grande de registros, tal vez debas considerar migrar tu base de datos a un gestor de bd de mayor potencia como SQL Server u Oracle, con cualquiera de los dos VFP puede conectarse.
Un saludo
cadena="SELECT * FROM tabla WHERE_
cedula="+valorcedula
grid.Recordsource=cadena
Este codigo lo metes en el evento valid del control donde tecleas la cedula
Esto normalmente es muy rapido, pero recuerda que las tablas de VFP no est谩n pensadas para soportar un numero tan grande de registros, tal vez debas considerar migrar tu base de datos a un gestor de bd de mayor potencia como SQL Server u Oracle, con cualquiera de los dos VFP puede conectarse.
Un saludo
un SELECT es muy lento tardaria al rededor de 3seg 贸 m谩s enrastrear la informaci贸n y 2 seg m谩s para mostrarla. ya que SELECT utiliza una busqueda secuencial
lamanera m谩s y rapida es utilizando un SEEK o un INDEXSEEK.
SEEK() : Busca en una tabla la primera aparici贸n de un registro cuya expresi贸n clave de 铆ndice coincida con una expresi贸n general y despu茅s mueve el puntero de registro al registro coincidente.
INDEXSEEK() : Sin mover el puntero de los registros, busca en una tabla indexada la primera ocurrencia de un registro cuya clave de 铆ndice coincida con una expresi贸n especificada.
UN EJEMPLO:
FUNCTION BuscarArticulo(cIdArticulobusca,lEncontro)
IF SEEK(cIdArticulobusca,"posarticulos","art_codi")
lEncontro = .T.
ELSE
lEncontro = .F.
ENDIF
RETURN lEncontro
ENDFUNC
lamanera m谩s y rapida es utilizando un SEEK o un INDEXSEEK.
SEEK() : Busca en una tabla la primera aparici贸n de un registro cuya expresi贸n clave de 铆ndice coincida con una expresi贸n general y despu茅s mueve el puntero de registro al registro coincidente.
INDEXSEEK() : Sin mover el puntero de los registros, busca en una tabla indexada la primera ocurrencia de un registro cuya clave de 铆ndice coincida con una expresi贸n especificada.
UN EJEMPLO:
FUNCTION BuscarArticulo(cIdArticulobusca,lEncontro)
IF SEEK(cIdArticulobusca,"posarticulos","art_codi")
lEncontro = .T.
ELSE
lEncontro = .F.
ENDIF
RETURN lEncontro
ENDFUNC
