FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
hola, si 'telefono' es un campo numerico, no deberias usar ni quotedstr ni like, tansolo hacer '...telefono = ' + TelefonoEdit.Text. Saludos.
|
#3
|
|||
|
|||
tampoco me funciona de esa forma, no me encuentra nada, estoy usando mysql
|
#4
|
|||
|
|||
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).
|
#5
|
|||
|
|||
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 |
#6
|
|||
|
|||
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.
|
#7
|
|||
|
|||
¿y telefono es un campo numerico?
|
#8
|
|||
|
|||
si, cuando me referia a campo numerico, me referia a 'telefono'
|
#9
|
|||
|
|||
Pues la sentencia esta correcta, y no parece que haya mas misterio...
|
#10
|
|||
|
|||
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.
|
#11
|
|||
|
|||
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
|
#12
|
|||
|
|||
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.
|
#13
|
|||
|
|||
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. |
#14
|
|||
|
|||
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 |
#15
|
|||
|
|||
...or telefono like :bsskinEdit8.text ...
el like, no. Debes usar el = o bien > <. El like es para comparar cadenas. |
#16
|
|||
|
|||
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 |
#17
|
|||
|
|||
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 |
#18
|
|||
|
|||
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. |
#19
|
|||
|
|||
Como te digo...si esto no te funciona...tienes un sql raro o no tienes datos correctos en la bd o bsskinedit8
|
#20
|
|||
|
|||
¿que? ¿te va?
|
|
|
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 |
|