Pasar parametros con SQLEXEC a postgresql

376 views
Skip to first unread message

Felipe Araoz Ramos

unread,
Jun 27, 2013, 3:33:05 PM6/27/13
to publice...@googlegroups.com
Amigos del foro buenos dias.

Estoy pasando una consulta,  a un base de datos postgres:
capturando los datos en una textbox y luego lo asigno a la variables xid_clientes

 miconsulta0="select id_clientes, cli_nombre, cli_direccion, cli_telefono, cli_contacto from clientes where id_clientes like ?xid_clientes or cli_nombre like ?xcli_nombre"
x=SQLEXEC(lnHandle,
miconsulta0)

Si textbox contiene 'FELIPE' , no me muestra nada
pero si al textbox le pongo '%FELIPE%', me funciona bien., pero no es practico que un usuario este consultando asi.  Por eso; a la variabe del texbox le estoy agregando %
xid_clientes="%"+xid_clientes+"%", pero al ejecutar SQLEXEC, no obtengo la consulta deseada

A la espera de su ayuda

Felipe

Hector R. De los Santos

unread,
Jun 27, 2013, 4:01:07 PM6/27/13
to publice...@googlegroups.com
Felipe:

Usa mejor TEXT/ENDTEXT para armar tus consultas, es mas comodo y mas facil de entender.
Para tu caso, hay que verificar que esta guardando tu variable y si en realidad se cumple con algun registro en esa tabla.
Prueba asi:

TuVariable='%'+alltrim(thisform.txtTuTextBox.value)+'%'

TEXT TO sQuery NOSHOW TEXTMERGE
Select id_clientes, cli_nombre, cli_direccion, cli_telefono, cli_contacto 
From clientes 
Where id_clientes Like ?TuVariable 
Or cli_nombre Like ?TuVariable
ENDTEXT


SqlExec(lnHandle,sQuery,'tuCursor')


PSD: Encuentro raro que estes buscando el nombre del cliente en el campo ID.

Suerte!

:: HDS Consultores TI
Servidores | Redes | Programacion | GNU/Linux | PostgreSQL
Web: http://hdsconsultores.net
Blog: http://codigohds.com
Linux User #:320363

Alfonso Ramirez Diaz

unread,
Jun 27, 2013, 4:30:54 PM6/27/13
to publice...@googlegroups.com
Estimado Felipe

Lo que pasa es que la instrucción LIKE dentro del SQL funciona como un filtro, por ejemplo :

1.- si colocas: nombre LIKE 'FELIPE' te buscara los que sean identicos

2.- si colocas:  nombre LIKE 'FELIPE%' te buscara los que comiencen con FELIPE

3.- si colocas: nombre LIKE '%FELIPE%' te buscara los que tengan FELIPE en cualquier lado de la cadena, inicio, final, medio, etc.

Lo que puedes es antes de usar la variable colocarle los signos %, ejemplo:

mi_variable = "%" + ALLTRIM(mi_variable) + "%"

SELECT * FROM clientes WHERE nombre LIKE ?mi_variable

MALKASOFT ADPI: http://www.developervfp.blogspot.com/

unread,
Jun 27, 2013, 7:05:12 PM6/27/13
to publice...@googlegroups.com
Hola no mas para agregar lo que Alfonso te esta diciendo, lo que no entiendo porque buscas por ID_Cliente, yo te sugiero que solo la búsqueda lo hagas por el nombre o que es lo que necesitas?, necesitas que la consulta te saca todas las que coinciden con FELIPE o solo quieres que la consulta te devuelva el dato de FELIPE; si quieres te de los datos que coincidan con FELIPE usa lo que te esta diciendo Alfonso y sino no usas LIKE solo =


 Pd.: Descargate mi grilla que tiene multiples funciones como filtrar, multiseleccion, búsqueda, etc del siguiente link http://www.developervfp.blogspot.com/p/gridlibre-v35.html. Ahora también puedes bajarte mi ultima herramienta Busqueda Incremental con un TEXTBOX http://developervfp.blogspot.mx/p/busqueda-incremental-con-un-textbox.html  las herramientas viene con código fuente, ojo no hacer mal uso por favor. 


Saludos; 


Ing. Russvell Jesus Soto Gamarra 
San Juan del Rio - Queretaro - Mexico 
Nextel.: 52*133750*16
rycjesusrj @ hotmail.com

Felipe Araoz Ramos

unread,
Jun 28, 2013, 12:04:30 AM6/28/13
to publice...@googlegroups.com
Gracias por sus repuestas

Se soluciono, el problema era el campo de id_clientes, lo quité y funcionó.  No me habia dado cuenta.   Gracias Hector utilizare el TEXT/ENDTEXT.  Russvell he descargado tus ejemplos y los revisaré para implementarlos.
Reply all
Reply to author
Forward
0 new messages