Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-06-2004
Avatar de weke
weke weke is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia
Posts: 170
Poder: 23
weke Va por buen camino
Fnadalo, ya he modificado lo del Datamodule que me indicaste, funciona muy bien, gracias otra vez.
Con respecto a si utilizao muchos registros, pues de 100 para arriba. Antes tenía hechas una serie de consultas que me funcionaban correctamente, pero en ADO no se si cambiará en algo. La verdad es que no he tocado nada de la consulta que tenía, simplemente le he cambiado el nombre al ADOQuery y he ejecutado, pero la consulta no me devuelve nada. Un ejemplo de consulta es la siguietne:
Código Delphi [-]
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('SELECT * FROM Music WHERE Formato like "*' + aux + '*" order by Grupo');
  Query1.Active:=true;
  Query1.Open;
Si hay algún error, gracias por indicármelo.

Saludos.
__________________
De lo bueno lo mejor, de lo mejor lo superior.

Última edición por weke fecha: 08-06-2004 a las 07:55:36. Razón: faltaban datos
Responder Con Cita
  #2  
Antiguo 08-06-2004
Avatar de FNADALO
FNADALO FNADALO is offline
Miembro
 
Registrado: oct 2003
Ubicación: Palma de Mallorca
Posts: 97
Poder: 23
FNADALO Va por buen camino
Wink

Weke te paso un código que es como lo utilizo este genera
un Abm a partir de unos campos y una tabla,
Código Delphi [-]
  AdoQuery1.Close;
     AdoQuery1.SQL.Clear;
     ADOQuery1.Connection := DataModule1.ADOConnection1;

     if SqlStr.Text <>'' then
        begin
           AdoQuery1.SQL.Add(SqlStr.Text)
        end
        else AdoQuery1.SQL.Add('Select * From '+ Tabla.Text);

//     AdoQuery1.SQL.Add(SqlStr);
//     AdoQuery1.SQL.Add('Select * From '+ Tabla );
     if Busca.Text <> '' then
        begin
           AdoQuery1.SQL.Add('where '+ Busco.Text);
           AdoQuery1.SQL.Add(' LIKE '+ quotedStr(Busca.Text) +' + ' + '''%''');
        end;


     AdoQuery1.SQL.Add('ORDER BY ' + Busco.Text);
     AdoQuery1.Open;

  // Asignación al Objeto DataSource el DataSet. ---
     DataSource1.DataSet := AdoQuery1;
Fijate en la linea que tengo el Like.

Última edición por __cadetill fecha: 08-06-2004 a las 09:27:56. Razón: poner etiqueta Delphi
Responder Con Cita
  #3  
Antiguo 08-06-2004
Avatar de weke
weke weke is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia
Posts: 170
Poder: 23
weke Va por buen camino
He hecho la siguiente modificación pero sigue sin devolverme nada:

Código Delphi [-]
Query1.SQL.Add('SELECT Teléfono, Nombre, Apellidos, TeléfonoMóvil, Cumpleaños FROM '+
     'Agenda WHERE Nombre like "*' + quotedStr(aux) + '*" order by Nombre');
Seguiré probando.
__________________
De lo bueno lo mejor, de lo mejor lo superior.

Última edición por __cadetill fecha: 08-06-2004 a las 09:25:29. Razón: Poner salto de linea para evitar scroll
Responder Con Cita
  #4  
Antiguo 08-06-2004
Avatar de FNADALO
FNADALO FNADALO is offline
Miembro
 
Registrado: oct 2003
Ubicación: Palma de Mallorca
Posts: 97
Poder: 23
FNADALO Va por buen camino
Wink

Weke
no Admite el * en su lugar debes poner lo siguiente

WHERE Nombre like QuotedStr(aux)+ '%'

Pruebalo y dime cosas...
Responder Con Cita
  #5  
Antiguo 08-06-2004
Avatar de weke
weke weke is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia
Posts: 170
Poder: 23
weke Va por buen camino
He cambiado los '*' por '%', pero sigue sin devolverme nada.
También he puesto directamente lo que tu me has dicho con el mismo resultado, nada. La verdad es que me extraña mucho, pero seguro que es una tontería.
Código Delphi [-]
WHERE Nombre like ' + quotedStr(aux) + '%' + ' order by Nombre'
Tenía puesto '*' porque es el comodín de access, con el '%' no funcionaba.
Gracias.
__________________
De lo bueno lo mejor, de lo mejor lo superior.
Responder Con Cita
  #6  
Antiguo 08-06-2004
Avatar de weke
weke weke is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia
Posts: 170
Poder: 23
weke Va por buen camino
Gracias fjcg02, era eso, que no colocaba en el sitio adecuado los comodines.

Ahora si que me funciona, probaré con el resto de consultas que tengo que realizar y si me sale algún fallito más ya os lo comento.

Muchas gracias a todos por el interés y la ayuda prestada. Eso de empezar a utilizar una cosa nueva siempre te da los problemas más tontos del mundo.
Saludos.
__________________
De lo bueno lo mejor, de lo mejor lo superior.
Responder Con Cita
  #7  
Antiguo 08-06-2004
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
sigues haciéndolo como no se debe
Si vuelves a analaizar te queda
"WHERE Nombre LIKE 'valorde_aux'+% order by Nombre"
Necesitas generar
"WHERE Nombre LIKE 'valorde_aux%' order by Nombre"

Así, el códifo será
Código Delphi:
WHERE Nombre like ' + quotedStr(aux + '%') + ' order by Nombre'

Ligero detalle

Un saludete
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #8  
Antiguo 08-06-2004
Nelet Nelet is offline
Miembro
 
Registrado: may 2003
Ubicación: Picassent - Valencia
Posts: 95
Poder: 24
Nelet Va por buen camino
Me parece que os estais liando con el quotedstring, prueba asi:

Código Delphi [-]
WHERE Nombre like ' + quotedStr(aux+'*') + ' order by Nombre'

y si no

Código Delphi [-]
aux:=aux+'*';
bla...bla..bla...WHERE Nombre like ' + quotedStr(aux) + ' order by Nombre'


Como bien dices weke el comodin en access es *

Pd: es mi primera prueba con las etiquetas delphi, lo siento si no sale como debe.
Responder Con Cita
  #9  
Antiguo 08-06-2004
Avatar de weke
weke weke is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia
Posts: 170
Poder: 23
weke Va por buen camino
Question

Me ha salido otro problemilla.

Antes a la hora de buscar un registro con clave primaria de dos campos, utilizaba lo siguiente:
Código Delphi [-]
Table1.FindKey([telefono.Text, nombre.Text]);
Pero con ADO no está esta función 'FindKey'. Estoy intentando utilizar la función 'Locate', pero algo no tengo que estar haciendo bien porque me da error.
Código Delphi [-]
Table1.Locate(Table1.IndexName,[telefono.Text nombre.Text],[loCaseInsensitive]);

Gracias y un saludo.
__________________
De lo bueno lo mejor, de lo mejor lo superior.
Responder Con Cita
  #10  
Antiguo 08-06-2004
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
Si analizas lo que estás enviando como SQL, será algo como
SELECT * FROM TABLA where CAMPO LIKE "*'valor_de_aux'*"
Por eso no te devuelve nada.

Código:
Prueba a poner Query.Add('SELECT * ... WHERE CAMPO LIKE '+Quotedstr('%'+valor_de_aux+'%'))
A ver si tienes suerte.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
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


La franja horaria es GMT +2. Ahora son las 07:28:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi