Delphi - problemas con Interbase

 
Vista:

problemas con Interbase

Publicado por Maria (2 intervenciones) el 18/04/2008 15:52:49
hola!:
soy un poco novata con delphi pero aún asi tengo q hacer un proyecto que consiste en dar altas, bajas y eliminaciones utilizando como servidor Interbase y uniendolo a Delphi mediante los controles convenientes. Voy a intentar explicarme lo mejor posible para asi que sea más fácil entenderlo.

En mi formulario tengo lo siguiente:
- la conexion con su ibtransaction
- un dbgrid1 ( q muestra algunos campos de una tabla)
- unos dbedit
-dos datasuouce (datasource1 y datasource2)
- un ibtable1 y un ibquery1
- botones de Nuevo, modificar, eliminar

Tengo relacionado el el datasource1, con el ibtable1 y con el dbgrid1.
Por otra parte, tmb tengo relacionado el ibquery1 con el datasource2 que lo que hace es mostrarme toda la información del control que selecciono en el dbgrid ya que en el dbgrid solo me muestra el campo dni y el nombre.

Cuando hago una inserción, llamo a un formulario externo (por manias mias), que tengo tmb dbedit relacionados al ibtable anterior.
Mi problema es que he probado varios modos de insertar pero no me actualiza el ibtable por más que le ponga refresh o lo que sea.
He probado a crear un Dataset y ponerle unit1.mdichild1.ibdataset1.insertsql.add ( sentencia sql)
pero me lo inserta pero no me actualiza nada.
Tambien probé con el la orden post, pero el problema sigue siento el mismo, que no me actualiza la tabla, o mejor dixo, no me actualiza el dbgrid.
Tmb he probado a ponerle refresh y cosas asi, pero sigue sin ir, asi que estoy un poco como al principio pq con el post si q me lo guarda pero no me lo actualiza.
Si no es muxa molestia, agradeceria más que decirme que controles puedo utilizar, como utilizarlos pq a penas llevo una semana con el Delphi y entiendo bastante poco.

Saludos y gracias
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

RE:problemas con Interbase

Publicado por juancho (193 intervenciones) el 18/04/2008 19:51:03
A ver si entendi en parte de lo que dijiste, tu haces lo siguiente con ti IBTable, la verdad es que nunca uso este componente:
IBTable.Append;
IBTable.FieldByName('CAMPO').asString := 'McGuiver'; //por dar un ejemplo.
y luego
IBTable.Post;
IBTable.ApplyUpdates(-1); // o cero igual
Igual asi no te muestra el campo que insertaste, pero se ejecuta la insercion en la base de datos, me avisas si entendi o no, si es asi algo se te esta pasando, es dificil si no veo el codigo.
Sugerencia, no uses IBTable, usa el IBClientDataSet, que es realmente para estos casos.
En otro formulario que veo que lo usas para insercion utilisas el mismo IBTable, o sea lo pasas por propiedad o por una variable publica y lo modificas en el mismo, cierto?.
EL problema quisas sea en que el objeto IBTable esta siendo copiado utilisa un propiedad y no una variable publica para asegurar.
Pero lo mejor es crear un nuevo objeto IBTAble para realisar la insercion, luego verificar si han hecho modificaciones y actualisar tu otro IBTable.
Al menos eso entendi de tu problema.
Cualquier cosa me avisas.
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:problemas con Interbase

Publicado por Maria (2 intervenciones) el 21/04/2008 09:14:17
Puse de código lo siguiente:

IBTable1.Append;
IBTable1.FieldByName('dni_clie').AsString:='0012';
IBTable1.FieldByName('nom_clie').AsString:='prova';
IBTable1.Post;
IBTable1.ApplyUpdates;
unit3.close;

unit1.MDIChild1.IBTable1.Refresh; //esta tabla es la que está en el otro formulario

Pero aun asi, sigue sin ir. Y no me lo actualiza. De hecho, cuando salgo del programa y vuelvo a entrar no me muestra como q se haya guardado el registro.

El IBClientDataSet no lo encuentro por ningún lado. El que tengo es el IBDataSet pero no sé como utilizarlo pq ya lo intenté una vez y no me funcionó.
Siento las molestias y gracias por la ayuda ^_^
Saludos
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:problemas con Interbase

Publicado por Eva (484 intervenciones) el 19/04/2008 18:38:23
Cierra y abre la tabla y el grid se actualizará.
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:problemas con Interbase

Publicado por Maria (1 intervención) el 19/04/2008 22:30:13
Prové eso pero no me funcionaba.
Puse:
ibtable1.close;
ibtable1.open;
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