Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-10-2008
raulmm26 raulmm26 is offline
Miembro
 
Registrado: feb 2005
Posts: 37
Poder: 0
raulmm26 Va por buen camino
error con consulta numerica

Hola, estoy intentado hacer una consulta y para buscar en un campo string y a mayores en un campo numerico, pero cuando hago la busqueda solo en el campo numerico no me encuentra nada

aSql:='Select numhistoria,nombre,Apellidos,direccion,telefono,localidad,historia,antecedentesmedicos,recetas from historia where Apellidos like' +QuotedStr(bsskinEdit7.Text+'%')+' or telefono like'+qutedstr(bsskinedit8.text) +'order by Apellidos, nombre';
MyQuery1.SQL.Add(aSql);
MyQuery1.Open;

donde bsskinedit8.text es el d ato para buscar en el campo numerico
Responder Con Cita
  #2  
Antiguo 04-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
hola, si 'telefono' es un campo numerico, no deberias usar ni quotedstr ni like, tansolo hacer '...telefono = ' + TelefonoEdit.Text. Saludos.
Responder Con Cita
  #3  
Antiguo 04-10-2008
raulmm26 raulmm26 is offline
Miembro
 
Registrado: feb 2005
Posts: 37
Poder: 0
raulmm26 Va por buen camino
tampoco me funciona de esa forma, no me encuentra nada, estoy usando mysql
Responder Con Cita
  #4  
Antiguo 04-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
el campo numerico debe ser tal como te comentaba. Es muy raro que no te funcione con '... or Telefono = ' + bsskinedit8.text + ' order by ...'. ¿Has limpiado la consulta antes de el .Add? (MyQuery1.SQL.Clear).
Responder Con Cita
  #5  
Antiguo 04-10-2008
raulmm26 raulmm26 is offline
Miembro
 
Registrado: feb 2005
Posts: 37
Poder: 0
raulmm26 Va por buen camino
si

MyQuery1.Close;
Myquery1.SQL.Clear;
aSql:='Select numhistoria,nombre,Apellidos,direccion,telefono,localidad,historia,antecedentesmedicos,recetas from historia where Apellidos like' +QuotedStr(bsskinEdit7.Text+'%')+' or telefono ='+ bsskinedit8.text +'order by Apellidos, nombre';
MyQuery1.SQL.Add(aSql);
MyQuery1.Open;

asi es como lo tengo ahora y sigue sin ir
Responder Con Cita
  #6  
Antiguo 04-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Me refiero ... la sentencia 'Select ... from historia where Apellidos like' +QuotedStr(bsskinEdit7.Text+'%')+' or telefono = ' + bsskinedit8.text +' order by Apellidos, nombre' es correcta. El error no esta aqui, siempre claro esta que bsskinedit8.text tenga un numero que exista en la base de datos.
Responder Con Cita
  #7  
Antiguo 04-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
¿y telefono es un campo numerico?
Responder Con Cita
  #8  
Antiguo 04-10-2008
raulmm26 raulmm26 is offline
Miembro
 
Registrado: feb 2005
Posts: 37
Poder: 0
raulmm26 Va por buen camino
si, cuando me referia a campo numerico, me referia a 'telefono'
Responder Con Cita
  #9  
Antiguo 04-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Pues la sentencia esta correcta, y no parece que haya mas misterio...
Responder Con Cita
  #10  
Antiguo 04-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Fijate en el valor de bsskinEdit8.Text, a ver si es q te has confundido de Edit o coge un valor extraño por algun otro motivo...tambien, claro esta q tenga datos numericos la base de datos concorde a los que pides...saludos.
Responder Con Cita
  #11  
Antiguo 04-10-2008
raulmm26 raulmm26 is offline
Miembro
 
Registrado: feb 2005
Posts: 37
Poder: 0
raulmm26 Va por buen camino
pero no habria que convertir el bsskinedit8.edit a entero para que lo reconociese, ya que lo que haces es comparar un string con un campo numerico. eso es lo que pieso yo pero no se que sentencia tengo que usa para harcer eso
Responder Con Cita
  #12  
Antiguo 04-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
no no... no lo probaste, ¿cierto? tienes q tener en cuenta q la cadena sql la 'parsea' el servidor sql, no tu. Por lo tanto, bsskinedit8.text como string es correcto siempre y cuando dentro tenga un numero. Si no, el servidor sql te saltara la excepcion...Tu lo unico que estas haciendo es crear un string (sql.text)....por eso el uso de quotedstr cuando quieres insertar una cadena, pues es una cadena dentro de otra.
Responder Con Cita
  #13  
Antiguo 04-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
por ejemplo, con lo que tu tenias al principio, el servidor sql veia (y ejecutaba) esto

select * from historia where Apellidos like 'ramirez%' or telefono like '94232432'

mientras que con lo que te he escrito, ejecuta esto

select * from historia where Apellidos like 'ramirez%' or telefono = 94232432

lo mismo si fuese un campo boolean

select * from historia where si_no = true (y no where si_no = 'true')

Última edición por coso fecha: 04-10-2008 a las 12:39:42.
Responder Con Cita
  #14  
Antiguo 04-10-2008
raulmm26 raulmm26 is offline
Miembro
 
Registrado: feb 2005
Posts: 37
Poder: 0
raulmm26 Va por buen camino
si lo probe y no me muestra nada, y pongo numeros. es muy extraño esto pero no se donde puede estar el fallo. tambien en el myquery en la parte de SQL tengo esta sentencia

Select numhistoria,nombre,Apellidos,direccion,telefono,localidad,historia,antecedentesmedicos,recetas from historia where Apellidos like :bsskinEdit7.text% or telefono like :bsskinEdit8.text order by Apellidos, nombre

pero no se donde estara el fallo
Responder Con Cita
  #15  
Antiguo 04-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
...or telefono like :bsskinEdit8.text ...

el like, no. Debes usar el = o bien > <. El like es para comparar cadenas.
Responder Con Cita
  #16  
Antiguo 04-10-2008
raulmm26 raulmm26 is offline
Miembro
 
Registrado: feb 2005
Posts: 37
Poder: 0
raulmm26 Va por buen camino
si lo probe y no me muestra nada, y pongo numeros. es muy extraño esto pero no se donde puede estar el fallo. tambien en el myquery en la parte de SQL tengo esta sentencia

Select numhistoria,nombre,Apellidos,direccion,telefono,localidad,historia,antecedentesmedicos,recetas from historia where Apellidos = :bsskinEdit7.text% or telefono like :bsskinEdit8.text order by Apellidos, nombre

pero no se donde estara el fallo
Responder Con Cita
  #17  
Antiguo 04-10-2008
raulmm26 raulmm26 is offline
Miembro
 
Registrado: feb 2005
Posts: 37
Poder: 0
raulmm26 Va por buen camino
Perdon
Select numhistoria,nombre,Apellidos,direccion,telefono,localidad,historia,antecedentesmedicos,recetas from historia where Apellidos like :bsskinEdit7.text% or telefono = :bsskinEdit8.text order by Apellidos, nombre

pero no hace nada
Responder Con Cita
  #18  
Antiguo 04-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
a ver...esta sentencia tal cual esta escrita...copy&paste

Select numhistoria,nombre,Apellidos,direccion,telefono,localidad,historia,antecedentesmedicos,recetas from historia where Apellidos like ' + QuotedStr(bsskinEdit7.text + '%') + ' or telefono = ' + bsskinEdit8.text + ' order by Apellidos, nombre'

saludos.

Última edición por coso fecha: 04-10-2008 a las 12:43:08.
Responder Con Cita
  #19  
Antiguo 04-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Como te digo...si esto no te funciona...tienes un sql raro o no tienes datos correctos en la bd o bsskinedit8
Responder Con Cita
  #20  
Antiguo 04-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
¿que? ¿te va?
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
Una duda numérica jafl1965 Humor 36 07-11-2007 00:55:59
Consulta numerica alcides SQL 4 05-08-2005 15:50:20
Extraer referencia numerica de un texto asegurpe Varios 4 13-06-2005 13:39:43
Crear secuencia numerica con un procedimiento almacenado DobleSiete SQL 9 15-04-2005 22:28:25
Formatear cadena numérica a la derecha dentro de un richtext cesargcman Varios 1 09-05-2004 18:45:53


La franja horaria es GMT +2. Ahora son las 21:51:39.


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