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 31-10-2011
AlanSlash AlanSlash is offline
Registrado
NULL
 
Registrado: ago 2011
Posts: 7
Poder: 0
AlanSlash Va por buen camino
Question Error de sintaxis INSERT INTO

Buenos dias gente del foro, tengo un problema con el ingreso de datos a una tabla de Access.

Yo definí esta instrucción SQL:
Código SQL [-]
INSERT INTO Agenda
(Nombre, Celular, Casa, Direccion, E-Mail, Otro)
VALUES(:nom, :cel, :casa, :dir, :email, :otro)

después definí este código en el evento de clickeo de un botón:
Código Delphi [-]
procedure TAgenda.BotAgregarClick(Sender: TObject);
begin

   insertar.Close;
        insertar.Parameters.ParamValues['nom'] :=editNOM.Text;
        insertar.Parameters.ParamValues['cel'] :=editCEL.Text;
        insertar.Parameters.ParamValues['casa'] :=editCASA.Text;
        insertar.Parameters.ParamValues['dir'] :=editDIR.Text;
        insertar.Parameters.ParamValues['email'] :=editMAIL.Text;
        insertar.Parameters.ParamValues['otro'] :=editOTRO.Text;
   insertar.Open;
    end;

el problema se me presenta cuando quiero insertar los datos dentro de la tabla, ya que al apretar el botón al ejecutarlo me devuelve el siguiente error "Error de sintaxis INSERT INTO", la verdad no se que pueda ser, los campos en la tabla están definidos todos como texto y no tengo problemas en hacer consultas de la tabla, sólo no puedo insertar elementos

muchas gracias desde ya por su ayuda!

Última edición por ecfisa fecha: 31-10-2011 a las 01:48:30. Razón: Quitar carita de código (:o)
Responder Con Cita
  #2  
Antiguo 31-10-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
El problema es que cierres la consulta antes de ver los parametros:
Código Delphi [-]
procedure TAgenda.BotAgregarClick(Sender: TObject);
begin
        insertar.Close;
        insertar.sql.text:= 'INSERT INTO Agenda (Nombre, Celular, Casa, Direccion, E-Mail, Otro) '+
                           ' VALUES(:nom, :cel, :casa, :dir, :email, tro) ';
        insertar.Parameters.ParamValues['nom'] :=editNOM.Text;
        insertar.Parameters.ParamValues['cel'] :=editCEL.Text;
        insertar.Parameters.ParamValues['casa'] :=editCASA.Text;
        insertar.Parameters.ParamValues['dir'] :=editDIR.Text;
        insertar.Parameters.ParamValues['email'] :=editMAIL.Text;
        insertar.Parameters.ParamValues['otro'] :=editOTRO.Text;
        insertar.Open;
    end;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 31-10-2011
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
AlanSlash, lo tienes "casi perfecto".

El fallo es porque tu consulta es de Acción (insert, delete, drop, alter table..., etc) en esos casos debes de usar "insertar.Execute" ExecuteCommand, ExecSql, o el que sea (dependerá de si usas BDE, ADO, etc),

Si el sql lo tienes puesto desde el inspector de objetos, y no se cambia durante toda la ejecución del programa, en el oncreate de la ventana podrías usar esta orden:
Código Delphi [-]
insertar.prepare;

Eso hace que se compile la consulta y sea más rápida su ejecución.

El insertar.Close y su opuesto insertar.Open se usa cuando tienes una instrucción de selección ( un SELECT en el sql)

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 01-11-2011
AlanSlash AlanSlash is offline
Registrado
NULL
 
Registrado: ago 2011
Posts: 7
Poder: 0
AlanSlash Va por buen camino
Muchas gracias a ambos por la respuesta, pero sigue dándome el mismo error, no entiendo la verdad, sólo dice error de sintaxis INSERT INTO;

Muchas gracias igualmente por tomarse el tiempo!
Responder Con Cita
  #5  
Antiguo 01-11-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pega todo el código aquí, o comprímelo y lo adjuntas, que le echemos un vistazo.
Responder Con Cita
  #6  
Antiguo 02-11-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Pega todo el código aquí, o comprímelo y lo adjuntas, que le echemos un vistazo.
Amigo creo que no puede poner el código, AlanSlash solo tiene 5 post.
Si AlanSlash me manda un mensaje privado le doy mi correo así me podrá enviar el código y lo reviso con gusto.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 02-11-2011
AlanSlash AlanSlash is offline
Registrado
NULL
 
Registrado: ago 2011
Posts: 7
Poder: 0
AlanSlash Va por buen camino
Hola, muchas gracias a ambos, disculpen mi inexperiencia con esto, pero que archivo deberia mandarles? el .pas o algún otro;
Muchas gracias por la ayuda de nuevo
Responder Con Cita
  #8  
Antiguo 02-11-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Todo el codigo del programa con la Base de datos incluida (todo).
Lo que puedes hacer es quitarle el exe, lo demas se necesita para revisarlo.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 02-11-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Ya esta revisado.
1- La conexion del adoconnection no es la mejor (seria bueno cambiarla).
2- Tienes un Adoquery por cada cosa que quieres hacer (buscar, agregar, etc) es innecesario.
3- Es pejor usar o Parambyname o mejor parameters[] directamente (segun mi opinion).
Ya me diras que quieres hacer, lo modifico, te indico como hacerlo, que quieres hacer?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #10  
Antiguo 02-11-2011
AlanSlash AlanSlash is offline
Registrado
NULL
 
Registrado: ago 2011
Posts: 7
Poder: 0
AlanSlash Va por buen camino
Gracias
La verdad hace poco que empezé con esto asi que cualquier cosa que usted crea conveniente la haré.
Lo que sí, hay un ADOQUERY de borrar que lo iba a sacar porque me di cuenta que eso se puede hacer directamente en la tabla.

Si me dice que modificar yo lo hago, no hay problema.

Muchas gracias por su tiempo!
Responder Con Cita
  #11  
Antiguo 02-11-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Estoy haciendole algunos cambios, te los enviare por correo para que los veas y ya comentaras que te parecen.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #12  
Antiguo 02-11-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
ya te envie los cambios por correo.
Cualquier duda comentala.
Saludos
__________________
Siempre Novato
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
Ayuda con error de sintaxis pepon386 ASM y Microcontroladores 0 22-04-2009 19:34:14
Error de sintaxis en la instrucción INSERT INTO Ledian_Fdez C++ Builder 1 14-04-2009 20:26:35
Cual es el error de la sintaxis sierraja SQL 9 20-05-2008 02:31:47
!!!error de sintaxis en el INSERT INTO huwabe78 SQL 5 05-12-2006 00:45:55
Error de Sintaxis en MySQL The_figo MySQL 1 28-10-2006 03:26:29


La franja horaria es GMT +2. Ahora son las 08:46:41.


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