Page 1 of 1

TdbOdbcDirect problema con metodo :Update()

Posted: Thu Oct 05, 2006 9:13 am
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.

Posted: Thu Oct 05, 2006 7:28 pm
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.

Posted: Mon Oct 09, 2006 2:29 pm
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.

Posted: Wed Oct 11, 2006 2:13 pm
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