pregunta sobre xbase++
Publicado por juan pujol (1 intervención) el 26/05/2005 22:50:10
Por favor: Por qué xBase++ no retorna el resultado cuando hago una busqueda con indice al contenido del campo ("NC") en la tabla "tipos", pero sí retorna resultado de búsqueda cuando le agrego el comando dbgobottom? Si la tabla es grande (100.000 registros por ejemplo, la búsqueda se demora demasiado) esto no es eficiente. Anexo código fuente abajo:
Procedure main
XDBQ:=CURDRIVE()+":\"+CURDIR()+"\"+STRTRAN(G_CAMINO,"\","")
cCon := "DBE=ODBCDBE;DRIVER={Microsoft dBase Driver
(*.dbf)};DBQ="+XDBQ+";DATABASE="+XDBQ
oSessionDBF:=DacSession():new(cCon)
oSessionDBF:setProperty(ODBCSSN_INDEX_AUTOOPEN, .T.)
IF !oSessionDBF:isconnected()
MSGBOX( "Unable to connect..." )
QUIT
ENDIF
DbeSetDefault( "ODBCDBE" )
SQL("CREATE INDEX TIPOS ON TIPOS(TIPO_COMP)")
USE TIPOS NEW
MSGBOX(INDEXKEY()) // Result= TIPO_COMP
* DBGOBOTTOM() //If this line is not commented, it works OK!
IF DBSEEK("EG")
MSGBOX("Found!")
ELSE
MSGBOX("Not found")
ENDIF
RETURN
Procedure main
XDBQ:=CURDRIVE()+":\"+CURDIR()+"\"+STRTRAN(G_CAMINO,"\","")
cCon := "DBE=ODBCDBE;DRIVER={Microsoft dBase Driver
(*.dbf)};DBQ="+XDBQ+";DATABASE="+XDBQ
oSessionDBF:=DacSession():new(cCon)
oSessionDBF:setProperty(ODBCSSN_INDEX_AUTOOPEN, .T.)
IF !oSessionDBF:isconnected()
MSGBOX( "Unable to connect..." )
QUIT
ENDIF
DbeSetDefault( "ODBCDBE" )
SQL("CREATE INDEX TIPOS ON TIPOS(TIPO_COMP)")
USE TIPOS NEW
MSGBOX(INDEXKEY()) // Result= TIPO_COMP
* DBGOBOTTOM() //If this line is not commented, it works OK!
IF DBSEEK("EG")
MSGBOX("Found!")
ELSE
MSGBOX("Not found")
ENDIF
RETURN
Valora esta pregunta


0