TSqLiteDataSource:Table() y Procedures
Publicado: Mar Nov 06, 2007 10:55 am
Cuando intento crear un dataset mediante este metodo de la clase
TSqLite, si lo hago desde un procedure, me devuelve un dataset 'vacio'.
En cambio, si lo creo desde un method, como por ejemplo un OnCreate de
un TDBBbrowse, me lo crea perfectamente. El código en cuestión es este:
//Así, lo crea correctamente
METHOD DBBrowse1Create( oSender ) CLASS FrmUsuarios
LOCAL oDatasetusuarios
oDatasetUsuarios:= AppData:oSqlSource:Table("usuarios")
oDataSetUsuarios:lOpen:=.T.
oSender:oDataset:=oDataSetUsuarios
RETURN Nil
//Así, no.
Procedure CreaDatas()
WITH OBJECT AppData
:AddData("oDataSetUsuarios",:oSqlSource:Table("usuarios"))
END WITH
RETURN
He podido ver que mi objeto oSqlSource, no se inicializa correctamente
hasta que no se ejecuta la aplicación, y si lo 'clono' en una variable
local dentro del procedure, se muestra vacio. En cambio, ya iniciada la
aplicación, toma sus registros correspondientes. ¿Es esto una limitación
de los mismos procedures y estoy obligado a trabajar con ellos una vez
que la aplicación este iniciada?
TSqLite, si lo hago desde un procedure, me devuelve un dataset 'vacio'.
En cambio, si lo creo desde un method, como por ejemplo un OnCreate de
un TDBBbrowse, me lo crea perfectamente. El código en cuestión es este:
//Así, lo crea correctamente
METHOD DBBrowse1Create( oSender ) CLASS FrmUsuarios
LOCAL oDatasetusuarios
oDatasetUsuarios:= AppData:oSqlSource:Table("usuarios")
oDataSetUsuarios:lOpen:=.T.
oSender:oDataset:=oDataSetUsuarios
RETURN Nil
//Así, no.
Procedure CreaDatas()
WITH OBJECT AppData
:AddData("oDataSetUsuarios",:oSqlSource:Table("usuarios"))
END WITH
RETURN
He podido ver que mi objeto oSqlSource, no se inicializa correctamente
hasta que no se ejecuta la aplicación, y si lo 'clono' en una variable
local dentro del procedure, se muestra vacio. En cambio, ya iniciada la
aplicación, toma sus registros correspondientes. ¿Es esto una limitación
de los mismos procedures y estoy obligado a trabajar con ellos una vez
que la aplicación este iniciada?