Vb.net Затык с исполнением Insert Into

Тема в разделе ".NET", создана пользователем _Mike, 19 мар 2007.

Статус темы:
Закрыта.
  1. _Mike

    _Mike Гость

    Ввожу в обычную виндовую форму данные, собираю их в выражение INSERT INTO и пытаюсь добавить с его помощью запись в таблицу БД. В отладке получаю (скопировано):
    strInsert = "INSERT INTO person (familija,imja,otchestvo,fio,layer,chef) VALUES ("Грап","Илья","Ильич","Грап И.И.","2","4")"
    Далее код:
    Dim cmdDocument As New OdbcCommand(strInsert, ODBCcn)
    На следующей строке кода:
    cmdDocument.ExecuteNonQuery() - получаю ошибку: ERROR [HYT00] [MySQL][ODBC 3.51 Driver][mysqld-5.0.22-community-nt]Data too long for column 'familija' at row 1
    Это неправда, потому что:
    1. в таблице уже есть много записей, с куда более длинными фамилиями
    2. этот же самый запрос, введенный и исполненный в эксплорере MySQL отрабатывает без вопросов.
    К сведению: замена кавычек на апострофы никак не влияет на результат (абсолютно то же), исполнение или неисполнение инструкции:
    Dim cmdCodePage As New OdbcCommand("set character_set_results='cp1251'", ODBCcn)
    cmdCodePage.ExecuteScalar()
    так же на результат не влияет. Че делать? (Особо сложные советы могу не понять - я еще совсем "зеленый" (не путать с "голубым") и то что изложил - практически предел моих возможностей на данный момент) :)
     
  2. _Mike

    _Mike Гость

    Только что заметил на MSDN.ru:
    "OdbcCommand - класс
    Примечание. Это пространство имен, класс или член поддерживаются .NET Framework только версии 1.1. " - может в этом дело? - у меня 2-ой... Но SELECTы прекрасно работают.... И там не написано, чем заменить
     
  3. _Mike

    _Mike Гость

    В общем выяснил в чем дело. Если ввожу данные латиницей, то все работает, - т.е., запись в БД добавляется. Ну и что же тогда делать? Для каждого текстового поля таблицы в БД задана ср1251, иначе вообще ничего прочесть невозможно. Selectы отрабатывают нормально, если в коде имеется это:
    Dim cmdCodePage As New OdbcCommand("set character_set_results='cp1251'", ODBCcn)
    cmdCodePage.ExecuteScalar() (иначе возвращаются вопросики)
    А INSERT с кирилицей не работает никак ...
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей