Enrico Maria Giordano wrote:Works fine here:
- Code: Select all Expand view RUN
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.