Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-11-2011
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Insertar registros desde Ibquery

Hola gente:
La idea es ir dejando paulatinamente el uso de IBtable para el alta de registros. Lo que necesito es que me orienten en cuanto a la instruccion SQL para hacer tal operacion.
La base de datos es Firebird. Por ejemplo si tengo una tabla de cliente con algunos campos como para orientar (CtaCte, Apellido, Nombre, Domicilio, Etc.) que componentes uso para cargar los datos (Dbedit o Edit) y como se asigna ese valor del componente en la instruccion SQL.

Gracias de antemano.-
Responder Con Cita
  #2  
Antiguo 17-11-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
yo tengo un catalogo de clientes, el cual obtengo con un query

y lo que me funciona es hacer el edit, post, delete al mismo query, asl ser "vivo" actualizara la data en la tabla
lo que quiero decirte es que funciona igual (al menos para mi), ya sea en tabla o en query
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 17-11-2011
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Creo que lo más apropiado sería utilizar un componente IbDataSet le das el SQL para que cargue los datos mediante un asistente y puedes generar automáticamente su comportamiento ante una instrucción Delete, Update, Insert...

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #4  
Antiguo 17-11-2011
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Gracias por la prontitud en la respuesta. Hasta ahi entiendo. Mi problema radica en dos puntos.

Primero que no se como asociar por SQL del Ibquery un valor que doy entrada por un TEdit a la base de datos (Se que la instruccion es insert to pero no se como usarla) y tambien que se usan parametros indicando los campos que tampoco he manejado nunca.

Segundo no tengo ni idea como usar el Ibdataset. Esta bueno porque aparecen todas las operaciones que necesita la base de datos pero no se como asignarle los campos y su enlace con los componentes de edición ...
Responder Con Cita
  #5  
Antiguo 17-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Cien por ciento de acuerdo con Marcos. El TIBDataSet es tan eficiente como un TIBQuery y más sencillo de usar que ella en inserciones y modificaciones.

Pero si prefieres hacer la inserción mediante una consulta, sería algo así:
Código Delphi [-]
  with IBQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('INSERT INTO CLIENTES(CTACTE, APELLIDO, NOMBRE, DOMICILIO)');
    SQL.Add('VALUES(:CTACTE, :APELLIDO, :NOMBRE, :DOMICILIO)');
    ParamByName('CTACTE').AsString:= '0000000001';
    ParamByName('APELLIDO').AsString:= ComboBox1.Text;
    ParamByName('NOMBRE').AsString:= Edit1.Text;
    ParamByName('DOMICILIO').AsString:= FDomicilio;
    ExecSQL;
  end;
Ejemplifiqué las asignaciones a parámetros mediante una constante, dos propiedades y la última con una variable para darte una mejor idea.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 17-11-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por MartinS Ver Mensaje
Gracias por la prontitud en la respuesta. Hasta ahi entiendo. Mi problema radica en dos puntos.

Primero que no se como asociar por SQL del Ibquery un valor que doy entrada por un TEdit a la base de datos (Se que la instruccion es insert to pero no se como usarla) y tambien que se usan parametros indicando los campos que tampoco he manejado nunca.

Segundo no tengo ni idea como usar el Ibdataset. Esta bueno porque aparecen todas las operaciones que necesita la base de datos pero no se como asignarle los campos y su enlace con los componentes de edición ...
me parece que en lugar del EDIt deberias usar DBEDIT, solo es cuestion de asociar el datasource del query a los dbedist y puedas realizar las operaciones normales (append, edit, delete)
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #7  
Antiguo 17-11-2011
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Gracias gente.... a eso me referia. La santa instruccion en SQL para agregar registros...
A modo de informacion, hace un mes y algo que empece con Firebird y si bien no parece dificil el acostumbrarse a dejar las bases de escritorio suele ser complicado... Gracias nuevamente.
Responder Con Cita
  #8  
Antiguo 17-11-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Mira este tutorial del compañero Caral.
Responder Con Cita
  #9  
Antiguo 17-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Segundo no tengo ni idea como usar el Ibdataset.
Es muy sencillo, estando seleccionado el TIBDataSet:

Desde el Object Inspector:
  • Asignar la propiedad Database.
  • Click sobre los (...) de la propiedad SelectSQL -> doble click para seleccionar la tabla (genera cuasi consulta) -> seleccionar el/los campos -> click en Add Field to SQL -> Ok ( o escribí la consulta manualmente )
  • Posicionado sobre el componente TIBDataSet, click derecho del mouse -> DataSet Editor -> Select Primary Keys (seleccionala/s) -> Generate SQL -> Ok.
Y si no me olvidé de nada... Eso es todo

Saludos.

Edito: Ya sabía que de algo me olvidaba... Muy buena la sugerencia de Casimiro. (que no había visto mientras escribía)
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 17-11-2011 a las 22:16:58.
Responder Con Cita
  #10  
Antiguo 17-11-2011
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Ok. Estuve probando y esta bueno, practico y rapido. Ahora debo crear un Ibdataset para cada tabla o puedo incorporar todas la tablas en el mismo.
y abusando de vuestra sabiduria. Cuando doy de alta a un registro por ejemplo como ejecuto la sentencia escrita en insertSql??
Responder Con Cita
  #11  
Antiguo 17-11-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por MartinS Ver Mensaje
Ok. Estuve probando y esta bueno, practico y rapido. Ahora debo crear un Ibdataset para cada tabla o puedo incorporar todas la tablas en el mismo.
y abusando de vuestra sabiduria. Cuando doy de alta a un registro por ejemplo como ejecuto la sentencia escrita en insertSql??
Para empezar, olvida la forma de trabajar con "tablas", debes pensar en "consultas":
Que estás buscando el nombre, teléfono y dirección de un cliente por su código, entonces:
Código SQL [-]
select nombre, telefono, direccion from tbclientes where codigo= :sucodigo
Que estás buscando el precio de venta de un artículo:
Código SQL [-]
select precioventa por tbarticulos where codigoarticulo= :sucodigo
etc.
etc.
¡¡¡Pero olvida las tablas!!!. un componente tabla es lo mismo que:
Código SQL [-]
select * from latabla"
, un derroche total e innecesario

Y por favor, preguntas distintas en hilos distintos, sigue nuestra guía de estilo, gracias.
Aunque en el tutorial que te he indicado antes tienes la respuesta a tu pregunta y muchas más.
Responder Con Cita
  #12  
Antiguo 17-11-2011
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Gracias casimiro. No me retes Jaja.. El instructivo del amigo caral ya lo habia utilizado para crear la base y demas. Lo que pretendia es si con la sentencia

Código Delphi [-]
ibDataset1.Post

se logra la ejecucion de los escrito en la propiedad InsertSQL del Dataset.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Insertar registros desde un query escorpionrojo43 SQL 3 17-07-2011 04:20:28
insertar registros sql con delphi anubis SQL 6 22-12-2010 20:28:16
Interbase - Insertar Modificar eliminar IBQuery?? ledesmarc Firebird e Interbase 5 31-03-2009 20:12:37
insertar registros hxochitemol Conexión con bases de datos 1 02-06-2007 01:21:56
Insertar registros desde un fichero gdb a otro gdb glopez Firebird e Interbase 1 08-02-2006 02:04:39


La franja horaria es GMT +2. Ahora son las 10:02:57.


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
Copyright 1996-2007 Club Delphi