![]() |
ADOQuery y consulta con LIKE
buenos dias, estoy retocando un programa antiguo desarrollado en Delphi 6 y me sucede, ahora, antes no sucedia, que cuando le asigno la sentencia SQL a un ADOQuery y esta contiene una condicion LIKE para filtrar los campos que va a obtener de la base de datos, siempre devuelve vacio, es como si no funcionara el LIKE, la base de datos esta en microsoft Access version 2003, utilizo las comillas ' y el comodin de * ya que el campo a comprara es texto, por ejemplo, una consulta que me devuelve vacio es esta SELECT Inicial FROM PremisasAcc WHERE Codigo LIKE 'CPSV_2025*', sin embargo coloco su codigo en access y si devuelve correctamente los resultados
|
|
Creo que con msaccess es con asterisco en lugar de % y el guión subrayado en lugar de ?
|
Cita:
|
Muestra tu código para revisar lo que dices, quizas el error este en las comillas, en código debes usar "QuotedStr" para reemplazar las comillas.
|
Cita:
|
Pues si no muestras un poco de código de esa búsqueda, bueno no hay como ayudarte.
|
Cita:
|
Ya vi tu problema, es el query que lo liberas y al hacerlo se pierden los registros, trata de hacerlo como una variable de formulario.
|
Cita:
if not QLista.IsEmpty //=>la lista esta vacia, no se obtuvieron registros, cambio la consulta de seleccion eliminando el LIKE y me devuelve registros, verifico la consulta con el LIKE en access y esta bien, devuelve los registros que son segun sea la condicion LIKE antes el LIKE funcionaba, ahora no, algo mas paso y no me di cuenta |
Hice un pequeño ejemplo con una bd de access y el problema es el * y debes usar %
Use access 2013 proveedor "Provider=Microsoft.ACE.OLEDB.12.0" y una tabla con campo texto nombre. Funciona lo de arriba. |
Cita:
voy a probar a ver, no recuerdo si usaba % anteriormente en los LIKE o siempre use *, incluso cambie el proveedor entre ese q usaste y "Provider=Microsoft.Jet.OLEDB.4.0" y obtenia el mismo resultado |
gracias marcos3k, era eso, el %, vaya q clase de pifia, es q hacia tiempo no retocaba esos programas
|
La franja horaria es GMT +2. Ahora son las 11:20:27. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi