Alaska Software Inc. - ODBC CON ACCESS
Username: Password:
AuthorTopic: ODBC CON ACCESS
Eduardo Lucero ODBC CON ACCESS
on Tue, 01 Aug 2006 18:48:16 -0300
Hola Gente...

Alguien a logrado acceder a una base de datos access (.mdb) con varios indices sobre la misma tabla 
Este es el codigo que utilizo para mis pruebas... Que esta mal ?

 DbeLoad( "ODBCDBE" ) 
 DbeSetDefault( "ODBCDBE" ) 

 cConnect := "DBE=ODBCDBE"  
 cConnect += ";DRIVER=Microsoft Access Driver (*.mdb)"  
 cConnect += ";FIL=MS Access" 
 cConnect += ";DBQ=xxxxxxx.mdb" 
  
  oSession := dacSession():new(cConnect)
  oSession:setProperty(ODBCSSN_INDEX_AUTOOPEN,.T.)
  IF !oSession:isConnected()
     QUIT
  ENDIF
  
  USE XXXX  ALIAS TEMP VIA "ODBCDBE" NEW

//Hasta este punto todo ok. Pero no puedo cambiar de indice sobre la tabla XXXX. Intente con 
 TODO..!! y nada si utilizo la funcion OrdCount() siempre me retorna 1 ( 1 indice activo ). Aclaro
//que la tabla esta indexada y las busquedas funcionan OK.

 ? OrdCount() -> 1

Si miro la tabla con el Access la tabla tiene 4 indices activo... Siempre me abre solo el primer
indice.

Alguna idea.....  

Gracias
Eduardo Lucero
Buenos Aires - Argentina
Eduardo Lucero
Buenos Aires - Argentina
Jos Luis Otermin [Alaska Software]Re: ODBC CON ACCESS
on Mon, 25 Sep 2006 08:01:53 -0300
Hola Eduardo,

> Alguien a logrado acceder a una base de datos access (.mdb) con varios 
> indices sobre la misma tabla

S, es posible acceder a una tabla de MS-Access o cualquier tabla de un 
servidor SQL con varios ndices.

> Este es el codigo que utilizo para mis pruebas... Que esta mal ?
>
> DbeLoad( "ODBCDBE" )
> DbeSetDefault( "ODBCDBE" )
>
> cConnect := "DBE=ODBCDBE"
> cConnect += ";DRIVER=Microsoft Access Driver (*.mdb)"
> cConnect += ";FIL=MS Access"
> cConnect += ";DBQ=xxxxxxx.mdb"
>
>  oSession := dacSession():new(cConnect)
>  oSession:setProperty(ODBCSSN_INDEX_AUTOOPEN,.T.)
[...]
> //Hasta este punto todo ok. Pero no puedo cambiar de indice sobre la tabla 
> XXXX. Intente con
>  TODO..!! y nada si utilizo la funcion OrdCount() siempre me retorna 1 
> ( 1 indice activo ). Aclaro
> //que la tabla esta indexada y las busquedas funcionan OK.

Sugiero leas lo que dice este curso prctico de SQL con respecto a los 
ndices:

http://www.w3schools.com/sql/sql_create.asp

"...
Create Index
Indices are created in an existing table to locate rows more quickly and 
efficiently. It is possible to create an index on one or more columns of a 
table, and each index is given a name. The users cannot see the indexes, 
they are just used to speed up queries.
Note: Updating a table containing indexes takes more time than updating a 
table without, this is because the indexes also need an update. So, it is a 
good idea to create indexes only on columns that are often used for a 
search.
..."

"The users cannot see the indexes, they are just used to speed up queries."
Los usuarios no pueden ver los ndices, stos slo se usan para acelerar las 
consultas.

Espero haber sido de utilidad.

Saludos
Jos Luis Otermin
Soporte Tcnico
--------------------------------------------------------------------
Alaska Software Inc.
Foros de Usuarios: news://news.alaska-software.com
Foros de Usuarios Web: http://news.alaska-software.com
Pgina Web: http://www.alaska-software.com
Base de Conocimientos en la Web: http://www.alaska-software.com/kbase.shtm
Oficina en Europa: Fax: +49 (0) 61 96 - 77 99 99 23
Oficina en EEUU: Fax: +1 (646) 218 1281
-------------------------------------------------------