всё в mysql хранится в utf8
как только я пытаюсь записать в базу русский текст, сразу ошибка. "Драйвер ODBC не поддерживает требуемые свойства."
- Код: Выделить всё
Dim Cnn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Cmd As ADODB.Command
Set Cnn = New ADODB.Connection
Set Rs = New ADODB.Recordset
Set Cmd = New ADODB.Command
Cnn.ConnectionString = strConn
Cnn.Open
Cmd.ActiveConnection = Cnn
name = "рус"
q = "insert into test(name) values ('" & name & "');"
Rs.Open q, Cnn, adOpenKeyset, adLockPessimistic
пробовал ставить сразу после подключения к базе:
Cmd.CommandText = "SET NAMES 'utf8';"
и так тоже:
Cmd.CommandText = "SET NAMES 'utf8' COLLATE 'utf8_unicode_ci';"
и strConn разные варианты пробовал:
strConn = "DRIVER=MySQL ODBC 5.1 Driver;SERVER=localhost;DataBase=x;UID=x;PWD=x;"
strConn = "DRIVER=MySQL ODBC 5.1 Driver;SERVER=localhost;DataBase=x;UID=x;PWD=x;charset=cp1251;"
strConn = "DRIVER=MySQL ODBC 5.1 Driver;SERVER=localhost;DataBase=x;UID=x;PWD=x;charset=utf8;"
ничего не менялось. "Драйвер ODBC не поддерживает требуемые свойства." если не не только английский текст в name.
вспомнил про команду для перевода в UTF:
name= StrConv(name, vbUnicode)
если кроме русских букв больше ничего не передавать, то работает. если пробел или цифры или английские буквы добавить в name, то ошибка. "Драйвер ODBC не поддерживает требуемые свойства."
Подскажите куда копать?
ощущение такое, что очень глобальное что то пропустил и никак понять не могу что.