Enrico Maria Giordano wrote:Works fine here:
- Code: Select all Expand view
FUNCTION MAIN()
DBCREATE( "MYTEST.DBF", { { "TEST", "C", 30, 0 } } )
USE TEST ALIAS TEST1
? SELECT()
USE TEST ALIAS TEST2 NEW
? SELECT()
CLOSE ALL
INKEY( 0 )
RETURN NIL
Result:
1
2
Muchas gracias Enrico,
Es cierto, en esa situación funciona, pero el caso es que en esta no:
If Select( ::cName ) > 0
DbSelectArea( 0 )
--->>> MsgInfo( Select(), "Hola" )
EndIf
¿Cómo funcionan DbSelectArea() y Select()?
" DBSELECTAREA() hace que el área de
trabajo especificada se convierta en
el área de
trabajo actual. Todas las operaciones de base de datos
posteriores se aplican a este área de
trabajo, a menos que se
especifique explícitamente otra área de
trabajo para una operación.
DBSELECTAREA() realiza la misma función que un mandato SELECT
estándar. Si desea más información, consulte el mandato SELECT.
Notas
Selección cero: Si se selecciona un área de
trabajo cero, el
área de
trabajo libre con el número más bajo se convierte en el área
de
trabajo actual."
" SELECT() es una función de base de datos que determina el número de
área de
trabajo de un alias. El número devuelto puede estar comprendido
entre 0 y 250. Si no se especifica <cAlias>, se devuelve el número del
área de
trabajo actual. Si se especifica y el alias no existe, SELECT()
devuelve cero."
Antes MsgInfo( Select(), "Hola" ) mostraba un número mayor que '0', por que previamente se realizaba DbSelectArea( 0 ).
Ahora muestra '0'; ahora Select() no es compatible con desarrollos anteriores.
Entiendo que debe ser algo de Harbour, pero no tengo acceso a los foros de Harbour.
Muchas gracias Enrico.