FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Error Column does not belong
Saludos a los del foro de delphi.
Tengo el siguiente problema cuando lanzo mi consulta con el siguiente codigo: procedure TFrm_ConsultaCliente.Edt_NombreChange(Sender: TObject); Var total:real; begin total:=0; DataModule1.FIBDS_Facturas.Close; DataModule1.FIBDS_Facturas.SelectSQL.Clear; DataModule1.FIBDS_Facturas.SelectSQL.Add('select *'); DataModule1.FIBDS_Facturas.SelectSQL.Add('from Facturas'); DataModule1.FIBDS_Facturas.SelectSQL.Add('Where upper(Cliente) like:Cli'); DataModule1.FIBDS_Facturas.SelectSQL.Add('and estado<>"C a n c e l a d a"'); DataModule1.FIBDS_Facturas.SelectSQL.Add('Order by Folio'); DataModule1.FIBDS_Facturas.ParamByName('Cli').asstring:='%'+uppercase(Edt_Nombre.text)+'%'; DataModule1.FIBDS_Facturas.Open; while not DataModule1.FIBDS_Facturas.Eof do begin total:=DataModule1.FIBDS_FacturasTotal.Value+Total; DataModule1.FIBDS_Facturas.Next; end; Edit1.Text:=Copy(FormatFloat('#,##0.00',total),0,18); end; Bueno esta es mi consulta y el mensaje de error que me envia es el siguiente: DataModule1.FBDS_Facturas.SelectQuery: Column Does not belong to referenced table.dynamic SQL error SQL Error code=206 column unknown Bueno ese es el error que me manda Utilizo los FIBPlus. y si no me equivoco parece que me desconoce la columna del campo estado. Bueno muchas gracias espero me puedan ayudar con esto que ya me trae dolores de cabeza. Gracias |
#2
|
||||
|
||||
Bueno.
Estás ORDENANDO por el campo FOLIO, yo tenia problemas ordenando los campos por su nombre, así que los ordene por su índice. Es decir, si el campo es el número 5 de la consulta (SELECT) de coloco ORDER BY 5. Esto empezando con 1,2,3,....,n e.j. Select c1,c2,c3,c4,c5,c6,c7 from T1 where upper(C1) like:Cli and c2>10 Order by 4 Prueba esto. Si no funciona, envia la estructura de la tabla, tipo de datos y tal y lo que quieres hacer y miramos.... Mejor coloca todo el chorro de campos en el select y luego los ordenas como te digo Sergio
__________________
En Colombia hay muchos, pero muchos colombianos muy buenos. Los violentos son pocos y los vamos a controlar... |
#3
|
||||
|
||||
esto es lo que tengo en mi componente FIBDataset en el UPdateSQL
UPDATE FACTURAS SET FOLIO=:FOLIO, FECHA=:FECHA, CLIENTE=:CLIENTE, CONCEPTO=:CONCEPTO, TOTAL=:TOTAL, RFC=:RFC, SUBTOTAL=:SUBTOTAL, IVA=:IVA, DOMICILIO=OMICILIO, CIUDAD=:CIUDAD, DIA=IA, MES=:MES, ANNO=:ANNO, ESTADO=:ESTADO, LETRAS=:LETRAS WHERE FOLIO=:OLD_FOLIO y esto en mi componente edit en el evento change procedure TFrm_ConsultaCliente.Edt_NombreChange(Sender: TObject); Var total:real; begin total:=0; DataModule1.FIBDS_Facturas.Close; DataModule1.FIBDS_Facturas.SelectSQL.Clear; DataModule1.FIBDS_Facturas.SelectSQL.Add('select *'); DataModule1.FIBDS_Facturas.SelectSQL.Add('from Facturas'); DataModule1.FIBDS_Facturas.SelectSQL.Add('Where upper(Cliente) like:Cli'); DataModule1.FIBDS_Facturas.SelectSQL.Add('and estado<>"C a n c e l a d a"'); DataModule1.FIBDS_Facturas.SelectSQL.Add('Order by Folio'); DataModule1.FIBDS_Facturas.ParamByName('Cli').asstring:='%'+uppercase(Edt_Nombre.text)+'%'; DataModule1.FIBDS_Facturas.Open; while not DataModule1.FIBDS_Facturas.Eof do begin total:=DataModule1.FIBDS_FacturasTotal.Value+Total; DataModule1.FIBDS_Facturas.Next; end; Edit1.Text:=Copy(FormatFloat('#,##0.00',total),0,18); end; creo que el campo que me esta dando problemas, es el campo Estado, pero es de tipo texto. No se como es que me da problemas? Y digo que este campo es el que da problamas porque si elimino de la consulta la opcion de: DataModule1.FIBDS_Facturas.SelectSQL.Add('and estado<>"C a n c e l a d a"'); el programa corre correctamente. bueno ese es el problema haber si me puedes ayudar en esto porque la verdad no logro resolver este problema. Bueno gracias se que cuento con su ayuda. |
#4
|
|||
|
|||
Posible solución.
Hola Noe, lo que tienes que hacer es ver si esta columna existe tanto en tu query como en tu tabla, ya que a mi me paso algo similar y resulto que en query que ejecutaba, el campo al que yo hacia referencia no estaba contenido dentro de la consulta y ver tambien sino es un alias al que haces referencia y en vez de que se llame estado como lo referencias tu, se llame status o algo similar.
Saludos. |
#5
|
||||
|
||||
Hola.
Lanza esa misma consulta desde un gestor de Firebird, como por ejemplo la versión personal de IBExpert (que es gratuita), y allí te marcará la posición donde está el error. http://ibexpert.net/ibe/ El error es muy claro, en la consulta estás utilizando un campo que no existe en la Tabla. Aunque a veces no es tan evidente encontrar a que campo se refiere, puesto que cualquier palabra que Firebird no entienda de la consulta, la va a considerar un campo más que quieres devolver, y por lo tanto te dará error si no lo encuentra. Saludos. |
|
|
|