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.

MEMDATASET

Foro público de Xailer en español
Responder
Arturo
Mensajes: 77
Registrado: Jue Abr 22, 2010 2:39 pm

MEMDATASET

Mensaje 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
jrcpoli-quitar
Mensajes: 558
Registrado: Mar Feb 09, 2010 2:26 pm

MEMDATASET

Mensaje 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
>
>
jrcpoli-quitar
Mensajes: 558
Registrado: Mar Feb 09, 2010 2:26 pm

MEMDATASET

Mensaje 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
>>
>>
>
Christian
Mensajes: 290
Registrado: Mié Abr 23, 2008 10:18 pm

MEMDATASET

Mensaje 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
>>>
>>>
>>
>
Responder