Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-06-2010
carlos v.p.l. carlos v.p.l. is offline
Miembro
 
Registrado: jun 2010
Posts: 18
Poder: 0
carlos v.p.l. Va por buen camino
Buscando una cadena dentro de una tabla

saludos, espero me puedan ayudar, el problema que tengo es que necesito buscar una cadena en una tabla, estuve buscando como entonces llegue a este codigo:
[
Código Delphi [-]
procedure TForm5.Button1Click(Sender: TObject);
begin
     Unit2.DataModule2.cliente.Locate('nombre','carlos',[]);
end;
El problema que tengo es que funciona con enteros por ejemplo:
[
Código Delphi [-]
procedure TForm5.Button1Click(Sender: TObject);
begin
     Unit2.DataModule2.cliente.Locate('idnombre',5,[]);
end;
y si me ubica pero deplano con cadenas pues me marca un error que dice asi:
unsopported feature , espero que haya otra manera de hacer la busqueda y me puedan ayudar o ya si deplano es asunto de mi delphi o mmm alguna recomendación,gracias y saludos de nuevo
Responder Con Cita
  #2  
Antiguo 19-06-2010
carlos v.p.l. carlos v.p.l. is offline
Miembro
 
Registrado: jun 2010
Posts: 18
Poder: 0
carlos v.p.l. Va por buen camino
Encontre por ahi que tengo que modificar el archivo IBSQL.pas , pero no lo encuentro por ningun lado, alguien lo ha utilizado ya? xD podria decirme donde encontrarlo por favir y grax
Responder Con Cita
  #3  
Antiguo 19-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola, carlos v.p.l., por favor, echa un vistazo a la guía de estilo de clubdelphi, así será más fácil ayudarte.

No has explicado nada de qué base de datos, componentes, etc. estás usando.

La pregunta, además, es algo confusa, supongo que quieres buscar un texto en un campo de una tabla.

Hay varias formas, pero sería conveniente que explicaras qué componentes usas y base de datos, eso como mínimo.


p.d.: No sé de dónde has sacado eso, pero ni si te ocurre modificar ibsql.pas
Responder Con Cita
  #4  
Antiguo 19-06-2010
carlos v.p.l. carlos v.p.l. is offline
Miembro
 
Registrado: jun 2010
Posts: 18
Poder: 0
carlos v.p.l. Va por buen camino
ok disculpa , lo que pasa es que encontre una respuesta a una pregunta con el mismo problema igual al mio , no kisiera confundir pero kisiera aprovechar esa respuesta por ke parece que si le funciono al otro amigo , pero por alguna razon no puedo pegar el link aqui en el mensaje , ahi viene la solucion a mi problema y pues ahi indica ke se debe modificar el archivo IBSQL.pas
Adjunto un txt con el link del tema del foro donde entre dicha respuesta por ke todavia no tengo permitido poner un link por aca segun esto, grax por adelantado
Archivos Adjuntos
Tipo de Archivo: txt link.txt (54 Bytes, 4 visitas)

Última edición por carlos v.p.l. fecha: 19-06-2010 a las 02:01:35.
Responder Con Cita
  #5  
Antiguo 19-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
El caso que indicas es un tema de caracteres unicode con los últimos delphi.

En tu caso, todavía no has dicho nada de qué usas y qué quieres hacer.
Responder Con Cita
  #6  
Antiguo 19-06-2010
carlos v.p.l. carlos v.p.l. is offline
Miembro
 
Registrado: jun 2010
Posts: 18
Poder: 0
carlos v.p.l. Va por buen camino
hola , pues como tu lo indicas yo quiero buscar un texto en una tabla, y pues me aparece el mismo error que tiene el otro amigo en el link que adjunte, en el mismo caso que puso el que es cuando usa located para buscar un nombre por ejemplo, el error es el :
"unsupported feature", pero solo me pasa cuando busco cadenas , con enteros me funciona bien, que puedo hacer ??, yo queria probar con la respuesta que le dieron pero que me recomiendas? por favor y grax ,jeje se me estaba escapando de new : uso interbase y delphi 2009 grax
Responder Con Cita
  #7  
Antiguo 19-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bueno, pues si quieres hacer lo mismo, ¿qué te lo impide?.
De todas formas no es muy recomendable modificar esos componentes.
Responder Con Cita
  #8  
Antiguo 19-06-2010
carlos v.p.l. carlos v.p.l. is offline
Miembro
 
Registrado: jun 2010
Posts: 18
Poder: 0
carlos v.p.l. Va por buen camino
mmm je je je no kisiera regarla y no se donde esta el archivo no lo encuentro por ningun lado ,me puedes ayudar? por favor? o podrias recomendarme alguna otra manera de atacar mi problema por favor y grax
Responder Con Cita
  #9  
Antiguo 19-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es algo complejo cuando no has explicado detalladamente qué quiéres hacer, pero si no voy muy mal equivocado, sólo pretendes buscar un texto y usas interbase con los componentes ibx?

Lo más lógico es usar sql, un componente IBDataSet y en su propiedad selectsql.text pones la sentencia de búsqueda, algo así:

Añade al form un tibdataset, un tedit y un botón
Código:
QR1: TIBDataSet;
bt1: TButton;
ed1: TEdit;
En el edit ponemos lo que queremos buscar y en el onclick del botón:

Código:
procedure TForm1.bt1Click(Sender: TObject);
begin
  qr1.Close;
  qr1.SelectSQL.Text := 'select campo from tutabla where campo containing '+quotedstr(ed1.text);
  qr1.Open;
  ShowMessage( QR1.fields[0].AsString );
end;
Es sólo un ejemplo para que te sirva de referencia.
Responder Con Cita
  #10  
Antiguo 19-06-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola

No entiendo nada.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #11  
Antiguo 19-06-2010
carlos v.p.l. carlos v.p.l. is offline
Miembro
 
Registrado: jun 2010
Posts: 18
Poder: 0
carlos v.p.l. Va por buen camino
ok, uso una unidad 2 como modulo de datos ahi tengo mi TIBDatabse mi TIBtransaction y por ejemplo
mi tabla TIBTable "clientes", en una unidad 5
tengo un TDatasource hacia clientes, en mi form de la unit 5 tengo un tDbgrid conectado al
datasourc , tons mi tabla clientes tiene un campo nombre y un campo idcliente por ejemplo,.

soy bastante novato en esto asi ke pues en donde esta el uses de mi form5 inclui mi unit2 entonces para acceder a mi tabla accedo de esta manera:
Unit2.DataModule2.cliente y ya por ejemplo para usar alguna propiedad pues:
Unit2.DataModule2.cliente.FieldbyName ,y funciona bien , si kisiera bsucar un 'carlos' por ejemplo en el campo 'nombre' siguiendo tu ejemplo esta bien esta sintaxis? o me ekivoke en algo por ke me marcar un error:
Código Delphi [-]
procedure TForm5.Button1Click(Sender: TObject);
begin
    IBDataSet1.Close;
    IBDataSet1.SelectSQL.Text:='select nombre from Unit2.DataModule2.cliente where nombre containing'+quotedstr(Edit2.Text);
    IBDataSet1.Open;
    ShowMessage( IBDataSet1.fields[0].AsString );

end;
donde IBDataSet1 es mi dataset
espero me puedas seguir ayudando grax

Última edición por carlos v.p.l. fecha: 19-06-2010 a las 03:16:39.
Responder Con Cita
  #12  
Antiguo 19-06-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Vamos por partes:
1: datamodule = unit2
tienes: TIBDatabse1, TIBtransaction1 y TIBTable1
2: form5 = unit5
tienes: datasource1, dbgrid1, button1, Edit2.
Todo conectado correctamente.
3: Unit2 esta en el uses del unit5??. suponemos que si.
4: en el boton1:
Código Delphi [-]
procedure TForm5.Button1Click(Sender: TObject);
begin
    DataModule2.TIBTable1.Close;
    DataModule2.TIBTable1.SQL.Text:='select * from tutabla where nombre like '+quotedstr(Edit2.Text);
    DataModule2.TIBTable1.Open;
  //  ShowMessage( IBDataSet1.fields[0].AsString ); // no entiendo para que?

end;
Voy bien?
Saludos
__________________
Siempre Novato
Responder Con Cita
  #13  
Antiguo 19-06-2010
carlos v.p.l. carlos v.p.l. is offline
Miembro
 
Registrado: jun 2010
Posts: 18
Poder: 0
carlos v.p.l. Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
Vamos por partes:
1: datamodule = unit2
tienes: TIBDatabse1, TIBtransaction1 y TIBTable1
2: form5 = unit5
tienes: datasource1, dbgrid1, button1, Edit2.
Todo conectado correctamente.
3: Unit2 esta en el uses del unit5??. suponemos que si.
4: en el boton1:
Código Delphi [-]procedure TForm5.Button1Click(Sender: TObject); begin DataModule2.TIBTable1.Close; DataModule2.TIBTable1.SQL.Text:='select * from tutabla where nombre like '+quotedstr(Edit2.Text); DataModule2.TIBTable1.Open; // ShowMessage( IBDataSet1.fields[0].AsString ); // no entiendo para que? end;

Voy bien?
Saludos
En lugar de * seria el campo nombre y no le habia puesto like le habia puesto containing ya probe pero = tiene error y vas bien grax
Responder Con Cita
  #14  
Antiguo 19-06-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Tiene error????.
Que error????, donde, cuando, como?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #15  
Antiguo 19-06-2010
carlos v.p.l. carlos v.p.l. is offline
Miembro
 
Registrado: jun 2010
Posts: 18
Poder: 0
carlos v.p.l. Va por buen camino
al parecer tiene un problema con mi punto despues de Unit2 en la siguiente instruccion
Código Delphi [-]
procedure TForm5.Button1Click(Sender: TObject);
begin
    IBDataSet1.Close;
    IBDataSet1.SelectSQL.Text:='select nombre from Unit2.DataModule2.cliente where nombre like'+quotedstr(Edit2.Text);
    IBDataSet1.Open;
end;

end.
Y es que por ejemplo en otros form cuando tengo que acceder a un campo de mi tabla por ejemplo para saber el valor accedo asi:
Código Delphi [-]
Unit2.DataModule2.nombredelatabla.FielByName('campo').value;
por ejemplo
de ke otra manera puedo acceder ami tabla y grax
Responder Con Cita
  #16  
Antiguo 19-06-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Cliente es el nombre del TIBTable1 o de la tabla???
Saludos
__________________
Siempre Novato
Responder Con Cita
  #17  
Antiguo 19-06-2010
carlos v.p.l. carlos v.p.l. is offline
Miembro
 
Registrado: jun 2010
Posts: 18
Poder: 0
carlos v.p.l. Va por buen camino
De la TIBTABLE y de la tabla que hice en interbase , acostumbro ponerles el mismo nombre para no confundirme je
Responder Con Cita
  #18  
Antiguo 19-06-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
1
Código Delphi [-]
procedure TForm5.Button1Click(Sender: TObject);
begin
    DataModule2.cliente.Close;
    DataModule2.cliente.SQL.Text:='select nombre from cliente where nombre like'+quotedstr(Edit2.Text);
    DataModule2.cliente.Open;
end;
2
Código Delphi [-]
procedure TForm5.Button1Click(Sender: TObject);
begin
    IBDataSet1.Close;
    IBDataSet1.SelectSQL.Text:='select nombre from cliente where nombre like'+quotedstr(Edit2.Text);
    IBDataSet1.Open;
end;
3
pasame el programa la bd y todo y lo veo.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #19  
Antiguo 19-06-2010
carlos v.p.l. carlos v.p.l. is offline
Miembro
 
Registrado: jun 2010
Posts: 18
Poder: 0
carlos v.p.l. Va por buen camino
orale con tu opcion uno ya no me marca error , como puedo ver el resultado es decir si kisiera ver en un Edit3 por ejemplo el nombre que encontro (xD que obviamente es el ke ingrese je je je), com puedo hacer eso y grax de new o por ejemplo en un tdbgrid que se encuentre = en mi form5 que se posicione en la fila del nombre encontrado(el dbgrid estaria conectado con un datasourc hacia la tabla cliente =)
Responder Con Cita
  #20  
Antiguo 19-06-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código Delphi [-]
procedure TForm5.Button1Click(Sender: TObject);
begin
    DataModule2.cliente.Close;
    DataModule2.cliente.SQL.Text:='select nombre from cliente where nombre like'+quotedstr(Edit2.Text);
    DataModule2.cliente.Open;
   Edit3.text:= DataModule2.cliente.fields[0].AsString;
end;
Saludos
__________________
Siempre Novato
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
Funcion para borrar la cadena que aparesca repetida dentro de otra cadena flystar Varios 1 02-07-2007 23:51:10
Funcion para buscar cadena dentro de otra cadena y el numero de veces flystar Varios 3 02-07-2007 22:48:08
buscar dentro de una cadena con repetición jzginez Varios 4 12-05-2006 21:40:18
Remplazar un caracter dentro de una cadena Coco_jac Varios 5 01-12-2005 17:36:27
Buscar cadena dentro de otra cadena doverzhoff Varios 4 27-01-2004 05:27:15


La franja horaria es GMT +2. Ahora son las 15:21:23.


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