Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Настройка ODBC / 10 сообщений из 10, страница 1 из 1
07.08.2013, 13:12:28
    #38358176
egorius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка ODBC
Имеется ODBC подключение к MySQL серверу. Проблема в следующем:
- при использовании драйвера 5.1 при попытке вставки в таблицу получаю ошибку
Server does not support 4-byte encoded UTF8 characters
- при использовании драйвера 3.51 вышеуказанная ошибка пропадает, но при запросе SELECT... возвращается только первая строчка (с 5.1 такого не происходит)

Не хочется устраивать зоопарк из отдельных драйверов для каждого запроса, как бы заставить работать правильно хотя бы один из них?
...
Рейтинг: 0 / 0
07.08.2013, 13:31:38
    #38358213
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка ODBC
egorius,

так вы покажите тут "хотя бы один из них"

и ещё - с вашей стороны одбц-драйвера какой клиент?
...
Рейтинг: 0 / 0
07.08.2013, 13:47:13
    #38358244
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка ODBC
egoriusно при запросе SELECT... возвращается только первая строчка (с 5.1 такого не происходит)ХШ говорит, что вы пытаетесь вставить несколько записей несколькими же запросами в одном "батче". Или посылайте каждый запрос отдельно, или включайте multiple statements в св-вах подключения - http://dev.mysql.com/doc/refman/5.0/en/connector-odbc-configuration-connection-parameters.html#codbc-dsn-option-flags
PS. Кстати, поиск выдаёт это и это .
...
Рейтинг: 0 / 0
07.08.2013, 14:39:06
    #38358344
egorius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка ODBC
tangliregorius,
так вы покажите тут "хотя бы один из них"



Все параметры по-умолчанию, кроме Disable transaction support, который я установил в 1
tanglirи ещё - с вашей стороны одбц-драйвера какой клиент?
Ascential DataStage 7.5.2
tanglirХШ говорит, что вы пытаетесь вставить несколько записей несколькими же запросами в одном "батче". Или посылайте каждый запрос отдельно, или включайте multiple statements в св-вах подключения

Кто такой ХШ и с чего он взял, что я выполняю пакет?
Еще разок:
- на драйвере 5.2 при инсерте у меня ошибка размера UTF символов. Селект возвращает правильное количество строк
тот самый поиск дает два вариант решения - проапгрейдить сервер (не мой вариант) и использовать версию драйвера 3.5, что я и сделал
- на драйвере 3.5 проблемы с инсертом ушли, но при любом запросе я получаю только одну строку. На 5.2 такой проблемы не было.
поиск дает такой вариант решения: установить параметр "numeric setting" в значение "Use US settings". В списке параметров ничего похожего не нашел
...
Рейтинг: 0 / 0
07.08.2013, 19:31:27
    #38358790
lookat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка ODBC
egorius,

Есть два варианта ODBC 5.2 драйверов -- Unicode и ANSI.
(и только один вариант драйвера 3.51 -- ANSI).
Какой используете? Если только один из двух, то мб попробовать второй?
...
Рейтинг: 0 / 0
08.08.2013, 05:30:09
    #38359053
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка ODBC
egoriusКто такой ХШ и с чего он взял, что я выполняю пакет?1)ХШ - Хрустальный Шар. Помогает форумным телепатам и уподобляющимся им догадываться о не озвученных, но важных моментах :)
2)С того, что "селект возвращает только одну строку". Откуда следует очевидный вывод, что должен возвращать не одну, иначе вы бы этого и не писали. Откуда следует другой, не менее очевидный вывод, что и вставлять вы пытаетесь не одну строку, а несколько. Ну а самая очевидна причина, почему они все не вставляются - батч-вставка + отключенный параметр "Allow multiple statements". Кстати, это подтверждается вашим скриншотом (посмотрите внимательно на вторую снизу галочку).

egorius- на драйвере 3.5 проблемы с инсертом ушли, но при любом запросе я получаю только одну строку.Т.е. при любом запросе к любой таблице, даже к той, где ещё до всех ваших попыток инсерта были записи? Так и надо было сразу написать. Как можно понять ваш стартпост без этого уточнения - см. выше :)
...
Рейтинг: 0 / 0
08.08.2013, 09:06:40
    #38359117
egorius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка ODBC
lookategorius,

Есть два варианта ODBC 5.2 драйверов -- Unicode и ANSI.
(и только один вариант драйвера 3.51 -- ANSI).
Какой используете? Если только один из двух, то мб попробовать второй?
Пробовал оба варианта. ANSI вариант даже селектит с ошибками, так как база юникодовая. Юникодовый драйвер спотыкается только при инсерте.
...
Рейтинг: 0 / 0
08.08.2013, 09:12:37
    #38359125
egorius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка ODBC
tangliregoriusКто такой ХШ и с чего он взял, что я выполняю пакет?1)ХШ - Хрустальный Шар. Помогает форумным телепатам и уподобляющимся им догадываться о не озвученных, но важных моментах :)
2)С того, что "селект возвращает только одну строку". Откуда следует очевидный вывод, что должен возвращать не одну, иначе вы бы этого и не писали. Откуда следует другой, не менее очевидный вывод, что и вставлять вы пытаетесь не одну строку, а несколько. Ну а самая очевидна причина, почему они все не вставляются - батч-вставка + отключенный параметр "Allow multiple statements". Кстати, это подтверждается вашим скриншотом (посмотрите внимательно на вторую снизу галочку).

egorius- на драйвере 3.5 проблемы с инсертом ушли, но при любом запросе я получаю только одну строку.Т.е. при любом запросе к любой таблице, даже к той, где ещё до всех ваших попыток инсерта были записи? Так и надо было сразу написать. Как можно понять ваш стартпост без этого уточнения - см. выше :)

Не, хрустальный шар ошибается. Инсерты я делаю по одному, но в цикле (а не в батче). "Allow multiple statements" в моем случае в принципе не актуален, так как стейжу на выходе нужен только один набор данных, а результаты нескольких выражений его с ума сведут :) Ну и что бы уж совсем убедить ХШ - в логах одбс на каждую сессию идет по одному запросу :)
...
Рейтинг: 0 / 0
08.08.2013, 11:52:01
    #38359403
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка ODBC
Ну, ошибается, так ошибается. Бывает и такое :)
А результат выполнения каждого отдельного инсерта - положительный? Ошибок в процессе не возникает? Пробовали обернуть всю эту кучу инсертов в транзакцию (если у вас иннодб)?
...
Рейтинг: 0 / 0
08.08.2013, 18:02:48
    #38360112
egorius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка ODBC
Не, инсерты проходят без проблем.
С транзакциями так же борода - их поддержку я отключил на уровне драйвера. Была ошибка
Commands out of sync; you can't run this command now
Судя по описанию, я пытаюсь получить данные заброса не обработав данные предыдущего. В логах odbc перед выполнением каждого запроса добавляется
SELECT DISTINCT `Computer`, `SoftwareProduct`, `DataStore` FROM MetaStage_Loc_Info;
Подозреваю ругался он на меня, что я не читаю результаты этого селекта. Особо вникать в суть вопроса не стал - отключил поддержку транзакций ибо у меня там каких-то нюансов с целостностью данных быть не может.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Настройка ODBC / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]