Страница: 1 |
Страница: 1 |
Вопрос: Проблема с кириллицей при INSERT в MySQL
Добавлено: 21.03.07 23:53
Автор вопроса: Mike
Пытаюсь из VB.net через ODBC выполнить INSERT INTO ...
Если ввожу данные латиницей, то все работает, - т.е., запись в БД добавляется, если кириллицей - выдает чушь, типа данные для поля ХХХХ слишком длинные. Для каждого текстового поля таблицы в БД задана ср1251, иначе вообще ничего прочесть невозможно. Selectы отрабатывают нормально, если в коде имеется это:
Dim cmdCodePage As New OdbcCommand("set character_set_results='cp1251'", ODBCcn)
cmdCodePage.ExecuteScalar() (иначе возвращаются вопросики)
А INSERT с кирилицей не работает никак ... Че делать то?
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #1
Добавлено: 22.03.07 11:04
set character set cp1251
Номер ответа: 2
Автор ответа:
Mike
Вопросов: 1
Ответов: 3
Профиль | | #2
Добавлено: 22.03.07 21:46
Лаконичность - это бесспорно достоинство мужчины, но, к сожалению, не могу его оценить, т.к., во-первых, если бы знал, куда и как это засунуть, то не стал бы и спрашивать, а, во-вторых, что-то мне это сильно напоминает... Не то ли это самое, что написано в моем посте?
Номер ответа: 3
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #3
Добавлено: 22.03.07 23:45
Ищем отличия.
set character_set_results='cp1251'
set character set cp1251
Номер ответа: 4
Автор ответа:
Mike
Вопросов: 1
Ответов: 3
Профиль | | #4
Добавлено: 23.03.07 00:36
ОК. Теперь я знаю (верю), что это разные вещи (ты это теперь сказал). И догадываюсь, что ты советуешь мне это где-то как-то написать. А может просто издеваешься (я не знаю). Если бы знал, что, как и куда, то зачем бы я стал беспокоить почтенную публику глупыми вопросами?
Номер ответа: 5
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #5
Добавлено: 23.03.07 02:35
Ну наверно можно было догадаться, что это SQL-запрос. Или погуглить по этому словосочетанию и убедиться в этом. С какой целью обычно отвечают на вопрос SQL-запросом? Видимо, тот, кто ответил, предлагает этот SQL-запрос выполнить? Зачем? Интересный вопрос, он во многом зависит от мотивации отвечающего. Но обычно все же на форумах мотивация отвечающего заключается в том, чтобы подсказать направление поиска для спрашивающего. Таким образом, если предположить, что спрашивающего интересует ответ на свой вопрос или решение его проблемы, то приведенный в качестве ответа SQL-запрос надо выполнить именно для решения этой самой проблемы.
Номер ответа: 6
Автор ответа:
Mike
Вопросов: 1
Ответов: 3
Профиль | | #6
Добавлено: 23.03.07 13:38
Я совершенно согласен с твоим анализом. Я заострил на ситуации внимание, именно потому, что она типична. Проблама в том, что специалисту часто кажется очевидным то, что для новичка таковым вовсе не является. Можешь ли ты представить себе, что SQL-выражения я до сих пор (я начал постигать VB.net и MySQL 3 недели назад) отличал лишь по ключевым словам типа SELECT, INSERT, ну еще Create, Delete и еще несколько... Да, одним из предположений по поводу твоего выражения, было, что это как-то надо отправить базе, но в запросе, или через параметр какого-то метода какого-н бейсиковского объекта - без понятия... + учитывая возможность, что ответ носит общий характер, а не точный синтаксис (комментов ведь никаких...). Тем не менее, среди прочих манипуляций, я попробовал механически заменить твоим выражением похожее место в моем коде и, как ни странно, обнаружил... что ничего не изменилось - твой вариант работает, но точно также как мой исходный. Я и сейчас не представляю, как ты подразумеваешь использование своего варианта. Ну, а саму проблему я решил (помогли). (Изложу для общего блага в отдельном посте ниже совершенно конкретное решение (вечером, сейчас с собой нет)).