Problema Mysql-Visual Fox Pro

HOla Amigo! Me llamo Sebastián. Disculpa la molestia. Es que tengo un problema para hacer consulta en mi formulario visual fox pro 9 que esta conectado con una base de datos mysql. El formulario a que me refiero tengo un textbox en donde lo que quisiera es que al escribir el nombre que me apareciera los registros que contenga ese nombre. Ej: escribo carlos en el text y que me muestre en el grid los clientes con nombre carlos.
Aquí te paso mi sql para que me orientes en que estoy errando:
lcStringCnxLocal = "DRIVER={MySQL ODBC 5.1 Driver};" + ;
"SERVER=127.0.0.1;" + ;
"PORT=3306;" + ;
"UID=root;" + ;
"PWD=;" + ;
"DATABASE=stock;" + ;
"OPTIONS=131329;"
SQLSETPROP(0,"DispLogin" , 3 )
lnHandle = Sqlstringconnect(lcStringCnxLocal)
IF lnHandle > 0
vtexto = ALLTRIM(UPPER(thisform.text8.Value))
if (SQLEXEC(lnHandle,"SELECT personal.per_ci,personal.per_nom FROM personal WHERE per_nom LIKE '%vtexto%'","xpersonal"))>0 then
thisform.grid1.recordsource="xpersonal"
thisform.refresh
endif
else
WAIT WINDOW ("mensaje de error conexion MySQL")
Endif
Desde ya agradecido!.

1 Respuesta

Respuesta
1
¿De pronto es la primera consulta con la cual tienes problemas? Porque lo único que vería raro es que en el like pongas '%vtexto%' y creo que esta buscando ese valor osea vtexto y no el contenido de vtexto, de pronto podrías probar poniendo '%'+vtexto+'%' o en su defecto armando la cadena del sql en una variable, suerte
Y cómo sería armar la cadena del sql en una variable. Si me puedes editar con mi ejemplo. Desde ya gracias por su generosidad!
Seria así :
vtexto = "select per_ci,per_nom from personal where per_nom like '%" + alltrim(upper(thisform.text8.value)) + "%'"
if (sqlexec(lnhandle,vtexto,"xpersonal")) > 0
thisform.grid1.recordsource="xpersonal"
Thisform. Grid1. Refresh
Endif

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas