| |
Membre enregistré 12 messages |
|
Posté le 09 mars 2014 - 02:00 |
Hola, tengo una aplicación que conecta por ODBC a una base VFP9, lo tengo definido en el análisis y todo bien, pero cuando abro dos veces la aplicación y proceso, me da un error en hmodify Si alguien me puede ayudar por favor.
ODBC/OLEDB (provider=MSDASQL) access error. Error Number = 170147 Description = Error en la actualización basada en consultas: no se encontró la fila para actualizar. Source = Microsoft OLE DB Provider for ODBC Drivers Error Number = -2147467259 (0x80004005)
Description = La operación de múltiples pasos de OLE DB generó errores. Compruebe los valores de estado de OLE DB si es posible. No se realizó ningún trabajo. Source = Microsoft OLE DB Provider for ODBC Drivers Error Number = -2147217887 (0x80040e21) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 60 messages Popularité : +2 (2 votes) |
|
Posté le 10 mars 2014 - 13:43 |
Hola Javier, confirmame si estoy entendiendo: estás abriendo la aplicación 2 veces, en una de las instancias hacés la modificación del registro (HModify) y la operación se realiza, ahora en la 2da instancia intentás modificar el mismo registro y ahí te genera error ? Es así como sucede ?
Saludos, friss. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 12 messages |
|
Posté le 10 mars 2014 - 15:49 |
exactamente, eso sucede.
Gracias. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 60 messages Popularité : +2 (2 votes) |
|
Posté le 10 mars 2014 - 16:52 |
OK Javier, esto es lo que me parece que está pasando: cuando intentas hacer la modificación por segunda vez los datos del registro están cambiados desde la última lectura (sería un problema de concurrencia); entonces podrías probar en tu código de volver a leer ese registro primero (que ya sabes que cambió) y luego sí concretar la modificación con HModify() a ver si de esta manera el error desaparece.
Si podés probalo y avisame si funciona.
Saludos, friss. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 51 messages Popularité : +2 (2 votes) |
|
Posté le 12 mars 2014 - 09:42 |
Hola Parece ser que el mal te viene al estar trabajando con una consulta. Al no trabajar directamente con la tabla cualquier modificación que hagas la pierdes, si no utilizas algún sistema para grabar las modificaciones que hagas. El HModify no hace nada si se trata de una consulta.
-- Salvador Soler. www.windeveloper.es s.soler@serival.es |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 12 messages |
|
Posté le 12 mars 2014 - 15:09 |
Les cuento que al hacerlo con instrucción SQL Update ahí si me actualiza la tabla y no me da error pero con hmodify me salta el error. incluso volviendo a leer el registro con hreadfirst ya que la tabla contiene sólo un registro con números de control secuenciales que son los que actualizo al hacer las transacciones. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 60 messages Popularité : +2 (2 votes) |
|
Posté le 12 mars 2014 - 16:14 |
Hola Javier, podrías subir el código que estás utilizando (con HModify que te da error)? Así podemos determinar un poco mejor que puede estar sucediendo.
Saludos, friss. |
| |
| |
| | | |
|
| | |
| |
Posté le 12 mars 2014 - 20:32 |
Al 12/03/2014 14:09, En/na JAVIER / Javier ha escrit:
Les cuento que al hacerlo con instrucción SQL Update ahí si me actualiza la tabla y no me da error pero con hmodify me salta el error. incluso volviendo a leer el registro con hreadfirst ya que la tabla contiene sólo un registro con números de control secuenciales que son los que actualizo al hacer las transacciones.
Mi experiencia es que para trabajar con tablas de VFP, lo mejor es utilizar OLEDB y instrucciones SQL. Piensa que los conectores de VFP no se actualizaron desde la versión 7 o la 8. por lo que muchas funciones (desencadenantes de tablas, reglas de validación,...) y algunos tipos de datos (autoincremental,..) no estan soportados por ellos. En muchos casos hay que utilizar tablas puente para incorporar posteriormente los datos a VFP9.
Un saludo. Raül Vidiella |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 12 messages |
|
Posté le 12 mars 2014 - 20:58 |
este es el código, lo que está como comentario es el que me da problema, como ves no es nada del otro mundo:
PROCEDURE Integra_Cartera(secinv,nProceso) nSecuencial is int HReadFirst(parametroc) nSecuencial=parametroc.secuencial+1 //parametroc.secuencial=nSecuencial //HModify(parametroc)
QRY_actualiza_ParametroC.Param1=nSecuencial HExecuteQuery(QRY_actualiza_ParametroC) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 60 messages Popularité : +2 (2 votes) |
|
Posté le 13 mars 2014 - 15:04 |
Es cierto Javier, es muy simple el código; podrías probar de utilizar OLEDB como comenta Raül en lugar de ODBC como tenés ahora, si es viable para tu caso.
Para mí el problema está en que la segunda conexión no se da cuenta de los cambios en los datos que hiciste con la primera, ya que según tu primer post dijiste que el HModify te funciona en la primera instancia (podrías por ejemplo mostrar el valor del campo secuencial antes de grabar para ver su valor). Si abrís la aplicación y grabás, y luego abrís una segunda aplicación y grabás, también se genera el error ?
Saludos, friss. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 12 messages |
|
Posté le 13 mars 2014 - 19:27 |
Sabes que si me lee el registro con hreadfirst y me da el secuencial que corresponde pero en el hmodify sale el error, además lo que me doy cuenta lo siguiente:
Tengo abierto el programa dos instancias. proceso en la primera y pasa bien, proceso en la segunda y pasa bien, regreso a la primera y proceso y ahí es que da el error en el hmodify.
es un programa de punto de venta y por eso necesito tener abierto varias instancias, lo hago con odbc hasta migrar todo el erp a hf server.
Saludos, Javier |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 60 messages Popularité : +2 (2 votes) |
|
Posté le 14 mars 2014 - 15:16 |
OK Javier, entonces va a ser mejor que uses instrucciones SQL hasta que migres el TPV a HFSQL.
Saludos, friss. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 12 messages |
|
Posté le 14 mars 2014 - 16:42 |
Si, por el momento voy a usarlo, agradezco mucho todos sus comentarios ya que me dan otros puntos de vista muy útiles.
Saludos, Javier |
| |
| |
| | | |
|
| | |