Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

El odioso could't perform edit because another user ...

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: El odioso could't perform edit because another user ... Responder citando

Código:


tbTemporalFisico->Close();
tbTemporalFisico->EmptyTable();
qryConsulta->Close();
qryConsulta->SQL->Clear();
qryConsulta->SQL->Add("INSERT into tmp_fisico SELECT 0,existencia,idinsumo,idunidad,nombre_INSUMO as descripcion FROM insumos ");
qryConsulta->ExecSQL();


tbTemporalFisico->Close();
tbTemporalFisico->Open();



TemporalFisico es tambra tmp_fisco que es actualizada por el query..
a, esta raro en algunos registros puede editarla perfectamente pero en otros NOOOO dice la "could't perfom edit because another user has changed record"

NO HAY OTRO PINCHE USUARIO.. NO ENTIENDO.. ayuda porfavor
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Concurrencia Responder citando

Me parece que estas usando IB como BD, el tipo de mensaje denota un control de concurrencia optimista Smile bueno en cualquier caso cuando tienes varios componentes de acceso a tablas apuntando a la misma tabla es como si varios usuarios la estuvieran usando simultaneamente, si por casualidad se afectan el o los mismos registros desde dos angulos distintos nos encontramos con que los ultimos en actualizarse deben fallar.

Prueba lo siguente: verifica que la tabla y query tengan la misma transaccion, dale commit a la transaccion justo despues de vaciar la tabla, o vaciar la tabla con la query "Delete from..."

Cualquier cosa comentanos por aqui...
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Y ano tengo tiempo de seguir revisndo esto, ya llevo 6 meses y ese pinche error sale a veces y no entiendo por que , asumno qeu es un ERROR de c++ builder en su area de bases de datos o del MYOBDC

cambie el codigo al modo que segun ian marteens no se debe usar pero ni modo , que chiste es que funcione, si alguien sabe del por que ese ODIOSOS error agradecere respuesta

Código:

dmDefiniciones->tbInsumos->Open();
tbTemporalFisico->Close();
tbTemporalFisico->EmptyTable();
tbTemporalFisico->Close();
tbTemporalFisico->Open();
dmDefiniciones->tbInsumos->First();
while (dmDefiniciones->tbInsumos->Eof==false)
  {
  tbTemporalFisico->Append();
  tbTemporalFisico->FieldByName("cantidad_fisico")->AsFloat=0;
  tbTemporalFisico->FieldByName("cantidad_sistema")->AsFloat=dmDefiniciones->tbInsumos->FieldByName("existencia")->AsFloat;
  tbTemporalFisico->FieldByName("idinsumo")->AsString=dmDefiniciones->tbInsumos->FieldByName("idinsumo")->AsString;
  tbTemporalFisico->FieldByName("idunidad")->AsString=dmDefiniciones->tbInsumos->FieldByName("idunidad")->AsString;
  tbTemporalFisico->FieldByName("descripcion")->AsString=dmDefiniciones->tbInsumos->FieldByName("nombre_insumo")->AsString;
  tbTemporalFisico->Post();
  //tbTemporalFisico->FlushBuffers();
  dmDefiniciones->tbInsumos->Next();
  }
tbTemporalFisico->First();
dmDefiniciones->tbInsumos->Close();


hace lo mismo pero sin el query del codigo de arriba,todo con tablas
(son tablas cortas de no mas de 100 renglones)
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Grcaias Alfredo hice lo que me dijiste y nada, disculpa, es unca saso raro sin repuesta jeje, creo que suced cuanto mezclas tablas con querys
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

No he parado a mirar el codigo que intentas que te funcione, pero te explico mi caso e igual encuentras por ahi la solucion.

El 95% de las veces que me ocurre el error de que otro usuario ha modificado el registro me da pq utilizo campos en la base de datos que son automaticamente inicializados a un valor, y yo dentro de mi aplicacion esos campos no los toco. Por tanto en mi consulta en Local el valor de ese campo es nulo, y en la base de datos se ha inicializado al valor predeterminado.

Por eso no me concuerdan los datos que yo tengo en mi consulta en local con los que hay en la base de datos, y por eso me dice que hay otro usuario que ha modificado los datos, pero simplemente es el valor predeterminado del campo que se inserta por defecto. ¿Me entiendes por donde voy? Quizas sea ese el problema que tienes.

Salu2 Wink
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

atacaite:
En este caso uso mysql y no tengo definido valores por defecto , como puedes ver en el primer ejemplo del codigo es muy simple
un Query que inserta los datos de una tabla a otra tabla temporal.

Pero por alguna OBSCURA RAOZN algunos de lso campos no pueden ser actualizados por que indica eror

Si cambio ese codigo y omito la consulta de actualizacion y lo hago en cliclso funciona perfectamente (ejemplo del ultimo codigo)

Por otro lado si e slo qu e me indicas en tu mensaje ¿Como lo corriges?
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

A mi nunca me ha pasado ese caso en la base de datos, trabajo con SQL Server pero la base de datos es lo de menos, sin que fuera el problema que te digo. Podria ser un OBSCURO CASO como indicas Very Happy Very Happy Very Happy .

Para solucionarlo lo que tengo que hacer es insertar datos en absolutamente todos los campos de la tabla. No dejar ningun campo sin datos, aunque yo sepa que si no lo toco se me inicializa a 0 por ejemplo, debo meter el 0 en mi consulta para que luego no me cante el dichoso error Confused Confused Confused , lo cual es una putada si tenemos en cuenta que algunas de las tablas con las que trabajo son de 40 campos o mas Crying or Very sad Crying or Very sad Crying or Very sad
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

Descubir en base a lo que me dijiste algo muy raro, cuando tienen mas de 4 decimales me infica el error descrito anteriormente.. ?¿?¿? un error de c++ builder, redondeo los datos y no marca error????

Help
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Es posible que al insertar los datos en la tabla tu insertes mas decimales que los que permite y la base de datos te los recorte y te haga una especie de redondeo, por eso puede que no le concuerden los datos. Prueba a ajustar los datos con la funcion FormatFloat y asi te aseguras de que lo que insertas en la base de datos es lo que realmente te guarda Wink Wink Wink
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

LO solucione redondeando mi tabla de existencias cada vez que sale del modulo de produccion, con eso fijo mis decimales a 2

Grcaias por todo

Pero de todos modos sigo pensando que es un error de myobd o de builder
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.