Página 1 de 1

MEMDATASET

Publicado: Lun Feb 22, 2010 1:47 pm
por Arturo
Hola,
existe algún problema con los oMemdataset ???????
no consigo añadir un simple registro.....
FOR i:=1 TO LEN(::oTableMDB:aFields) //-----> (20)
WITH OBJECT ::oMemDataSet1
:fastAddNew()
:CAMPO_MDB :="algo"
:fastUpdate()
:gotop()
msgalert(:CAMPO_MDB) //aki me devuelve NIL siempre
END WITH
NEXT
/********************************************************/
METHOD MemDataSet1Create( oSender ) CLASS TForm1
WITH OBJECT oSender
WITH OBJECT :AddField( "CAMPO_MDB" )
:cType := "C"
:nLen := 20
END WITH
:Open()
END WITH
RETURN Nil
/********************************************************/
alguna ayuda??
gracias

MEMDATASET

Publicado: Mar Feb 23, 2010 12:32 pm
por jrcpoli-quitar
Saludos:
Veo que nadie con mas experiencia en el uso de MemDataSet te contesta
por lo tanto no quiero que te quedes sin alguna respuesta, he estado
mirando como creas el MemDataSet y creo que está equivocado según la
ayuda el MemDataSet esta Formado por dos Arrays el primero contiene los
datos y el segundo los nombres de la cabecera del MemDataSet, la forma
de hacer la estructura del MemDataSet es la misma que si usaras la
instrucción DbCreate por lo tanto es un array no como lo haces, mira los
ejemplos que hay en el directorio Samples->DataControl, creo que te
servirán de orientación, también mira la ayuda TMemDataSet.
José Ramón Castro.
Arturo escribió:
> Hola,
> existe algún problema con los oMemdataset ???????
> no consigo añadir un simple registro.....
>
> FOR i:=1 TO LEN(::oTableMDB:aFields) //-----> (20)
>
> WITH OBJECT ::oMemDataSet1
> :fastAddNew()
> :CAMPO_MDB :="algo"
> :fastUpdate()
> :gotop()
> msgalert(:CAMPO_MDB) //aki me devuelve NIL siempre
> END WITH
>
> NEXT
>
>
> /********************************************************/
> METHOD MemDataSet1Create( oSender ) CLASS TForm1
> WITH OBJECT oSender
> WITH OBJECT :AddField( "CAMPO_MDB" )
> :cType := "C"
> :nLen := 20
> END WITH
> :Open()
> END WITH
> RETURN Nil
> /********************************************************/
>
>
>
> alguna ayuda??
> gracias
>
>

MEMDATASET

Publicado: Mar Feb 23, 2010 1:06 pm
por jrcpoli-quitar
Saludos:
He encontrado un ejemplo que te puede sirver de orientación cuando como
en tu caso quieres crear un MemDataSet desde nuevo.
/*
* Proyecto: Prueba
* Fichero: prueba.prg
* Descripción:
* Autor:
* Fecha: 22/10/2009
*/
#include "Xailer.ch"
CLASS Tprueba1 FROM TForm
COMPONENT oDBBrowse1
COMPONENT oButton1
COMPONENT oButton2
COMPONENT oDBBrowse1Column1
COMPONENT oMem
COMPONENT oLabel1
METHOD CreateForm()
METHOD FormShow( oSender )
METHOD CalculaTotales()
METHOD DBBrowse1KeyDown( oSender, nKey, nFlags )
ENDCLASS
#include "Prueba1.xfm"
//---------------------------------------------------------- --------------------
METHOD FormShow( oSender ) CLASS Tprueba1
Local cSelect
Local aDatosR
Local aDatos
Local aHead := { "row_id","Codexa" ,"Nomexa"
,"Valor","Descto","Obsexa" }// Cabecera de las columnas
Local aDefault := {{ 0 ,Space(8) ,Space(30) ,0.00 ,0.00
,Space(250)}} // Valores por defecto del MemDataSet
::oMem:Close()
::oMem:Open(aDeFault, aHead)
::CalculaTotales()
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD CalculaTotales() CLASS Tprueba1
MsgAlert(::oMem:valor,"Contenido de Columna Valor ")
MsgAlert(Valtype(::oMem:valor),"Tipo de Dato Columna VAlor ")
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD DBBrowse1KeyDown( oSender, nKey, nFlags ) CLASS Tprueba1
DO CASE
CASE nKey==VK_INSERT
::oMem:AddNew()
::oMem:Codexa := Space(8)
::oMem:Update()
::CalculaTotales()
ENDCASE
RETURN Nil
//---------------------------------------------------------- --------------------
José Ramón Castro Polinio escribió:
> Saludos:
>
> Veo que nadie con mas experiencia en el uso de MemDataSet te contesta
> por lo tanto no quiero que te quedes sin alguna respuesta, he estado
> mirando como creas el MemDataSet y creo que está equivocado según la
> ayuda el MemDataSet esta Formado por dos Arrays el primero contiene los
> datos y el segundo los nombres de la cabecera del MemDataSet, la forma
> de hacer la estructura del MemDataSet es la misma que si usaras la
> instrucción DbCreate por lo tanto es un array no como lo haces, mira los
> ejemplos que hay en el directorio Samples->DataControl, creo que te
> servirán de orientación, también mira la ayuda TMemDataSet.
>
> José Ramón Castro.
>
> Arturo escribió:
>> Hola,
>> existe algún problema con los oMemdataset ???????
>> no consigo añadir un simple registro.....
>>
>> FOR i:=1 TO LEN(::oTableMDB:aFields) //-----> (20)
>>
>> WITH OBJECT ::oMemDataSet1
>> :fastAddNew()
>> :CAMPO_MDB :="algo"
>> :fastUpdate()
>> :gotop()
>> msgalert(:CAMPO_MDB) //aki me devuelve NIL siempre
>> END WITH
>>
>> NEXT
>>
>>
>> /********************************************************/
>> METHOD MemDataSet1Create( oSender ) CLASS TForm1
>> WITH OBJECT oSender
>> WITH OBJECT :AddField( "CAMPO_MDB" )
>> :cType := "C"
>> :nLen := 20
>> END WITH
>> :Open()
>> END WITH
>> RETURN Nil
>> /********************************************************/
>>
>>
>>
>> alguna ayuda??
>> gracias
>>
>>
>

MEMDATASET

Publicado: Jue Feb 25, 2010 1:15 pm
por Christian
Hola Arturo el metodo FastUpdate me parece no es de la clase tMemDataSet
usa Append.
José Ramón Castro Polinio escribió:
> Saludos:
>
> He encontrado un ejemplo que te puede sirver de orientación cuando como
> en tu caso quieres crear un MemDataSet desde nuevo.
>
> /*
> * Proyecto: Prueba
> * Fichero: prueba.prg
> * Descripción:
> * Autor:
> * Fecha: 22/10/2009
> */
>
> #include "Xailer.ch"
>
> CLASS Tprueba1 FROM TForm
>
> COMPONENT oDBBrowse1
> COMPONENT oButton1
> COMPONENT oButton2
> COMPONENT oDBBrowse1Column1
> COMPONENT oMem
> COMPONENT oLabel1
>
>
> METHOD CreateForm()
> METHOD FormShow( oSender )
> METHOD CalculaTotales()
> METHOD DBBrowse1KeyDown( oSender, nKey, nFlags )
>
> ENDCLASS
>
> #include "Prueba1.xfm"
>
> //---------------------------------------------------------- --------------------
>
>
> METHOD FormShow( oSender ) CLASS Tprueba1
>
> Local cSelect
> Local aDatosR
> Local aDatos
> Local aHead := { "row_id","Codexa" ,"Nomexa"
> ,"Valor","Descto","Obsexa" }// Cabecera de las columnas
> Local aDefault := {{ 0 ,Space(8) ,Space(30) ,0.00 ,0.00
> ,Space(250)}} // Valores por defecto del MemDataSet
>
> ::oMem:Close()
> ::oMem:Open(aDeFault, aHead)
> ::CalculaTotales()
>
> RETURN Nil
>
> //---------------------------------------------------------- --------------------
>
>
> METHOD CalculaTotales() CLASS Tprueba1
>
> MsgAlert(::oMem:valor,"Contenido de Columna Valor ")
> MsgAlert(Valtype(::oMem:valor),"Tipo de Dato Columna VAlor ")
>
> RETURN Nil
>
> //---------------------------------------------------------- --------------------
>
>
> METHOD DBBrowse1KeyDown( oSender, nKey, nFlags ) CLASS Tprueba1
> DO CASE
> CASE nKey==VK_INSERT
> ::oMem:AddNew()
> ::oMem:Codexa := Space(8)
> ::oMem:Update()
> ::CalculaTotales()
> ENDCASE
>
> RETURN Nil
>
> //---------------------------------------------------------- --------------------
>
>
> José Ramón Castro Polinio escribió:
>> Saludos:
>>
>> Veo que nadie con mas experiencia en el uso de MemDataSet te contesta
>> por lo tanto no quiero que te quedes sin alguna respuesta, he estado
>> mirando como creas el MemDataSet y creo que está equivocado según la
>> ayuda el MemDataSet esta Formado por dos Arrays el primero contiene los
>> datos y el segundo los nombres de la cabecera del MemDataSet, la forma
>> de hacer la estructura del MemDataSet es la misma que si usaras la
>> instrucción DbCreate por lo tanto es un array no como lo haces, mira los
>> ejemplos que hay en el directorio Samples->DataControl, creo que te
>> servirán de orientación, también mira la ayuda TMemDataSet.
>>
>> José Ramón Castro.
>>
>> Arturo escribió:
>>> Hola,
>>> existe algún problema con los oMemdataset ???????
>>> no consigo añadir un simple registro.....
>>>
>>> FOR i:=1 TO LEN(::oTableMDB:aFields) //-----> (20)
>>>
>>> WITH OBJECT ::oMemDataSet1
>>> :fastAddNew()
>>> :CAMPO_MDB :="algo"
>>> :fastUpdate()
>>> :gotop()
>>> msgalert(:CAMPO_MDB) //aki me devuelve NIL siempre
>>> END WITH
>>>
>>> NEXT
>>>
>>>
>>> /********************************************************/
>>> METHOD MemDataSet1Create( oSender ) CLASS TForm1
>>> WITH OBJECT oSender
>>> WITH OBJECT :AddField( "CAMPO_MDB" )
>>> :cType := "C"
>>> :nLen := 20
>>> END WITH
>>> :Open()
>>> END WITH
>>> RETURN Nil
>>> /********************************************************/
>>>
>>>
>>>
>>> alguna ayuda??
>>> gracias
>>>
>>>
>>
>