FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
problemas con inserciones, modificaciones y eliminaciones en Interbase con Delphi
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 Sé que esto puede ser largo de explicar pero sé como hacer cosas con bases de datos, aunque no en delphi pero por más cosas que he probado no puedo hacer nada ya que no consigo que me actualice los datos . Saludos y gracias |
#2
|
||||
|
||||
Has creado las correspondientes sentencias de Inserción, Modificación, Borrado y Actualización para los TIBTable y TIBQuery que tienes ?
Para ello deberas hacer Click derecho encima del componente y elegir 'Dataset Editor', o también lo puedes hacer a través de las propiedades correspondientes (InsertSQL, ModifySQL, DeleteSQL, RefreshSQL).
__________________
Piensa siempre en positivo ! |
#3
|
|||
|
|||
No utilices un TIBQuery para hacer el alta y un TIBTable para ver la tabla.
Recuerda, si ejecutas un insert sobre la base de datos a través de un TIBQuery, tu TIBTable no se entera, hasta que no se cierra y se vuelve a abrir, porque es una base de datos cliente-servidor. Si defines un TIBUpdateSQL y lo vinculas al TIBTable, y luego ejecutas el alta con el método Insert del TIBTable. Recomendación personal: acostumbrate a usar el TIQuery, y combinado con el TIBUpdateSQL, podrás hacerlo todo, tablas simples, consultas complejas, procedimientos que devuelven resultados... Última edición por iuqrul fecha: 17-04-2008 a las 13:03:28. |
#4
|
|||
|
|||
Cita:
ibtable1.insert //comprobaciones de los datos q se han introducido ibtable1.post también prove de poner esto: IBUpdateSQL1.InsertSQL.Add('INSERT INTO Cliente(dni_clie) VALUES ( ''' + dbedit1.Field.AsString + '' + ')'); pero me da error. Siento si me equivoco en tonterias pero es que hasta ahora solo habia programado en Visual Basic y en C++ y este lenguaje lo estoy utilizando desde hace 2 semanas. Saludos y gracias por la ayuda. Última edición por Nereida fecha: 17-04-2008 a las 14:46:58. |
#5
|
||||
|
||||
Hola Nereida
Creo que te seria util leer la cara oculta de delphi 4... te puede aclarar varias cosas...Tambien te recomendaria que te dieras una buelta por la Wiki.. tambien existen varios ejemplos Bueno... pasando a tu tema... Yo trabajo con Interbase 6, Delphi 7 y componente IBX Cuando desarrollo un proyecto, creo un Formulario de Tipo DataModule... lo nombro como Datos y en él dejo todos los componentes IBX para conexión al Interbase... estos son: -( 1 ) TIBDatabase -> conexión a la base... direcion..ruta..archivo -( n ) TIBQuery -> conexión a tablas y/o procesos de actualización de registros -( n ) TIBTransaction (hacer doble click y dejar en Read Committed para reflejar actualizaciones) Para insertar un registro, utilizo un codigo similar al que sigue
Bueno... espero que este código te sea de ayuda.. cualquier cosa..sigue preguntando.. Salu2
__________________
BlueSteel |
#6
|
|||
|
|||
Debes cumplimentar el TIBQuery.SQL.Text con la consulta sobre la que vas a modificar, y en el TIBUpdateSQL.RefreshSQL pones lo mismo pero añadiendo "where ID=:ID" sustituyendo ID por el campo de la clave primaria.
|
#7
|
|||
|
|||
Cita:
IBUpdateSQL1.SQL.Text:='UPDATE Cliente SET nom_clie = ''' + dbedit2.field.AsString + ''; pero me decia q esperaba un [ en vez de un punto pq me parece q tenia q ponerle algo en la propiedad de SQL pq cuando la ponia me decia q pusiera el tipo, por lo q prové a poner modifySQL pero no lo reconocia después puse: unit1.MDIChild1.IBUpdateSQL1.modifySQL.Add('UPDATE Cliente SET nom_clie = ''' + dbedit2.field.AsString + ''); unit1.MDIChild1.IBUpdateSQL1.RefreshSQL.Add ('UPDATE Cliente SET nom_clie = ''' + dbedit2.field.AsString + ''' + WHERE dni_clie= ' + dbedit1.Field.AsString); pero me da error con las claves primarias. Siento ser tan pesada pero es que me cuesta mucho. Saludos y gracias a todos |
#8
|
|||
|
|||
Cita:
Muchas gracias Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problemas con inserciones masivas | gusanita | Conexión con bases de datos | 2 | 16-12-2005 06:40:37 |
Modificaciones DBGrid Delphi 7 | damix | Varios | 4 | 15-11-2005 19:43:32 |
Eliminaciones en cascada. | zugazua2001 | SQL | 4 | 04-07-2005 18:36:10 |
Problemas de inserciones con ADO | Mauro.NET | Conexión con bases de datos | 2 | 27-04-2005 05:18:36 |
Problemas en inserciones | tica | Conexión con bases de datos | 2 | 09-12-2003 17:41:24 |
|