Validación con ADO

Validación con ADO

Postby jfafive » Tue May 11, 2010 5:00 pm

Hola a todos,

Tengo mas que un problema una duda de planteamiento.

Escribo un formulario de altas o modificaciones donde relleno los gets.
Pero al cerrar la ventana, quiero comprobar si los cambios se han guardado ya.

He pensado hacerlo con una variable chivato o incluso cargando los campos en variables y compararlos con
los nuevos valores introducidos.

Pero no me convence mucho esta estrategia pues la veo un poco "sucia" y complicada.

He oido que el recordset tiene un metodo o propiedad para estos casos y poder comparar si se han guardado las modificaciones.

Si alguien de vosotros se ha visto en esta situación y ha encontrado una solución mas elegante, o sabe si existe ese metodo del recordset, le agradecería lo comentase.

Sería de muy gran ayuda.
Gracias.
:mrgreen:
Javier,
FWH 8.04 2008
jfafive
 
Posts: 396
Joined: Tue Mar 18, 2008 9:41 pm
Location: Marbella

Re: Validación con ADO

Postby Adolfo » Tue May 11, 2010 9:23 pm

Jafive

Simple...
Al traer el recordset, guarda su contenido en un Array..
Edita los campos .. y al validar si sales o no del modo edicion vuelve a comparar el recordset con el array recien guardado... si existe una diferencia del contenido.. obvio que se modifico...

Crea el array asi..

Local miReg:={}
For x= 1 to oRcs:Fields:Count
aadd(miReg, oRcs:Fields( x-1 ):value)
Next

Para Comparar

Local lModificados:=.F.

For x= 1 to oRcs:Fields:Count
If oRcs:Fields( x-1 ):value <> miReg[x]
lModificados:=.T.
Endif
Next
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1650
User avatar
Adolfo
 
Posts: 846
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

Re: Validación con ADO

Postby Armando » Wed May 12, 2010 1:23 am

Jafive:

Algo más simple:

Sintaxis del método GetRows()

array := recordset.GetRows(Rows, Start, Fields )


Mira este tópico
http://sqlcmd.blogspot.com/search?updat ... results=12

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Validación con ADO

Postby nageswaragunupudi » Wed May 12, 2010 2:32 am

oRs:Status
indicates the status of the current record in the recordset.

if oRs:Status is 0 or 8, the record is not modified.
1 -> Newly added record to be saved
2 -> Modified
4 -> Deleted

for other values of oRs:Status, please see
http://www.w3schools.com/ado/prop_rs_status.asp

For comparing with Original values, it is NOT necessary to copy the values into an Array. Every recordset keeps a copy of the Original Values of each field of each record.

oRs:Fields( n ):Value --> Present Value
oRs:Fields( n ):OriginalValue --> Original Value read from the data source.
Code: Select all  Expand view

if oRs:Fields( n ):Value != oRs:Fields( n ):OriginalValue
    lModified := .t.
endif
 
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10248
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Validación con ADO

Postby jfafive » Wed May 12, 2010 8:06 am

Amigos compañeros de camino,

Muchas gracias por vuestra colaboración.
Esperaba una ayuda y me habeis ofrecido varias alternativas todas excelentes.

Muyyy agradecido.
Thank you very much.
:D :D :D
Javier,
FWH 8.04 2008
jfafive
 
Posts: 396
Joined: Tue Mar 18, 2008 9:41 pm
Location: Marbella


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 86 guests