Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-08-2006
servicomp servicomp is offline
Miembro
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 153
Poder: 21
servicomp Va por buen camino
Wink Adicionar Registros con SQL

Anteriormente solicite la ayuda del foro para resolver un problema sobre como adicionar registro en una base datos en interbase usando delphi y conactandola mediante IBX

Le he hecho caso a mis compañeros y tengo una Edit donde capturo la información que debe de ir en el campo llave, y unos DBEdit donde se captura la información Complementaria. Tengo en la forma un boton que me permite grabar la información.

En el boton de grabar tengo el siguiente codigo:

Código Delphi [-]
DataM.IBDataSet1.Open;
DataM.IBDataSet1.Append;
Edit1.SetFocus;
En el IBDataSet en el SQL Select tenemos algo asi:
Código SQL [-]
INSERT INTO TABLA1 (CAMPO1, CAMPO2, CAMPO3) VALUES (:CAMPO1, :CAMPO2, :cAMPO3)
El campo1 es el campo llave.

Al Activar el botón de grabar, graba la información con excepción del campo llave que se encuentra en Edit1.Text.

Creo que debo agregar una instrucción asi
Código SQL [-]
INSERT INTO TABLA1 (CAMPO1, CAMPO2, CAMPO3) VALUES (:edit1.text, :CAMPO2, :cAMPO3)

Lo que pasa es que si inserto este tipo de instrucción no se me activa el IBDataset1.

Si debo de agregarlo en el evento del boton grabar como lo debo de hacer.

Agradeciendo su ayuda
Responder Con Cita
  #2  
Antiguo 07-08-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Cita:
Empezado por servicomp
Código Delphi [-]
DataM.IBDataSet1.Open;
DataM.IBDataSet1.Append;
Edit1.SetFocus;
Solo eso?
Creo que hace falta algo! Algo como:
Código Delphi [-]
DataM.IBDataSet1.ParamByName('campo1').AsString:=ValordelCampo;//Variable o valor que tomará este campo.
//Y asi con los demas campos
DataM.IBDataSet1.Post;
//Finalmente Guardar.

La 1ra sentencia está bién, la segundo no es valida.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #3  
Antiguo 07-08-2006
servicomp servicomp is offline
Miembro
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 153
Poder: 21
servicomp Va por buen camino
Field 'campo1' no found

he insertado en el codigo para el boton grabar lo siguiente
Código Delphi [-]
DataM.IBDataSet1.ParamByName('campo1').AsString:=Edit1.Text;
DataM.IBDataSet1.Post;

El campo1 es de tipo char de 10

al compilar y ejecutar ingresar la información y pulsar el boton grabar nos da el mensaje
Código:
Field 'campo1' no found
como hacemos o en que podemos fallar

agradecemos su ayuda de antemano
Responder Con Cita
  #4  
Antiguo 07-08-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Ese error me indica que en la tabla no existe campo llamando "campo1".

Como se llama el campo llave?

Esta es la sentencia real que tienes en el Dataset??
Código SQL [-]
INSERT INTO TABLA1 (CAMPO1, CAMPO2, CAMPO3) VALUES (:CAMPO1, :CAMPO2, :cAMPO3)
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #5  
Antiguo 07-08-2006
servicomp servicomp is offline
Miembro
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 153
Poder: 21
servicomp Va por buen camino
Wink Respuesta

Si claro el campo1 es el campo llave, y si se encuentra en la tabla, pero cabe preguntar si es diferente la forma de pasar la información si es campo llave o si no campo llave.

Agradeciendo la respuesta
Responder Con Cita
  #6  
Antiguo 07-08-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Ok, ya veo el problema.

Tienes una sentencia de Inserción en SelectSQL, entonces no puedes usar el método Append del dataset para tal caso.

Haz esto:
Código Delphi [-]
DataM.IBDataSet1.Close;
DataM.IBDataSet1.ParamByName('campo1').AsString:=Edit1.Text;
DataM.IBDataSet1.ParamByName('campo2').AsString:=ValorParaCampo2
DataM.IBDataSet1.ParamByName('campo3').AsString:=ValorParaCampo3
DataM.INDataSet1.ExecSql;
//DataM.IBDataSet1.Append;
Edit1.SetFocus;
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #7  
Antiguo 07-08-2006
servicomp servicomp is offline
Miembro
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 153
Poder: 21
servicomp Va por buen camino
te agradezco, rerevizare cunado este de nuevo en mi oficina y te aviso como me fue por este medio
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
Bloque de Registros Morphine SQL 5 13-01-2006 15:15:56
20,000 registros ABDIGAR SQL 8 27-06-2005 19:19:58
registros que no se ven en ado joanajj Conexión con bases de datos 5 08-04-2005 22:02:54
Limite de Registros Nidia H. Ochoa DB2 1 03-08-2004 09:18:04
Adicionar propiedad a boton mosorio OOP 9 14-05-2003 09:54:08


La franja horaria es GMT +2. Ahora son las 23:45:18.


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