TdbOdbcDirect problema con metodo :Update()

Post Reply
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

TdbOdbcDirect problema con metodo :Update()

Post by Biel EA6DD »

Estoy utilizando la clase TdbOdbcDirect, tengo asignado a un boton que ejecute el metodo Update, el problema es que si se pulsa Ok, y no se ha modificado ningun campo, la sentencia que genera es del tipo

Code: Select all

UPDATE tabla SET WHERE ...
esta cadena al ejutarla produce un error puesto que no hay ningun campo a acuatilizar despues del SET.

Alguna idea para solucionarlo, yo he modificado el metodo :Update la linea que pone

Code: Select all

lRet := ::Execute(cSql, "TDbOdbcDirect:Update()")
por esta otra

Code: Select all

lRet := IF(Empty(::GenUpdate),.T.,::Execute(cSql, "TDbOdbcDirect:Update()")) //Biel
Esto funciona correctamente, pero agradeceria si alguien le ha dado solución por otra via, u otra idea.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post by R.F. »

Biel:

No mates pulgas a cañonazos, hazlo por ADO que va como una moto, sin complicacines de ODBC, DSN, conectores, cursores en memoria ni nada.
Saludos
R.F.
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Post by Biel EA6DD »

Gracias Rene por el consejo, la verdad es que con tOdbc y TDbOdbcDirect me funciona bastante bien.

De todas maneras si que tengo previsto el probar ADO, y si funciona segun lo esperado ir migrando.

Por lo leido, es bastante mas rapido, y eso siempre viene bien.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Vikthor
Posts: 271
Joined: Fri Oct 07, 2005 5:20 am
Location: México

Post by Vikthor »

Biel EA6DD wrote:Gracias Rene por el consejo, la verdad es que con tOdbc y TDbOdbcDirect me funciona bastante bien.

De todas maneras si que tengo previsto el probar ADO, y si funciona segun lo esperado ir migrando.

Por lo leido, es bastante mas rapido, y eso siempre viene bien.
Biel :

Para cuando decidas usa ADO la solución a tu problema se resuelve evaluando el valor de EditMode

EditMode Señala el estado de edición de un registro. Existen tres posibilidades:

Code: Select all

adEditNone.         El registro no se encuentra editado. 
adEditInProgress. El registro se encuentra editado, pero no se ha grabado. 
adEditAdd.           Se ha llamado al método AddNew 
¡ Más sencillo no se puede ! :D
Vikthor
Post Reply