Página 1 de 1

Posible Bug en TDbfDataSet con ADS

Publicado: Vie Ago 01, 2014 1:46 am
por Gabo
Bueno.. anteriormente deje un post de un error que marca tdbfdataset. he estado investigando y creo que es un bug. si uso un objeto publico del dataset de esta manera

AppData:oDbfDSMaestro:= TDbfDataSet():Create( Self )
WITH OBJECT AppData:oDbfDSMaestro
:cName:= "MOVXRECIBOS.ADT"
:oDataSource:= AppData:oADSdsMain
:lNew:= .T.
:lShared:= .T.
END WITH

NOTA: no estoy abriendo el dataset para abrirlo en el modulo que uso los datos. con el proposito de ver si de esta manera no me marca el error.
El modulo externo donde uso el dataset hago lo siguiente

WITH OBJECT AppData:oDbfDSMaestro
:Close()
:lNew:= .T.
IF ! :Open()
MsgStop( "NO ES POSIBLE ABRIR LA TABLA DE SUCURSALES")
RETURN .F.
ENDIF
END WITH
IF AppData:oDbfDSMaestro:lOpen
MsgStop("ESTA ABIERTO") // AQUI ME MARCA QUE SI ESTA ABIERTO!
ENDIF
AppData:oDbfDSMaestro:GoTop() // Aqui me marca el siguiente error
Descripción: Area de trabajo no usada // OJO ESTE ME MARCA EN TODOS LOS ERRORES
Operación: DBGOTOP
TDBFDATASET:GOTOP (415)
TFORMACCESO:FORMINITIALIZE (74)

Lo curioso del caso es que si uso un objeto tDbfDataset en el mismo modulo y usando el mismo codigo si funciona. no marca ningun error. el dataset publico si se abre el problema es que no encuentra el ALIAS los errores que me marca en los objetos publicos es que el ALIAS no existe.
Saludos

Posible Bug en TDbfDataSet con ADS

Publicado: Vie Ago 01, 2014 5:50 pm
por hgarciaj
Gabo,
No entiendo la necesidad de hacer un objeto público del dataset, puedes hacer referencia al objeto original de la forma Application:omainform:oDatasSet, o bien si necesitas hacerlo imagino que creaste previamente la variable oDbfDSMaestro, que la puedes cargar desde el módulo original de la forma AppDatata:oDbfDSMaestro:=::oDataSet:clone(), yo uso ADS sin problemas desde hace muchos años con diccionario de datos, tablas libres y también con acceso remoto
Si necesitas ayuda con gusto estoy a tus órdenes.

Posible Bug en TDbfDataSet con ADS

Publicado: Sab Ago 02, 2014 4:17 pm
por Gabo
Gracias garcia. pero ya cambie mi codigo creando un dataset en cada modulo que uso las tablas de ads. la intencion era abrir todas las tablas al inicio del programa. pero no me funciono

Posible Bug en TDbfDataSet con ADS

Publicado: Sab Ago 02, 2014 4:57 pm
por hgarciaj
Gabo
yo la abro al principio del programa, y hago referencia a ellas creando un DATA en cada módulo así­
DATA oDbfLocal
y en el evento oncreate del módulo haces
::oDbfLocal:=Applicaction:oMainform:oDbfalinicio
y con eso tienes acceso sin tener que abrir y cerrar BD en cada módulo.
Mira el ejemplo de dbfs o browses no recuerdo bien cual pero en ellos se murestra lo que te digo ... creo que es browses que se abren en folders.