Delphi-Interbase 3 URGENTE

Y siento volver a molestarte, pero no comprendo muy bien la cuestio del insert,modify,delete y esas cuestiones que trae el IBUpdateSQL, hice lo que me dijiste sobre ligarlo con el query y hacer el Generate SQL, pero en cuestion codigo no se como hacerle, ya que obviamente yo quiero agregar en la tabla tanto datos que esten en combobox, edit o variables y pues si uso DataModule1.IBUpdateSQL1.InsertSQL;
Y le aplico el applyupdates que me comentaste, pero realmente no me guarda nada, no se si sea eso lo que tengo que hacer, y si hago un
DataModule1.IBQuery1.SQL.Add('insert into PRODUCTO'); DataModule1.IBQuery1.SQL.Add('(CAMPO1,CAMPO2,CAMPO3)'); DataModule1.IBQuery1.SQL.Add('Values');
Datamodule1. IBQuery1.SQL. Add('variable1, Edit1.text, combobox, etc..')
Me sale un error, "Dynamic SQL Error SQL error code = -206
Column unknown variable1", tal vez cada vez que te escirbo pienses que no se nada, y pues realmente estoy en pañales, es por eso que te hago esas preguntas.

1 respuesta

Respuesta
1
No, no ok deja te explico, creo que se me paso...
Mira ya que tienes todo conectado te olvidas ya del IBUpdateSQL, este componente lo único que hace es permitirle al IBQuery hacer insert, modificaciones, borrar, etc..
Ahora como lo hace, así:
El IBQuery tiene una propiedad llamada Insert la cual al ejecutarla el query te permitirá insertar un nuevo registro, si tienes conectados los DBEdit como te dije notaras que estos se limpian automáticamente al darle IBQuery. Insert; para que asi puedas capturar la informacion.
Ahora como puedo modificar:
Es muy sencillo si te das cuenta cuando abres el IBQuery los DBEdit se cargan automáticamente con el primer registro, bueno pues para modificar lo único que tienes que hacer es ir al DBEdit y modificar directamente lo que tiene escrito, al momento que cambias el texto del DBEdit automáticamente pone al IBQuery en estado de modificación.
Para Borrar un registro lo único que tienes que hacer es IBQuery. Delete; y listo
Ahora después de hacer una modicacion o Insert tienes que darle IBQuery. Post para que grabe y para que sea reflejado inmediatamente en la Base de Datos deberás poner la siguiente linea de código:
En el Evento AfterPost del IBQuery pones: IBQuery1. ApplyUpdates; y así cada vez que des un post automáticamente se ejecutara este evento y los cambios serán reflejados en la base de datos...
Otra cosa te recomiendo que uses DBEdit y uses el DBNavigator el cual ya trae un botones para moverte entre los registros, para insertar, para grabar y para borrar... ok
Hola, si, mira si te entiendo, pero yo no uso los DBEdit, por ejemplo, el primer campo de la tabla que deseo insertar, es una variable entera que determino en el código, no la inserto en un edit, la segunda variable que deseo insertar esta en un combobox, la tercera esta en un edit, la cuarta es de un datetimepicker de la cual tengo que cambiarle el formato por lo que uso una variable, y la quinta es un maskedit, por eso te digo que como le digo al IBQuery1. Insert cual variable va en que lugar, ese vendria siendo mi problema principal, y otra cosa, por ejemplo en el mismo boton donde hago el insert, debo insertar datos en 2 tablas distintas, como diferencia eso el insert, igual el delete y los demas, como les dices que insertar y que borrar,etc. Porque como te digo los DBEdit y DBNavigator solo los uso para consultas, gracias
Primero te recomiendo que empieces a trabajador Programación Orientada a Objectos porque así te vas a ahorrar código y tu sistema sera más rapido... pero bueno por el momento te diré como manejarlo a mano, así como lo tienes tu.:
Mira como dije para Insertar pones IBQuery. Insert; luego capturas la informacion en los componentes que tienes, luego en el evento BeforePost del IBQuery pones lo siguiente: ejemplo para guardar el nombre digamos de una persona en la tabla de personas:
IBQuery1NOMBRE.Value := Edti.Text;
Para que te reconozca IBQyery1NOMBRE simplemente le das doble click al DBQuery1 y aparecerá una ventanita le das sobre la ventanita con el botón derecho del mouse y le das la opción de "Add All Fields" y te agregara automáticamente todos los campos. Y listo
Ahora para grabar en tablas distintas lógicamente con el mismo IBquery no puedes hacerlo tienes que meter otro IBQuery con su IBUpdateSQL. Entonces en pocas palabras lo que tienes que hacer es pasarle los valores de tus componentes (edit, combox... etc) a los campos correspondientes en IBQuery... como te lo mencione antes IBQUeryNOMBRE. Value := Edit1.Text.
Aquí puedo mencionarte que si usuaras DBEdit, DBCombox... etc no tendrías que pones esta linea ya que el componente se conecta directamente al campo y lo modifica...
Bueno saludos no te preocupes no me molesta que me preguntes ok.
Muchas gracias, eso era lo que estaba buscando, pero que bueno que me dices que me empiece a manejar en POO, te agradezco, si tengo más dudas te aviso

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas