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 24-08-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Problema Consulta Insert into...

Hola Compañeros del foro, codigo:

Código Delphi [-]
QHistorico.Close;
   QHistorico.SQL.Add('insert into historico values');
   QHistorico.SQL.Add('("", "'+DBEdit13.Text+'")');
   QHistorico.Open;
   QHistorico.ExecSQL;

error:

Cita:
---------------------------
Debugger Exception Notification
---------------------------
Project Sigesped.exe raised exception class EOleException with message 'Number of query values and destination fields are not the same'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
eso quiere decir que los values tiene que ir en el mismo orden que esta en la base de datos?.

Saludos...
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #2  
Antiguo 24-08-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Cuando haces un insert sin especificar los campos, los valores que pasas deben ir en el orden en que están los campos de la tabla y debes incluir todos y cada uno de los valores:

Código SQL [-]
create table historico (
  id Integer,
  descripcion varchar(30)
);

insert into historico values(1, 'Primer histórico');

/* La sentencia anterior equivale a: */
insert into historico (id, descripcion) values(1, 'Primer histórico');


Saludos...
Responder Con Cita
  #3  
Antiguo 24-08-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Seguramente la tabla historico tiene mas campos de los que estas tratando de insertar, de manera pues que creo que lo mejor es que le indiques el nombre de los campos que deseas insertar, asi:

Código Delphi [-]
   QHistorico.Close;
   QHistorico.SQL.Add('insert into historico (NombreDelCampoVacio, NombreDelOtroCampo) values');
   QHistorico.SQL.Add('("", "'+DBEdit13.Text+'")');
   QHistorico.ExecSQL;

Otra cosa, quitale el QHistorico.Open; ya que con el ExecSql; ya sera suficiente, ademas puede causarte problemas mas adelante.

Espero te sirva .

//Nota: Caramba¡¡¡ casi que iguales maeyanes
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 24-08-2007 a las 19:09:02. Razón: Escribir nota
Responder Con Cita
  #4  
Antiguo 24-08-2007
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
tambien te falta hacer un limpiado del SQL.. por si queda algo, esto lo haces despues de

Código Delphi [-]
QHistorico.Close;
QHistorico.Sql.Clear;
QHistorico.Sql.Add( // y asi 
QHistorico.ExecSql;
__________________
BlueSteel
Responder Con Cita
  #5  
Antiguo 24-08-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Aparte que si ese componente solo sirve para insertar historicos, no necesita llamar al evento Close, ya que ExecSQL no devuelve ningún tipo de record set...

Código Delphi [-]
QHistorico.SQL.Clear;
QHistorico.SQL.Add('insert into Historico values');
//...
QHistorico.ExecSQL;

Saludos..
Responder Con Cita
  #6  
Antiguo 24-08-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Gracias a todos, el codigo quedo asi de acuerdo a sus sugerencias:

Código Delphi [-]
 QHistorico.SQL.Clear;
   QHistorico.SQL.Add('insert into historico (id, no, no_ped, dpto, responsable, fecha_rec_ped, status, user, date) values');
   QHistorico.SQL.Add('("", "'+DBEdit18.Text+'", "'+DBEdit7.Text+'", "'+DBLookupComboBox6.Text+'", "'+DBLookupComboBox8.Text+'", "'+DBEdit15.Text+'", "'+DBLookupComboBox1.Text+'", "'+DBEdit16.Text+'", "'+DBEdit17.Text+'")');
   QHistorico.ExecSQL;

nuevo error:

Cita:
---------------------------
Debugger Exception Notification
---------------------------
Project Sigesped.exe raised exception class EOleException with message 'Syntax error in INSERT INTO statement'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #7  
Antiguo 24-08-2007
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
La primera coma del principio esta de mas

Cita:
Empezado por enecumene Ver Mensaje

Código Delphi [-]
    QHistorico.SQL.Add('("", "'+DBEdit18.Text+'", "'+DBEdit7.Text+'", "'+DBLookupComboBox6.Text+'", "'+DBLookupComboBox8.Text+'", "'+DBEdit15.Text+'", "'+DBLookupComboBox1.Text+'", "'+DBEdit16.Text+'", "'+DBEdit17.Text+'")');
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #8  
Antiguo 24-08-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Gracias Caro por tu respuesta, segun tu sugerencia quedaria asi:

Código SQL [-]
QHistorico.SQL.Add('("" "'+DBEdit18.Text+'", "'+DBEdit7.Text+'", "'+DBLookupComboBox6.Text+'", "'+DBLookupComboBox8.Text+'", "'+DBEdit15.Text+'", "'+DBLookupComboBox1.Text+'", "'+DBEdit16.Text+'", "'+DBEdit17.Text+'")');

si es asi aun me tira el mismo error.

Saludos...
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
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
problema con un insert darkclow_juliga Conexión con bases de datos 1 05-12-2006 11:40:33
Problema con Insert joanajj Conexión con bases de datos 1 01-05-2006 08:11:40
Problema con Insert y Update en ADOQuery Moises22 SQL 15 11-01-2006 07:57:13
Problema con insert Ivan_25 C++ Builder 7 04-11-2005 10:38:34
consulta sobre insert davidgaldo SQL 1 14-04-2004 14:08:02


La franja horaria es GMT +2. Ahora son las 18:11:08.


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