Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-02-2008
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
campo filter firebird

Buenas, ya he cambiado todas mis base de datos a firebird en la aplicacion que estaba realizando, y funciona!!!. De momento sigo usando del tipo:
table1.fielbyname('codigo').asinteger, todavia nose como se podria hacer en sql.

La pregunta viene con los campos filter, porque pongo por ejemplo:

table1.filter:='Tipo = '+'1 Cama KSize';
table1.filtered:=true;
pero me arroja un error, para campos que no llevan espacios funciona pero para estos no funciona da error.
Esto es asi? o que estoy haciendo mal.

gracias
Responder Con Cita
  #2  
Antiguo 11-02-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Bueno, a pesar de que no nos dices cual es dicho error, yo creería que es porque faltan las comillas... osea debería ser asi:

Código Delphi [-]
table1.filtered := False;
table1.filter   := 'Tipo = '+'"1 Cama KSize"';
table1.filtered := True;

Por otro lado, dependiendo de lo que necesites, muchas veces deberias plantearte usar los filtros desde la consulta y no desde la propiedad Filter de los TQUery (Eso si, repito, dependiendo de lo que necesites).

Espero te sirva.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 11-02-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Para acceder a Firebird te recomiendo que uses componentes como los IBExpress (IBX) o algunos otros como MDO...

Esto por que usar componentes TTable para acceder a los datos de Firebird es muy costoso en cuanto al tráfico en la red...

Para tu problema con los filtros, trata así:

Código Delphi [-]
Table1.Filter := 'Tipo = ''1 Cama KSize''';
Table1.Filtered := True

Pero lo optimo sería algo así (usando un componente TIBQuery de los IBX:

Código Delphi [-]
TIBQuery1.SQL.Text := 'select * from Tabla where Tipo = ''1 Cama KSize''';
TIBQuery1.Open;


Saludos...
Responder Con Cita
  #4  
Antiguo 11-02-2008
gendelphi gendelphi is offline
Miembro
 
Registrado: jul 2003
Ubicación: Tlaxcala Mexico
Posts: 73
Poder: 21
gendelphi Va por buen camino
También puedes hacerlo usando parámetros:
Código Delphi [-]
TIBQuery1.SQL.Text := 'select * from Tabla where Tipo = :Tipo';
TIBQuery1.ParamByName('Tipo').Value:= '1 Cama KSize ';
TIBQuery1.Open;
Responder Con Cita
  #5  
Antiguo 12-02-2008
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias por las respuestas, me que da mucho por aprender de estas cosas.
Código Delphi [-]
table1.filtered := False;
table1.filter   := 'Tipo = '+'"1 Cama KSize"';
table1.filtered := True;
si en vez de poner '"1 Cama KSize, pongo una variable no funciona
Código Delphi [-]
cv:='1 Cama KSize';
table1.filtered := False;
table1.filter   := 'Tipo = '+cv;
table1.filtered := True;
Esto asi no funciona.

gracias de nuevo
Responder Con Cita
  #6  
Antiguo 12-02-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
anubis,
Acostumbrate a usar QyotedSTr() y te olvidas del parto de controlar las comillas.

Código Delphi [-]
table1.Filter := 'Tipo = ' + QuotedStr(cv));

Y como consejo, en lo posible evitate empler filter. Es un proceso que en ocasiones suele ser lento. Se gana más perfomance empleando su variante: una consulta SQL. Y en este tema de las consultas SQL, lo mejor es emplear parámetros, tal como lo demuestra gendelphi.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #7  
Antiguo 12-02-2008
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Cita:
Empezado por ayuda Delphi sobre Filter en los IBX
Specifies rows in a dataset that meet the filter conditions.

property Filter: string;

Description

Use the Filter property to restrict the rows in the dataset to those that meet the filter conditions. The syntax for Filter is the same as the search condition that appears after a WHERE clause in a Select statement. For example, to view only those records where the value in the Country field contains 'France' or 'Fiji':

Country = 'France' or Country = 'Fiji'

You can use standard SQL wildcards such as percent (%) and underscore (_) in the condition when you use the LIKE operator. The following filter condition retrieves all Countries beginning with 'F':

Country LIKE 'F%'

To view rows that have a NULL value in the Country column and Contact_Name is not NULL, use the IS operator:

Country is NULL and Contact_Name is not NULL

You can also use complex expressions in filter clauses. The following example retrieves rows containing Country values that use Francs as currency.

Country IN (SELECT Country from Country where Currency = '_Franc')
No entiendo porque puede ser lento el trabajar con Filters?
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
campo money en Firebird ebeltete Firebird e Interbase 23 02-05-2008 19:11:11
Campo Filter de ADOTable Sr.Scorpion Conexión con bases de datos 17 20-03-2007 18:49:53
problema con un campo en firebird julyus Conexión con bases de datos 2 05-01-2007 22:15:13
Problemas firebird y campo float con ibexpert IPQ Firebird e Interbase 1 23-08-2006 16:33:16
Grabar Imagen en campo BLOB Firebird pcicom Conexión con bases de datos 0 06-04-2005 01:34:06


La franja horaria es GMT +2. Ahora son las 15:30:19.


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
Copyright 1996-2007 Club Delphi