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 |
#21
|
|||
|
|||
Cita:
|
#22
|
|||
|
|||
Pregunta sobre Query
El código que uso es tal cual así:
Código:
procedure 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,['CodMueble','CodMueble']); ModeloDatos.Consulta1.ParamByName('DESDE').AsInteger:=StrToInt(Desde.Text); ModeloDatos.Consulta1.ParamByName('HASTA').AsInteger:=StrToInt(Hasta.Text); ModeloDatos.Consulta1.Open; end Else If Lista.Text='Descripción' Then begin ModeloDatos.Consulta1.Close; fmSQL:=Modelodatos.Consulta1.SQL.Text; Modelodatos.Consulta1.SQL.Text:=Format(fmSQL,['Descripcion','Descripcion']); ModeloDatos.Consulta1.ParamByName('DESDE').AsString:=Desde1.Text; ModeloDatos.Consulta1.ParamByName('HASTA').AsString:=Hasta1.Text; ModeloDatos.Consulta1.Open; end Else If Lista.Text='Rubro' Then begin ModeloDatos.Consulta1.Close; fmSQL:=Modelodatos.Consulta1.SQL.Text; Modelodatos.Consulta1.SQL.Text:=Format(fmSQL,['Nombre','Nombre']); ModeloDatos.Consulta1.ParamByName('DESDE').AsString:=Desde1.Text; ModeloDatos.Consulta1.ParamByName('HASTA').AsString:=Hasta1.Text; ModeloDatos.Consulta1.Open; end; 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 :DESDE AND :HASTA ORDER BY %s; Gracias. Silvio.- |
#23
|
|||
|
|||
sí, vale, pero.... no me dices si has probado lo de debugear, mirar qué sentencia SQL te está generando, probar esa sentencia SQL fuera de Delphi (y de tu app), mirar que parámetros le estás pasando (quizás los estén enviando en orden inverso estilo ZZZZ y AAAAA en ligar de AAAA y ZZZZZ y por eso no te devuelve nada),............
|
#24
|
||||
|
||||
Cita:
Cita:
Debugear = (spanglish(debug)) acción destinada a depurar una aplicación, normalmente se realiza poniendo un breakpoint o punto de ruptura que rompe la ejecución del programa, permitiendo evaluar y cambiar el valor de las variables y continuar la ejecución paso a paso del mismo.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#25
|
|||
|
|||
Cita:
Gracias por la aclaración Juan Antonio |
#26
|
|||
|
|||
Pregunta sobre Query
Cadetill:
probé desde el Explorador de bases de datos de la Consulta lo siguiente: 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 Rubro BETWEEN 1 AND 2 ORDER BY Rubro.Nombre; Consulta: 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 :DESDE AND :HASTA ORDER BY %s; Código:
procedure TForm18.ListarClick(Sender: TObject); Var fmSQL:String; Begin If Lista.Text='Rubro' Then begin ModeloDatos.Consulta1.Close; fmSQL:=Modelodatos.Consulta1.SQL.Text; 3) Modelodatos.Consulta1.SQL.Text:=Format(fmSQL,['Nombre','Rubro.Nombre']); ModeloDatos.Consulta1.ParamByName('DESDE').AsString:=Desde1.Text; ModeloDatos.Consulta1.ParamByName('HASTA').AsString:=Hasta1.Text; ModeloDatos.Consulta1.Open; end; y sustituyendo en la línea 3 del código, 'Nombre' por 'Rubro' me da: Error: 'Type mismatch in expression'. Me parece que el problema puede estar en los parámetros, pero ya probé de muchas formas pero no lo puedo resolver. Gracias. Silvio.- |
#27
|
|||
|
|||
Por pates
Qué desde fuera de la app el SQL te funcione y desde la app..... me parece muy, pero que muy raro. Vamos a intentar ha hacer una prueba para ver exactamente que sentencia te esta ejecutando, ok? Intenta poner lo siguiente Código:
with ModeloDatos.Consulta1 do begin SQL.Clear; SQL.Add('SELECT'); SQL.Add('Mueble.Codmueble, Mueble.Descripcion, Rubro.Nombre, Seccion.Nombre'); SQL.Add('FROM Mueble INNER JOIN Rubro ON Mueble.Rubro=Rubro.CodRub'); SQL.Add(' INNER JOIN Seccion ON Mueble.Seccion = Seccion.Codigo'); SQL.Add('WHERE Rubro BETWEEN '' '+Desde1.Text+' '' AND '' '+Hasta1.Text+' '' '); SQL.Add('ORDER BY Rubro.Nombre'); SQL.SaveToFile('c:\lolo.txt'); end; Por otro lado, el error que te da con 'Rubro' seguramente es pq no dices de qué tabla es el campo y puede que esté en las 2 tablas |
#28
|
|||
|
|||
Pregunta sobre Query
Gracias, Cadetill, ya encontré el error.
Saludos. Silvio.- |
#29
|
|||
|
|||
Cita:
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|