![]() |
|
Модераторы: Akina |
![]()
|
|
| admsasha |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
Пишу, в теме mysql т.к. больше такой глюк нигде не проявляется
строка для подключения к базе
Есть вот такой код
На выводе (row(0).value) получаю "????". Почему так ? Буквы латинские. С консоли показывает данные (вывод "aaabbbccc") нормально. Это сообщение отредактировал(а) admsasha - 22.1.2010, 11:34 |
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Вот именно так - строка длиной 4 байта с четырьмя знаками вопроса? Добавлено через 37 секунд И покажи определение переменной Row. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
Да, именно так. Почему я и уточнил, что буквы английские, что это не из-за кодировки. Причем если слово в IF будет длинным, то и знаков "?" будет больше. Dim Row As ADODB.Recordset |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Но при "слове" в 9 символов даётся именно 4 знака вопроса, так? А это - честные знаки вопроса, CHR(&H3F)? проверь... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
интересно, что через каждые три знака добавляется этот символ
эти проверки через "окно отладки", курсивом выделил вывод ? asc(mid(row(0).Value,1,1)) 63 ? mid(row(0).Value,1,1) = CHR(&H3F) False StrSQL="select IF(1=1,'1234',3)" Set Row = cnnADO.Execute(StrSQL, , adCmdText) ? row(0).Value ?? StrSQL="select IF(1=1,'aaaaaa',3)" Set Row = cnnADO.Execute(StrSQL, , adCmdText) ? row(0).Value ??? StrSQL="select IF(1=1,'1234567',3)" Set Row = cnnADO.Execute(StrSQL, , adCmdText) ? row(0).Value ??? StrSQL="select IF(1=1,'123456',3)" Set Row = cnnADO.Execute(StrSQL, , adCmdText) ? row(0).Value ??? StrSQL="select IF(1=1,'12345678',3)" Set Row = cnnADO.Execute(StrSQL, , adCmdText) ? row(0).Value ???? StrSQL="select IF(1=1,'123456789',3)" Set Row = cnnADO.Execute(StrSQL, , adCmdText) ? row(0).Value ???? вообще не понимаю Добавлено через 3 минуты и 52 секунды И вот еще, версия mysql 5.1.34 Это сообщение отредактировал(а) admsasha - 22.1.2010, 15:25 |
|||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Посмотрел хелп по ADO. Посмотрел пример... так вот - текстовые значения возвращаются с типом adLongVarWChar (203) - a long null-terminated Unicode string value, которое надо бы попробовать конвертировать во что-нить более пригодное к использованию. Потому как если написАть
результат получается предсказанно-корректный. Добавлено через 2 минуты и 50 секунд PS. Использовал коннектор 5.1.8. PPS. MS Access через DSN соединяется без проблем и получает все данные корректно, в т.ч. строковые. Добавлено через 4 минуты и 20 секунд PPPS. Содержимое DSN-файла в общем вполне предсказуемо:
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| admsasha |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
Да, так выводит как надо и даже StrSQL="SELECT if(1=1,'aaa','bbb') выводит правильно. Вообще в оригинале мне нужен вот такой код:
т.е. если показывать дату либо ничего не показывать... Но выводит точно также несколько знаков "?" :( Добавлено через 3 минуты и 55 секунд Вот что получается, если в IF типы одинаковые, то выводит нормально т.е.
выводит всё номально, НО мне нужно именно '' (пустое значение) |
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
а если нечто типа
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
Поразительно ! Сработало !!!
Я так понял, "баг" обошелся через преобразование типа в char. Но всё же интересно, зачем так, хотя уже и не так важно |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |