Delphi - actualizar

 
Vista:

actualizar

Publicado por Alegria_final (5 intervenciones) el 02/01/2008 06:29:18
Hola a todos:

Tengo un problema en mi programa, en un form realizo una simple operación de suma de 2 campos y los almaceno en otra variable. para a continuación insertar por medio de una query este dato. bueno el problema que la suma o cualquier operacion que efectue en mi programa solo se actualiza una vez cerrada la aplicacion y esto me genera muchos problemas.

(enlazada con una db en access)

Agradeceria su ayuda, ya que he intentado muchisisisimas cosas y nada.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:actualizar

Publicado por E.T. (1244 intervenciones) el 02/01/2008 17:06:22
Si nos puedes decir que componentes usas para hacer el enlace con tu base de datos, debe ser alguna propiedad de un TTable o un TDataBase
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:actualizar

Publicado por Alegria_feliz (5 intervenciones) el 03/01/2008 00:40:30
Hola:

Los componentes que utilizo son tdatasource, tquery y tdatabase. Espero les sirva esto para que me ayuden.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:actualizar

Publicado por E.T. (1244 intervenciones) el 03/01/2008 17:12:15
Que tal, puede ser lo siguiente, fijate en tu TQuery el cual tiene la propiedad CachedUpdates debe estar en false, creo que puede ser eso, si no se resuelve tu problema, prueba darle refresh a la tdatabase, si no pon mas detalles de tu problema
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:actualizar

Publicado por Alegria_final  (5 intervenciones) el 04/01/2008 16:19:59
Hola E.T:

Te agradezco el tiempo que dedicas en ayudarme, pero para mal fortuna mia con las indicaciones que me das no he logrado dar solución a mi problema.
Te entrego más detalles por si me puedes ayudar, me he dado cuenta que al cerrar el form que contiene el componente mainmenu, es decir cerrando la aplicación inmediatamente se actualizan los datos. (este form contiene todos los otros form del programa)

No se si eso te pueda dar una indicación de mi problema
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:actualizar

Publicado por lcc (14 intervenciones) el 04/01/2008 16:44:26
hola con que instruccion estas ejecutando el Tquery open o execesql
lo otro si el Tquery solo lo utilizas para insertar prueba cerrando el query una ves echa la ejecucion (tquery1.close)
, por lo que dices los datos se estan actualizando una vez cerrado la form donde se ocupa, es por que esta quedando abierto o la ejecucion en memora hasta que se cierre la form.

el problema es como estas utilizando el Tquery.
tambien deberias probar hacer el insert directamente a la tabla usas un componente Ttable

Ttable1.insert;
Ttable1.campo1.asinteger := 1;
Ttable1.campo2.asinteger := 1+2;
Ttable1.campo3.asstring := 'Suma';
Ttable1.post;

el ejemplo insrta un registro en una tabla y se actualiza inmediatamente.
te recomiendo que tambien uses un DataModule para colocar tus objetos Tdatabase, TdataSource, TTable, Tquery, TStoreProcedure , etc..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:actualizar

Publicado por Alegria_final  (5 intervenciones) el 04/01/2008 17:47:37
Hola nuevamente:

la sentencia para insertar es la siguiente:

query2.Close;
query2.params[0].value:= Edit2.text;
query2.params[1].value:= dbedit10.text;
query2.params[2].value:= dbedit11.text;
query2.execsql;

La query utilizada:

UPDATE Producto
SET Cantidad =:cant
WHERE Producto.Cod_bodega =:cbod AND
Producto.Cod_localizacion =:cloc

al activar la query me indica error creating cursor handle.

No se si ese quizas sea ese el problema.

Agradeceria cualquier ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:actualizar

Publicado por E.T. (1244 intervenciones) el 04/01/2008 18:18:46
Probé tu codigo tal y como lo pones aqui, y me funciona bien ni si quiera me da error, hay que checar bien que sea el query correcto el que ejecutas. Ahora, donde intentas ver el resultado del update, en la misma aplicación o en el ODBC, si la tabla de producto está enlazada a otro componente (TTable pienzo que tienes) dale refresh al TTable o Tquery (para el TQuery no se si funcione refresh en tal caso hay que cerrarlo y abrirlo) que apunta a producto despues de ejecutar el query, debe funcionar, pues si intentas (yo lo acabo de hacer) ver los resultados del query en un ttable no te mestra el resultado luego si cierras la aplicación y entras de nuevo ya está pues la TTable se actualiza o toma los datos nuevos

Y lo del error no se que por que te esté saliendo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:actualizar

Publicado por Alegria_final  (5 intervenciones) el 05/01/2008 03:13:23
Hola:

Disculpa por mis preguntas pero no entiendo a que te refieres con query correcto.
Lo que hago es abrir access y ejecutar mi aplicación y veo que no efectua las modificaciones hasta que salgo del software. pensando que solo era por cuestion de la interaccion entre delphi y access ejecute varias sentencias por ejemplo de suma y solo conserva la primera operacion y las otras se pierden en el limbo.
En el caso de cerrar y abrir una tquery como lo hago? por que cuando realizo el update coloco query2.close; . . . .. .query2.execsql. coloco una instruccion a continuacion o dentro de la tquery, espero no molestar pero de verdad no entiendo.
otra consulta no habra que efectuar alguna modificacion al datasource?

Les agradesco el tiempo que dedican en ayudarme.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:actualizar

Publicado por E.T. (1244 intervenciones) el 05/01/2008 18:09:59
Bueno, intenta lo siguiente, crea una nueva base de datos, con una tabla e intenta modificar algun registro, utilizando el metodo que hasta ahorita tienes, pero no modifiques ninguna propiedad del TQuery a escepción del SQL, haber que pasa.

Como obtienes la conexión con tu base de datos: con ODBC o con una StringConnection?

Si quieres, puedes enviarme el form donde intentas hacer el update y una copia de la base de datos y te ayudo con el problema, si me lo envias la pregunta de arriba es importante
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar