Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Duda al hacer insert con delphi/firebird/IBObjects (https://www.clubdelphi.com/foros/showthread.php?t=73620)

victor2211 05-05-2011 10:32:50

Duda al hacer insert con delphi/firebird/IBObjects
 
Hola a todos, soy nuevo por aqui. El caso esque me han mandado un proyecto en el que debo usar delphi, firebird e Ibojets. Hasta ahora consegi hacer un select y que me recorra los campos usando el IBOquery y el IBOdatabase. Ahora me toca hacer un insert no tengo ni idea de como hacerlo. Nunca e usado delphi y nunca e usado pascal asique estoy un poco pegado. Busque por internet pero no encontre ningun ejemplo, asique cualquier ayuda sera bien recibida. Un saludo a todos y gracias de antemano.

Casimiro Notevi 05-05-2011 11:27:24

Hola, bienvenido a clubdelphi :)
Exactamente, ¿qué quieres hacer?

victor2211 05-05-2011 12:59:00

pues quiero hacer un insert a una tabla, pero ya lo consegi. El problema era que yo estaba usando el IBOquery, y este solo te permite obtener datos pero no midificarlos, asique al final use el IBOTable y ya me hace tanto la consulta, como el insert,delete y modificacion.

ecfisa 05-05-2011 21:46:11

Hola Victor2211.

A modo de aclaración, se pueden modificar datos con un TIBQuery, con la salvedad que en lugar de Open debes usar ExcecSQL.

Como ejemplo:
Código Delphi [-]
var
  SQLStr: string;
begin
  SQLStr:= IBQuery1.SQL.Text;
  IBQuery1.Close;
  IBQuery1.SQL.Clear;
  IBQuery1.SQL.Add('UPDATE CLIENTES SET RAZON = ''PEREZ JUAN''');
  IBQuery1.ExecSQL;
  IBQuery1.Close;
  IBQuery1.SQL.Text:= SQLStr;
  IBQuery1.Open;
end;

Y si hacés uso de CachedUpdates podés de asociarle un TIBUpdateSQL al efecto.


Un saludo.

victor2211 06-05-2011 09:36:11

Cita:

Empezado por ecfisa (Mensaje 399081)
Hola Victor2211.

A modo de aclaración, se pueden modificar datos con un TIBQuery, con la salvedad que en lugar de Open debes usar ExcecSQL.

Como ejemplo:
Código Delphi [-]
var
  SQLStr: string;
begin
  SQLStr:= IBQuery1.SQL.Text;
  IBQuery1.Close;
  IBQuery1.SQL.Clear;
  IBQuery1.SQL.Add('UPDATE CLIENTES SET RAZON = ''PEREZ JUAN''');
  IBQuery1.ExecSQL;
  IBQuery1.Close;
  IBQuery1.SQL.Text:= SQLStr;
  IBQuery1.Open;
end;

Y si hacés uso de CachedUpdates podés de asociarle un TIBUpdateSQL al efecto.


Un saludo.

ok, muchas gracias por la ayuda, lo tendre en cuenta tambien.

rastafarey 19-05-2011 04:50:05

Resp
 
Pon un bdgrid un dbnavigator. Estable ce las relaciones dataset datasuorce etc. Has doble click sobre el tibquiery. click la parte de select sql click en la tabal y click en los campos que quieres insertar o actualizar. luego uodatesql y le das generar las instrcciones el lo hace solito. lo activas y listo. mas facil que pelar mandarina.

coej 19-05-2011 17:17:12

rastafarey , me he quedado en el segundo gajo, en el select, eliges los campos, pero a partir de ahi para que te haga los borrados o updates en las modificaciones... ahi me he perdido, si es que la mandarina...

coej 19-05-2011 17:50:43

es decir, todo esto lo puedes hacer con los botones del dbnavigator, para que el tibquery???, o no he entendido bien como lo quiere hacer victor...

guillotmarc 19-05-2011 18:07:34

Cita:

Empezado por coej (Mensaje 400658)
es decir, todo esto lo puedes hacer con los botones del dbnavigator, para que el tibquery???, o no he entendido bien como lo quiere hacer victor...

Victor ya ha comentado que ha cambiado el IBQuery por un IBTable, puesto que el IBQuery no sirve para hacer inserciones/modificaciones (a menos, claro, que utilices el IBQuery para lanzar manualmente una sentencia INSERT o UPDATE, como bien ha dicho ecfisa). En cualquiera de los casos dbNavigator no nos sirve para hacer inserciones/modificaciones desde un IBQuery (en todo caso habría que cambiarlo por un IBTable o IBDataset, como ha hecho Victor).

Saludos.

coej 19-05-2011 18:15:18

ok, eso si lo he pillado, lo que no entiendo es lo que comenta rastfary, con los borrados y updates desde la propiedad sql del ibquery, eso es lo que no me ha quedado claro...
Yo creo que con el dbnavigator y dbgrid es suficiente, aunque supongo que habrá gente que no le guste así y se haga de otras formas , quizás asociando a botones código asociado el ibquery(que no se si se podra hacer que soy muy novato en esto)...

rastafarey 07-06-2011 05:50:53

Resp
 
A los ibquery debes establecerles las instrccuines sqls. select, insert, update y delete.

HAs doble clic sobre el componente
PAra establecer los sqls.

Para select pestaña SQL. Click sobre la tabal y o sobre los campos y veras como funciona.

Luego pesdtaña UPDATE SQL y le das A generate for table y listo.

ecfisa 07-06-2011 15:01:23

Hola rastafarey.

Puedo estar confundido, pero hasta donde sé, la única forma de usar las propiedades ModifySQL, InsertSQL y DeleteSQL con un TIBQuery es asignándole a la propiedad UpdateObject un TIBUpdateSQL. O de otra forma lanzar una sentencia de ese tipo manualmente.

Saludos.

JPCastro 22-05-2012 16:16:30

Modificar datos a través de un TIBOQuery
 
Hola a todos
Seguramente a estas alturas has podido resolver tu problema Victor, pero escribiré esto por si alguien más consulta esta liga, a manera de aclaración.
Para poder modificar datos con un objeto tIBOQuery, es necesario poner código en tres propiedades: DeleteSQL, EditSQL e InsertSQL, con las respectivas sentencias en sql para hacer la operación respectiva. Esto puede hacerse escribiendo el código directamente en estas propiedades en el inspector de objetos de delphi (una vez que está seleccionado el objeto tIBOQuery, por supuesto) o bien haciendo uso del asistente: se selecciona el objeto, luego botón secundario (generalmente botón derecho del ratón), en el menú contextual seleccionar la opción "Edit query" y aparece el asistente de configuración del objeto, por default en la pestaña SQL, donde se pone la sentencia Select con la cual extraeremos los datos de una tabla; la última pestaña de ese pagecontrol, se llama UpdateSQL, ahí están en tres secciones las propiedades referidas, y dos botones "Generate for table" y "Generate for procedure", al dar click llenará los espacios respectivos con el código SQL para hacer el UPDATE, INSERT y DELETE.

Una vez hecho esto, se pueden hacer las operaciones de modificación a la tabla referida.

Saludos.


La franja horaria es GMT +2. Ahora son las 23:56:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi