Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   problema con where (https://www.clubdelphi.com/foros/showthread.php?t=36795)

emenchi34 24-10-2006 20:39:34

problema con where
 
hola.. tengo una tabla y de ella quiero hacer una consulta en la que me muestre en dbgrid solamete los campos que se llamen correa... pero no puedo encontrar la manera de hacerlo...

lo que hago es:

Código:

AdOQuery1.Active:= FALSE;
 ADOQuery1.SQL.Clear;
 ADOQuery1.SQL.Add('SELECT (producto) as art, (codigo) as C, (grupo) as g art FROM artic WHERE art:=correa ');;
 ADOQuery1.Active:= TRUE;


sin el where me anda al pelo.. mostrandome todos los campos, pero no es lo que quiero..

saludos

maeyanes 24-10-2006 20:55:34

Prueba con esto:

Código SQL [-]
SELECT (producto) as art, (codigo) as C, (grupo) as g art FROM artic WHERE art = 'correa'

Esto en Delphi sería:

Código Delphi [-]
ADOQuery1.SQL.Add('SELECT (producto) as art, (codigo) as C, (grupo) as g art FROM artic WHERE art = ''correa''');


Saludos...

emenchi34 24-10-2006 21:07:13

igo con error
 
hice lo que me dijiste y me da delphi el sig error: el parametro art no tiene un valor predeterminado

Bicho 24-10-2006 21:09:08

Hola, la respuesta de maeyanes es completamente válida.

Pero siguiendo lo que tú hacias, al poner los dos puntos delante del nombre del campo, le estas indicando al SQL que ese valor se lo vas a pasar por parámetro. Con lo cual ese dato se lo debes pasar usando un parambyname

Código Delphi [-]
ADoquery1.SQL.Parambyname('correa').asstring := ''; //aqui pones el valor que quieras, en tu caso "correa"

Espero te sirva.

Saludos

Enan0 25-10-2006 00:55:48

Cita:

Empezado por emenchi34
hice lo que me dijiste y me da delphi el sig error: el parametro art no tiene un valor predeterminado

Perdon pero el Error esta en la instruccion SQL

Código SQL [-]
SELECT (producto) as art, (codigo) as C, (grupo) as g art FROM artic WHERE art = 'correa'

Lo que esta en rojo es el Error
Estan dejando un ART suelto sin nada que hacer..

Y te aconsejo que utilises los Parameters ya que con eso te aseguras que ningun caracter ' te corte la instruccion SQL

Código Delphi [-]

 AdOQuery1.Active:= FALSE;
 ADOQuery1.SQL.Clear;
 ADOQuery1.SQL.Add('SELECT (producto) as art, (codigo) as C, (grupo) as g FROM artic WHERE art=:MyParam ');
 AdoQuery1.Parambyname('MyPAram').asstring:='correa'
 adoQuery1.Paramcheck:=true; // deberia ser True pero por las dudas........
 ADOQuery1.Active:= TRUE;

Y me Queda la duda. Si tenes Que usar ART o Producto en el Where. pero eso podes probarlo vos .


Saludos

CrazySoft 25-10-2006 13:27:49

Hola, me pareces que art no esta defino, prueba de esta manera
Código Delphi [-]
 
AdOQuery1.Active:= FALSE; 

ADOQuery1.SQL.Clear; 

ADOQuery1.SQL.Add('SELECT (producto) as art, (codigo) as C, (grupo) as g FROM artic WHERE producto =:MyParam '); 

AdoQuery1.Parambyname('MyPAram').asstring:='correa' ADOQuery1.Active:= TRUE;

DTAR 25-10-2006 17:01:00

asi anda....
 
ADOQuery1.SQL.Add('SELECT (producto) as art, (codigo) as C, (grupo) as g art FROM artic WHERE art = "correa"')

Enan0 25-10-2006 18:05:20

Cita:

Empezado por DTAR
ADOQuery1.SQL.Add('SELECT (producto) as art, (codigo) as C, (grupo) as g art FROM artic WHERE art = "correa"')

Creo Q deberia ser
"Grupo as g" sin Art!!!!!

emenchi34 25-10-2006 20:33:51

gracias!
 
el problema estaba en el alias... con producto me anduvo.. con art no....

Otra cosa.. cuando quiero usar
Código:

ADOQuery1.SQL.Add('SELECT (producto) as art, (codigo) as C, (grupo) as g FROM artic WHERE producto:=myparam ');
AdoQuery1.Parambyname('myparam').asstring:='correa';

el compilador me da undeclared identifier 'parambyname'
por que puede ser?:confused:

Lepe 26-10-2006 01:32:54

Los dos puntos no van ahí, mira en los mensajes anteriores ;)


La franja horaria es GMT +2. Ahora son las 04:50:06.

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