Hola Tengo una tabla en MySQL, con cotejamiento utf8_spanish_ci (tabla y campo nombre)
y un mtodo de bsqueda as:
[code] sql = “SELECT * FROM pacientes where nombre like ? order by nombre;”
ps = me.Prepare(sql)
ps.BindType(0, MySQLPreparedStatement.MYSQL_TYPE_STRING)
ps.Bind(0, tx+"%")
rs = ps.SQLSelect
[/code]
Tengo un paciente con apellido “PIAR”,
Si busco %pi me lo encuentra junto a todos que contenga “pi” en el nombre.
Pero si busco %pi no encuentra nada. Con los acentos es igual.
En la base de datos se ve correctamente.
Ese campo estaba antes como latin_spanish… y se ha cambiado a utf…
Desde sql con phpmyadmin la consulta se realiza bien, pero desde xojo no.
Me respondo a mi mismo por si le sirve a alguien:
Eh agregado en la conexin:
me.db.SQLExecute("set names utf8 collate utf8_spanish_ci")
me.db.SQLExecute("set character set utf8")
Y se ha solucionado el problema.
Hola Cecilio,
¿Por qué utf8_spanish_ci
en vez de utf8_general_ci
? En cualquier caso, prueba Justo después de conectar con la base de datos a ejecutar:
mibbdd.SQLExecute("set names utf8 collate utf8_spanish_ci")
mibbdd.SQLExecute("set character set utf8")
Si sigue sin funcionar, ¿obtienes el mismo problema cuando haces la consulta sin utilizar los PreparedStatements?
Saludos,
Javier
Nos hemos solapado. jeje
Uso utf8_spanish_ci porque una vez le que era ms preciso para nuestro alfabeto, y ya que est…
Gracias Javier.