Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consulta SQL Basica (https://www.clubdelphi.com/foros/showthread.php?t=73704)

Cowky 11-05-2011 05:47:51

Consulta SQL Basica
 
Hola a todos, tengo la siguiente consulta que no funciona.
Trabajo con:
- Delphi7
- Paradox7

donde:
La tabla legajos tiene los campos: Nombre (tipo String) y Basico,Nrodni (tipo Integer)

2 variables:
actTipo es un String
ActNro es un Integer

Código Delphi [-]
 
   QueryLegajos.SQL.Clear;   
   QueryLegajos.SQL.Text:='Select nombre,basico  from legajos where tipodni='+QuotedStr(actTipo);
   QueryLegajos.SQL.Text:='Select nombre,basico from legajos';    
   QueryLegajos.SQL.Add('and nrodni='+QuotedStr(inttostr(ActNro)));
   QueryLegajos.Active:=true;


eso no funciona.

Código Delphi [-]
  QueryLegajos.SQL.Clear;   
  QueryLegajos.SQL.Text:='Select nombre,basico  from legajos';    
  QueryLegajos.Active:=true;


eso si funciona.

Tiro el resultado a un grid.

Gracias, Cowky


pd: no me deja poner la Sintaxis SQL.

oscarac 11-05-2011 06:18:34

trata de mejorar la presentacion de tu query
no se entiende bien
date un paseito por la guia de estilo

lo que puede suceder es que quiza el parametro que le estas pasando no sea el correcto y no exista informacion

ecfisa 11-05-2011 06:28:42

Hola Cowky.

Cita:

pd: no me deja poner la Sintaxis SQL.
Ya corregí el tema de las etiquetas ( en este caso irían las etiquetas: [delphi] [/delphi] )

En principio, en tu primer código:
Código Delphi [-]
1  QueryLegajos.SQL.Clear;   
2  QueryLegajos.SQL.Text:='Select nombre,basico  from legajos where tipodni='+QuotedStr(actTipo);
3  QueryLegajos.SQL.Text:='Select nombre,basico from legajos';    
4  QueryLegajos.SQL.Add('and nrodni='+QuotedStr(inttostr(ActNro)));
5  QueryLegajos.Active:=true;
La línea 3 anula lo ingresado en la línea 2.

Este sería el modo de añadir líneas:
Código Delphi [-]
  QueryLegajos.SQL.Clear;   
  QueryLegajos.SQL.Add('Select nombre,basico  from legajos where tipodni='+QuotedStr(actTipo));
  QueryLegajos.SQL.Add('Select nombre,basico from legajos');    
  QueryLegajos.SQL.Add('and nrodni='+QuotedStr(inttostr(ActNro)));
  QueryLegajos.Active:=true;

De todos modos no creo que funcione así. Pareciera que debiera ser:
Código Delphi [-]
  QueryLegajos.SQL.Add('Select nombre, basico from legajos'); 
  QueryLegajos.SQL.Add('where tipodni = '+QuotedStr(actTipo)+' and nrodni = '+QuotedStr(IntToStr(ActNro)));
Cualquier problema nos comentás el detalle.

Saludos.

Jose_Augusto 12-05-2011 00:36:50

Hola,

puedes intentar con esto

Código:


QueryLegajos.Close;  // cerramos para poder cambiar el contenido a la query 
QueryLegajos.SQL.Clear;   
QueryLegajos.SQL.Add('Select nombre, basico from legajos where tipodni='+QuotedStr(actTipo));
QueryLegajos.SQL.Add('and nrodni=' + inttostr(ActNro) );
QueryLegajos.Open;

Si Nrodni es Integer no tienes que utilizar el QuotedStr( ) porque el contenido quedaria asi nrodni = '1' por ejemplo y es un error de sintaxis.
eliminé una linea porque repetias el select y eso hacia que faltara el Where en tu consulta y como lo que seria era un "and" te marca error de sintaxis.

suerte

Cowky 17-05-2011 04:31:32

Funcionan todas, jeje
el horror lo tenia en la base de datos.

Guardaba un String.
Como. "D.N.I."

y en otro lugar como String[5]
Como. "D.N.I

de alli el error.

Solucionado, gracias!


La franja horaria es GMT +2. Ahora son las 08:03:22.

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