In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Error DBCMD Código de error: 2001 tratando de usar ADS

Foro público de Xailer en español
Responder
Gabo
Mensajes: 104
Registrado: Mié Oct 27, 2010 1:36 am

Error DBCMD Código de error: 2001 tratando de usar ADS

Mensaje por Gabo »

Hola Equipo Xailer
Tengo un diccionario de datos ADS que conecto con el siguiente codigo

WITH OBJECT AppData:oADSdsMain := TAdsDataSource():New()
:cConnect := cRootDrive + cIpFija + cPortFijo + cDictionary
:cPassword := "*******"
:cUser := "******"
:lAbortOnErrors := .T.
:lAdsLocking := .T.
:lConnected := .F.
:lDisplayErrors := .T.
:lOptimize := .T.
:lRightsCheck := .T.
:lUseDictionary := .T.
:nCharType := acANSI
:nConnectionFlags:= 0
:nFileType := afADT
:nServerType := asREMOTE
:nTimeOut := 5
:Create()
END WITH

Hast aqui todo funciona bien despues creo una dataset para manejar una tabla del diccionario

WITH OBJECT AppData:oDbfUsuarios:= TDbfDataSet():Create( Self )
:cName := "USUARIOS.ADT"
:oDataSource := AppData:oADSdsMain
:lShared := .T.
:lDisplayErrors := .T.
:lNew := .T.
if !:Open()
::lEntrar:= .F.
return .F.
endif
END WITH

Para usar la tabla del dataset, hago lo siguiente

AppData:oDbfUsuarios:Open()
AppData:oDbfUsuarios:OrdSetFocus("USUARIO1")
AppData:oDbfUsuarios:DbGoTop()

DO WHILE ! AppData:oDbfUsuarios:EOF()
AAdd( ::oDBCbxUser:aItems, {AppData:oDbfUsuarios:NOMBRE} )
AAdd( ::oDBCbxUser:aItemsBound, {AppData:oDbfUsuarios:USUARIO} )
AppData:oDbfUsuarios:Skip()
ENDDO

Y aqui en este codigo obtengo el siguiente error,
Subsistema: DBCMD
Código de error: 2001
Estado: .F.
Descripción: Area de trabajo no usada
Operación: ORDSETFOCUS
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
ORDSETFOCUS (0)
TDBFDATASET:ORDSETFOCUS (1210)
TFORMACCESO:FORMINITIALIZE (44)
En que parte estoy haciendo mal las cosas en el uso de ADS..? alguien que me pueda ayudar ?
Saludos
hgarciaj
Mensajes: 107
Registrado: Jue Sep 23, 2010 12:44 am

Error DBCMD Código de error: 2001 tratando de usar ADS

Mensaje por hgarciaj »

Hola Gabo:
Por lo que se observa en tu código estás usando un servidor remoto, si no tienes una licencia de servidor remoto aunque sea de prueba y/o no está corriendo no podrás conectarte a tu diccionario y en consecuencia no podrás acceder a tus BD, por otro lado la definición de acceso al diccionario se hace a través del ads.ini y tu conectas al alias definido en el ads.ini desde tu programa porque puedes acceder desde una iplocal o a través de una ip remota.
Si no tienes la licencia del servidor remoto, entonces cambia a servidor local y la conexión la estableces de la forma servidorcarpetadiccionario.add y con eso podrás acceder a tus base de datos
Saludos
Héctor García
Responder