Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-12-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.965
Poder: 29
delphi.com.ar Va camino a la fama
Cita:
Empezado por Moises22
...me da un error diciendo que la sintaxis del INSERT INTO o del UPDATE (dependiendo de la opcion que elija) no es correcta...
Que pasa si pones un breakpoint antes del ExecSQL, copias el SQL y lo ejecutas en la consola del RDBMS???... Te da el mismo error?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #2  
Antiguo 29-12-2005
Moises22 Moises22 is offline
Miembro
 
Registrado: sep 2005
Posts: 53
Poder: 21
Moises22 Va por buen camino
Unhappy

No he utilizado nunca la consola RDBMS, lo que si he utilizado es el breakpoint y en elvalucador de expreciones elijo el ExecSQl y me da el siguiente error Delphi exception EDatabaseError at $570F949 .

Pero si t sirve un poco, quite la el ExecSQL y capture la consulta, le puse un valo por defecto y en el access se lo añadi. El resultado fue perfecto.

Que me puede pasar???

Última edición por Moises22 fecha: 29-12-2005 a las 13:40:23.
Responder Con Cita
  #3  
Antiguo 29-12-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.965
Poder: 29
delphi.com.ar Va camino a la fama
Cita:
Empezado por Moises22
No he utilizado nunca la consola RDBMS
No me refiero a "la consola RDBMS", me refiero a la consola de tu base de datos que recien ahora me entero que es access. A lo que me refiero es a que captures el SQL y lo ejecutes en el editor de consultas de Access.


Cita:
Empezado por Moises22
...he utilizado es el breakpoint y en elvalucador de expreciones elijo el ExecSQl y me da el siguiente error Delphi exception EDatabaseError at $570F949
La idea es que evelúes el valor del SQL no del ExecSQL!!!... y que copies la consulta!

Cita:
Empezado por Moises22
...Pero si t sirve un poco, quite la el ExecSQL y capture la consulta, le puse un valo por defecto y en el access se lo añadi. El resultado fue perfecto.
A eso me refiero!... Pero que significa que le puesiste un valor por defecto??.. modificaste la consulta??.. no ejecutaste exactamente lo mismo que esta ejecutando tu aplicación??
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 29-12-2005
Moises22 Moises22 is offline
Miembro
 
Registrado: sep 2005
Posts: 53
Poder: 21
Moises22 Va por buen camino
Yo hice una paso intermedio para ver como quedaba la sentencia SQL en un ShowMessage y la copie y pegue en la consola de consultas de access y funciono perfectamente, sin embargo en el programa me dice error de sintaxis SQL.

Espero alguien pueda ayudarme...
Responder Con Cita
  #5  
Antiguo 30-12-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
ContraVeneno Va por buen camino
yo te recomendarias que uasaras un SQL.Add('...'); por cada línea de tu consulta, ya que si utilizas SQL.Add('...+...+..+...'); lo único que te dirá es que tienes un error en la línea 1. En cambio si utilizas SQL.Add(); por cada línea, te dirá exactamente en que línea tienes el error.
__________________

Responder Con Cita
  #6  
Antiguo 30-12-2005
Moises22 Moises22 is offline
Miembro
 
Registrado: sep 2005
Posts: 53
Poder: 21
Moises22 Va por buen camino
Unhappy

He hecho lo que me has dicho y mas o menos como esperaba el error t dice que esta en la linea del usuarioADOQuery1.ExecSQL; . Sigo sin saber cual es el problema...

El codigo quedo asi:
Código:
usuarioADOQuery1.SQL.Clear;
try
usuarioADOQuery1.SQL.Add('INSERT INTO usuarios(nombre,apellido1,apellido2,login,password,rango,oficina) VALUES (');
usuarioADOQuery1.SQL.Add(QuotedStr(usuarioLabeledEdit1.Text));
usuarioADOQuery1.SQL.Add(',');
usuarioADOQuery1.SQL.Add(QuotedStr(usuarioLabeledEdit2.Text));
usuarioADOQuery1.SQL.Add(',');
usuarioADOQuery1.SQL.Add(QuotedStr(usuarioLabeledEdit3.Text));
usuarioADOQuery1.SQL.Add(',');
usuarioADOQuery1.SQL.Add(QuotedStr(usuarioLabeledEdit4.Text));
usuarioADOQuery1.SQL.Add(',');
usuarioADOQuery1.SQL.Add(QuotedStr(usuarioLabeledEdit5.Text));
usuarioADOQuery1.SQL.Add(',');
usuarioADOQuery1.SQL.Add(intToStr((usuarioComboBox2.ItemIndex)+1));
usuarioADOQuery1.SQL.Add(',');
usuarioADOQuery1.SQL.Add(intToStr(oficinaux));
usuarioADOQuery1.SQL.Add(')');
usuarioADOQuery1.ExecSQL;
finally
usuarioADOQuery1.Close;
usuarioADOQuery1.SQL.Clear;
end;
No sé, por deciros me queda que la tabla tiene un valor autoincremental que se llama id y que supongo que no influye en el problema. Tambien deciros que hay otra unidad que funciona practicamente igual y funciona perfectamente

Última edición por Moises22 fecha: 30-12-2005 a las 10:20:08.
Responder Con Cita
  #7  
Antiguo 30-12-2005
Moises22 Moises22 is offline
Miembro
 
Registrado: sep 2005
Posts: 53
Poder: 21
Moises22 Va por buen camino
He conseguido que por lo menos funcione, pero no de la manera que yo quiero. La cosa esta en que hay un campo que es de auto incremento, si yo la insercion la hago asi:
Código:
usuarioADOQuery1.SQL.Clear;
    try
    usuarioADOQuery1.SQL.Add('INSERT INTO usuarios VALUES(');
    usuarioADOQuery1.SQL.Add('5,');
    usuarioADOQuery1.SQL.Add(QuotedStr(usuarioLabeledEdit1.Text));
    usuarioADOQuery1.SQL.Add(',');
    usuarioADOQuery1.SQL.Add(QuotedStr(usuarioLabeledEdit2.Text));
    usuarioADOQuery1.SQL.Add(',');
    usuarioADOQuery1.SQL.Add(QuotedStr(usuarioLabeledEdit3.Text));
    usuarioADOQuery1.SQL.Add(',');
    usuarioADOQuery1.SQL.Add(QuotedStr(usuarioLabeledEdit4.Text));
    usuarioADOQuery1.SQL.Add(',');
    usuarioADOQuery1.SQL.Add(QuotedStr(usuarioLabeledEdit5.Text));
    usuarioADOQuery1.SQL.Add(',');
    usuarioADOQuery1.SQL.Add(intToStr((usuarioComboBox2.ItemIndex)+1));
    usuarioADOQuery1.SQL.Add(',');
    usuarioADOQuery1.SQL.Add(intToStr(oficinaux));
    usuarioADOQuery1.SQL.Add(')');
    usuarioADOQuery1.ExecSQL;
    finally
    usuarioADOQuery1.Close;
    usuarioADOQuery1.SQL.Clear;
me funciona pero claro yo quiero que me en vez del valor 5 coja el valor del autoincremento, que seria asi:
Código:
usuarioADOQuery1.SQL.Clear;
    try
    usuarioADOQuery1.SQL.Add('INSERT INTO usuarios(nombre,apellido1,apellido2,login,password,rango,oficina) VALUES(');
    usuarioADOQuery1.SQL.Add(QuotedStr(usuarioLabeledEdit1.Text));
    usuarioADOQuery1.SQL.Add(',');
    usuarioADOQuery1.SQL.Add(QuotedStr(usuarioLabeledEdit2.Text));
    usuarioADOQuery1.SQL.Add(',');
    usuarioADOQuery1.SQL.Add(QuotedStr(usuarioLabeledEdit3.Text));
    usuarioADOQuery1.SQL.Add(',');
    usuarioADOQuery1.SQL.Add(QuotedStr(usuarioLabeledEdit4.Text));
    usuarioADOQuery1.SQL.Add(',');
    usuarioADOQuery1.SQL.Add(QuotedStr(usuarioLabeledEdit5.Text));
    usuarioADOQuery1.SQL.Add(',');
    usuarioADOQuery1.SQL.Add(intToStr((usuarioComboBox2.ItemIndex)+1));
    usuarioADOQuery1.SQL.Add(',');
    usuarioADOQuery1.SQL.Add(intToStr(oficinaux));
    usuarioADOQuery1.SQL.Add(')');
    usuarioADOQuery1.ExecSQL;
    finally
    usuarioADOQuery1.Close;
    usuarioADOQuery1.SQL.Clear;
PUES BIEN ESTA ULTIMA FORMA QUE ES LA QUE QUIERO Y NECESITO NO FUNCIONA DICE QUE HAY UN ERROR DE SINTAXIS SQL EN INSERT INTO.

Por favor necesito que alguien me heche una mano
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 05:56:37.


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