Club Delphi  
    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 30-12-2005
Moises22 Moises22 is offline
Miembro
 
Registrado: sep 2005
Posts: 53
Poder: 19
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
  #2  
Antiguo 30-12-2005
Moises22 Moises22 is offline
Miembro
 
Registrado: sep 2005
Posts: 53
Poder: 19
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
  #3  
Antiguo 30-12-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola: Un consejo para que tengas un mejor orden: Pasa todo a varibles locales, así te evitas de poner directamente los controles en tu Insert Into del objeto Query. Además si es un valor de autoincremento debes dejarselo a la propia BD que lo genere y no tomarlo tú mismo. Trata de ordenarte un poco en el código y una buena forma creo yo, es asignar los valores a variables locales.. Además ,¿ por qué usas QuotedStr ?, si son String, pasalos como String, es decir ya vienen con apostrofes (todos los tipos string). Hasta Luego
__________________
No todo es como parece ser...
Responder Con Cita
  #4  
Antiguo 30-12-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
Si vas a pasar un string, lo tienes que pasar entre comillas, o apóstrofes para el caso de SQL; por lo que el quotedstring esta correcto.

Mencionas que el error que te manda es un error de sintaxis de SQL. ¿Me podrías decir en que línea te dice que esta el error? ¿Podrías poner el mensaje exacto que te manda?

Y si le pones nombre representativos a tus controles, creéme que te irá mucho mejor. Es mejor leer un código como
" Nombre:=edtNombre.Text " que uno como "Nombre:=Edit1.Text" ; tal vez con 5 o 6 controles no tengas problema, pero conforme vayan aumentando creeme que vas a llegar al punto donde Edit23.Text no sabes ni cuál es, ni donde esta.
__________________


Última edición por ContraVeneno fecha: 30-12-2005 a las 16:32:58.
Responder Con Cita
  #5  
Antiguo 30-12-2005
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
Saludos

Por lo que veo,

- El primer codigo, el 5 es integer para SQL.
- El segundo codigo, QuotedStr(usuarioLabeledEdit1.Text) es String en SQL.

Creo que debes quitar el Quotedstr
__________________
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
  #6  
Antiguo 30-12-2005
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
Saludos
Código:
    usuarioADOQuery1.SQL.Add('INSERT INTO usuarios VALUES(');
    usuarioADOQuery1.SQL.Add('5,');
La sentencia es:
INSERT INTO usuario Values(5);
Código:
    usuarioADOQuery1.SQL.Add('INSERT INTO usuarios 
          (nombre,apellido1,apellido2,login,password,rango,oficina) VALUES(');
    usuarioADOQuery1.SQL.Add(QuotedStr(usuarioLabeledEdit1.Text));
La sentencia es:
INSERT INTO usuarios(nombre,apellido1,apellido2,login,password,rango,oficina) VALUES('textodellabel')
__________________
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 09-01-2006
Moises22 Moises22 is offline
Miembro
 
Registrado: sep 2005
Posts: 53
Poder: 19
Moises22 Va por buen camino
Unhappy

En primer lugar disculpas, pero he estado casi una semana sin internet y por eso no he podido responder.Encuento al tema del problema, no lo he podido solucionar aun.

A ver puede que no me haya explicado bien en el problema. El problema es que cuando hago el insert de la segunda forma dice: "ERROR EN LA SINTAXIS SQL DE INSERT INTO",si os fijas la diferencia de la primera a la segunda es que omito el nombre del campo autonumerico y intento que lo autocree el Access, pero no, lanza un error.

El primer codigo que pongo funciona bien porque le paso ya el valor autonumerico (en este caso seria el 5). Pero yo quiero que ese valor lo coja automatico, y lo hago de la segunda forma, ya que asi me ha funcionado en otro form, pero da error en la sintaxis SQL, y no se de que puede ser...

Espero que alguien me pueda ayudar

Última edición por Moises22 fecha: 09-01-2006 a las 01:14:24.
Responder Con Cita
  #8  
Antiguo 09-01-2006
Moises22 Moises22 is offline
Miembro
 
Registrado: sep 2005
Posts: 53
Poder: 19
Moises22 Va por buen camino
Aun sigo teniendo el mismo problema. ¿Alguien podria ayudarme o por lo menos orientarme?
Responder Con Cita
  #9  
Antiguo 09-01-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
Saludos

Este problema, eeh, no estara resuelto alli ???
__________________
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
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 06:11:09.


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