FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Validaci贸n con ADO
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Validaci贸n con ADO
Posted: Tue May 11, 2010 05: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
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Re: Validaci贸n con ADO
Posted: Tue May 11, 2010 09: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, 2 * 1 TB NVME M.2, GTX 1650
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Validaci贸n con ADO
Posted: Wed May 12, 2010 01: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
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Validaci贸n con ADO
Posted: Wed May 12, 2010 02: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 (fw): Select all Collapse
if oRs:Fields( n ):Value != oRs:Fields( n ):OriginalValue
    lModified := .t.
endif
Regards



G. N. Rao.

Hyderabad, India
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Re: Validaci贸n con ADO
Posted: Wed May 12, 2010 08: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

Continue the discussion