![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
Otra forma podría ser olvidarse de los parámetros de SQL y colocarlos todos como parámetros de Format: Código:
SELECT Mueble.Codmueble,Mueble.Descripcion,Rubro.Nombre,Seccion.Nombre FROM Mueble INNER JOIN Rubro ON Mueble.Rubro=Rubro.CodRub INNER JOIN Seccion ON Mueble.Seccion=Seccion.Codigo WHERE ORDEN BETWEEN %s AND %s ORDER BY %s Código:
ModeloDatos.Consulta1.Sql.Text := Format(fmtSql, [Desde.Text, Hasta.Text, 'ORDEN']); ModeloDatos.Consulta1.Open; |
|
#2
|
|||
|
|||
|
Pregunta sobre Query
Cadetill:
probé como vos me detallaste, pero me da el siguiente error: 'Field in order by must be in result set' y si hago Format(fmSQL,['CodMueble']); el error es 'Parameter not set in query string'. fmSQL es de tipo String? Gracias, saludos. Silvio.- |
|
#3
|
|||
|
|||
|
Por qué no nos pones el código que usas para ver donde puede estar el error?
Acuerdate de usar las etiquetas [ code] y [ /code] (sin los espacios) |
|
#4
|
|||
|
|||
|
Código:
procprocedure TForm18.ListarClick(Sender: TObject);
Var
fmSQL:String;
begin
If Lista.Text='Código' Then
begin
ModeloDatos.Consulta1.Close;
fmSQL:=Modelodatos.Consulta1.SQL.Text;
Modelodatos.Consulta1.SQL.Text:=Format(fmSQL,['ORDEN']);
ModeloDatos.Consulta1.ParamByName('ORDEN').AsString:=Modelodatos.TblMuebleCodMueble.FieldName;
ModeloDatos.Consulta1.ParamByName('DESDE').AsInteger:=StrToInt(Desde.Text);
ModeloDatos.Consulta1.ParamByName('HASTA').AsInteger:=StrToInt(Hasta.Text);
ModeloDatos.Consulta1.Open;
endedure TForm18.ListarClick(Sender: TObject);
SELECT Mueble.Codmueble,Mueble.Descripcion,Rubro.Nombre,Seccion.Nombre FROM Mueble INNER JOIN Rubro ON Mueble.Rubro=Rubro.CodRub INNER JOIN Seccion ON Mueble.Seccion=Seccion.Codigo WHERE :ORDEN BETWEEN ESDE AND :HASTAORDER BY %s; Ese es el código. |
|
#5
|
||||
|
||||
|
Cita:
// Saludos |
|
#6
|
|||
|
|||
|
Sólo añadir a la respuesta de Román que, si ORDEN es un campo variable, es decir, que previamente no sabes que nombre va a tener el campo, puedes usar el mismo "truco" que para el Order By
Código:
SELECT Mueble.Codmueble,Mueble.Descripcion,Rubro.Nombre,Seccion.Nombre FROM Mueble INNER JOIN Rubro ON Mueble.Rubro=Rubro.CodRub INNER JOIN Seccion ON Mueble.Seccion=Seccion.Codigo WHERE %s BETWEEN ESDE AND :HASTA ORDER BY %s; ModeloDatos.Consulta1.Sql.Text := Format(fmtSql, ['CAMPO', 'ORDEN']); |
|
#7
|
|||
|
|||
|
Pregunta sobre Query
Cadetill:
el código que me pasate anda perfecto para Mueble.CodMueble y Para Mueble.descripcion es decir: Código:
procedure TForm18.ListarClick(Sender: TObject); El código de la Consulta te recuerdo que es: Código:
SELECT Mueble.Codmueble,Mueble.Descripcion,Rubro.Nombre,Seccion.Nombre Gracias, saludos. Silvio.- |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|