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 16-12-2008
odrack odrack is offline
Miembro
 
Registrado: feb 2008
Posts: 167
Poder: 17
odrack Va por buen camino
Error Adoquery

Que tal a todo el foro.

Tengo una consulta en adoquery donde busco ciertos campos, y al ejecutarla me arroja un error "invalid field size".

La consulta la he hecho asi:
Código Delphi [-]
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Text:='select * from compras where numreferencia='+quotedstr(edit1.text);
  adoquery1.ExecSQL;
//<--------Hasta aqui hace todo el proceso bien------->
  adoquery1.Open;

al ejecutarla me marca el error, he colocado algunos showmessage para identificar en que linea me provoca el error y he identificado que es al abrir la tabla.

Alguien sabe por que da este error??
Responder Con Cita
  #2  
Antiguo 16-12-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Hola

Cuando realizas un Select no necesitas ejecutar ExecSQL, solo debes usar Open. Quitale esa linea e intenta de nuevo.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #3  
Antiguo 16-12-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Me da la impresion de que (numreferencia) es un campo integer.
Ademas de que estas ejecutando y abriendo la consulta.
prueba asi:
Código Delphi [-]
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Text:='select * from compras where numreferencia = :Num';
  adoquery1.Parameters[0].value:= StrToInt(edit1.text);
  adoquery1.Open;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #4  
Antiguo 16-12-2008
odrack odrack is offline
Miembro
 
Registrado: feb 2008
Posts: 167
Poder: 17
odrack Va por buen camino
He probado de las dos formas y con ambas me sigue provocando el mismo error.

Mi campo numreferencia es de tipo char

Conexion que usa adoquery
Provider=MSDASQL.1;Password=prueba;Persist Security Info=True;User ID=root;Data Source=XXXX
Responder Con Cita
  #5  
Antiguo 16-12-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código Delphi [-]
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Text:='select * from compras where numreferencia = :Num';
  adoquery1.Parameters[0].value:= edit1.text;
  adoquery1.Open;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #6  
Antiguo 16-12-2008
odrack odrack is offline
Miembro
 
Registrado: feb 2008
Posts: 167
Poder: 17
odrack Va por buen camino
Hola de nuevo caral

Ya habia intentado quitando el cambio a integer pero me sigue marcando el mismo error

Saludos
Responder Con Cita
  #7  
Antiguo 16-12-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por odrack Ver Mensaje
He probado de las dos formas y con ambas me sigue provocando el mismo error.

Mi campo numreferencia es de tipo char

Conexion que usa adoquery
Provider=MSDASQL.1;Password=prueba;Persist Security Info=True;User ID=root;Data Source=XXXX
Hola

Una pregunta, ese campo es Char o VarChar, por otro lado si es char, cuantos caracteres estas enviando en el edit1.text, solo puedes enviar un caracter y tal vez por eso el error.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #8  
Antiguo 16-12-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Y no tendra que ver con el tamaño asignado al campo?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 16-12-2008
odrack odrack is offline
Miembro
 
Registrado: feb 2008
Posts: 167
Poder: 17
odrack Va por buen camino
El campo que utilizo para guardar la informacion es de tipo char con 20 caracteres, no creo que sea el error o que opinas??

saludos
Responder Con Cita
  #10  
Antiguo 16-12-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por odrack Ver Mensaje
El campo que utilizo para guardar la informacion es de tipo char con 20 caracteres, no creo que sea el error o que opinas??

saludos
Me pregunto si modificaste el tamaño del campo en tu tabla después de que ya tenias tu programa

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #11  
Antiguo 16-12-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Siempre es dificil ver los errores sin la totalidad del codigo.
Aveces marca el error en un sitio y es en otro.
As usado F7 para probarlo?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #12  
Antiguo 16-12-2008
odrack odrack is offline
Miembro
 
Registrado: feb 2008
Posts: 167
Poder: 17
odrack Va por buen camino
Saludos
egostar, no he modificado datos en mi base, aun que realmente no tiene por que afectar si estoy adicionando un modulo donde esoy creando mi consulta o estoy mal??

He modificado mi busqueda solo seleccionando los campos que necesito y me ha quedado asi:

Código Delphi [-]
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Text:='select numreferencia, clvarticulo, descripcion, cantidad, costo, dscto, monto from compras where numreferencia = Num';
  adoquery1.Parameters[0].Value:=edit1.text;
  adoquery1.Open;

ahora me marca un list out bonus
Responder Con Cita
  #13  
Antiguo 16-12-2008
odrack odrack is offline
Miembro
 
Registrado: feb 2008
Posts: 167
Poder: 17
odrack Va por buen camino
He logrado resolver el problema con el codigo que ha puesto caral y lo he modificado con solo ciertos campos quedando asi:

Código Delphi [-]
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Text:='select numreferencia, clvarticulo, descripcion, cantidad, costo, dscto, monto from compras where numreferencia =:Num';
  adoquery1.Parameters[0].Value:=edit1.text;
  adoquery1.Open;

el list out bonus me daba por que me faltaban dos puntos ( : );


Gracias a todos por el apoyo!!
Responder Con Cita
  #14  
Antiguo 16-12-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Donde faltaban dos puntos?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #15  
Antiguo 16-12-2008
odrack odrack is offline
Miembro
 
Registrado: feb 2008
Posts: 167
Poder: 17
odrack Va por buen camino
Hola

Lo que paso es que cuando copie tu codigo el SQL tenia todos los campos con la sentencia.

Código Delphi [-]
adoquery1.SQL.Text:='select * from compras where numreferencia = :Num';

Despues hice una sentencia con solo los campos que necesitaba pero no me percate de que me faltaban los dos puntos despues del igual ( = Num).

de hecho en el codigo que puse de list out bonus esta el error..

Gracias caral por el apoyo!!
Responder Con Cita
  #16  
Antiguo 16-12-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Caral Ver Mensaje
Hola
Donde faltaban dos puntos?.
Saludos
Aqui amigo aqui, no te aloques

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #17  
Antiguo 16-12-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Ahora me hechas en cara que soy ciego.
Y eso que te gane, lero, lero.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #18  
Antiguo 16-12-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Caral Ver Mensaje
Hola
Ahora me hechas en cara que soy ciego.
Y eso que te gane, lero, lero.
Saludos
, bueno amigo, es que usted ya no es el novato que entro pidiendo ayuda, ahora es todo un "maistro", me alegra que el dinero invertido en su educación no fué tirado a la basura

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #19  
Antiguo 16-12-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola

Saludos
__________________
Siempre Novato
Responder Con Cita
  #20  
Antiguo 16-12-2008
odrack odrack is offline
Miembro
 
Registrado: feb 2008
Posts: 167
Poder: 17
odrack Va por buen camino
Saludos!!

Suele pasar que se nos vaya un punto o no caral??

Por cierto, tengo entendido que con adoquery puedes modificar los datos directos en un dbgrid cosa que si he podido hacer, pero lo que no entiendo es por que solo puedo modificar el mismo numero de caracteres con el cual se leyo? por decir, si tengo un campo cantidad con el numero 10 equivale a 2 caracteres, a lo cual si quiero modificarlo por la cantidad 100 no puedo hacerlo ya que solo cuenta con 2 espacios, hay alguna forma que lo pueda modifcar sin esta restriccion??

Y gracias por todo su apoyo compañeros!!!
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
Error con AdoQuery y 2 Form Cecilio Conexión con bases de datos 2 23-10-2008 17:37:04
Error ADOQuery con Parametros drykea SQL 5 09-09-2008 15:49:09
Error al borrar con Adoquery hernitz SQL 6 07-03-2007 22:55:13
Qrchart + Adoquery Error Ferrolano Gráficos 0 22-05-2006 10:03:02
Error al cerrar un ADOQuery Alexander Conexión con bases de datos 2 02-06-2004 13:42:18


La franja horaria es GMT +2. Ahora son las 18:15:14.


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