1С и MySQL - не выполняет запросы #575784


#0 by KatyariK
такая проблема. Из 1с нужно периодически коннектится к MySql базе (база пропусков - чтобы анализировать внесенные табеля) так вот - через драйвер ODBC подключаюсь к серверу -  к серверу подключается все ОК (State = 1) Дальше пытаюсь выполнить запросы - подвисает и все -  и ничего не могу сделать (примеры запросов самые простые например получить версию сервера select version) Делал через ADODB.Connection  метод Execute и через ADODB.Recordset ..... короч виснет -  вот примеры как  я пробовал (их конечно гораздо больше но ...) Может у кого то такое было??? Подскажите -  а то уже пару дней сижу и не знаю что делать :( I need help!!!!!!
#1 by Азат
я какую-то дллку для связи с мускл использовал, там вроде все норм было, без косяков
#2 by Матрейя
Проверь файрвол, мож блокирует.
#3 by KatyariK
dll - ка есть, но как ее подцепить????? Файрвола там как бы нету - сам проверял, да и программки для работы с етой MySql базой на С++ работат ... т.е. не блокирует :(
#4 by Матрейя
3. драйвер я так понимаю установлен?
#5 by KatyariK
да установлен
#6 by KatyariK
DRIVER={MySQL ODBC 3.51 Driver} -  без него не подключалося к базе
#7 by Grusswelle
#8 by KatyariK
ну так он установлен
#9 by Kondarat
У меня с этим Driver={MySQL ODBC 5.1 Driver} все работает на ура.
#10 by KatyariK
ну просто для пропускной системы программа написала под MySql 3.23 - поетому я ставил MySQL ODBC 3.51 Driver (да и в принципе этот коннектор проверен временем).
#11 by shuhard
сделай файлик udl и им проверь + получи строку соединения
#12 by KatyariK
udl .... а есть пример - чтобы не искать -  потому что ни разу не делал
#13 by shuhard
пример ну делаешь текстовый файл переименовываешь открываешь далее всё очевидно
#14 by KatyariK
создал -  но в поставщике не виже MySQL ODBC Driver - хотя через панель управления при добавлении источников данных ODBC -  он есть, или чтото не так делаю?
#15 by KatyariK
наше в источнике выбрать ....  а что дальше смотретЬ:?
#16 by KatyariK
вопрос -  какой начальный каталог выбраТЬ??? -  у меня ругается -  не выполнен вход в систему .... мне пользователя указать какого -  админа MySql?
#17 by shuhard
каталог kkkk пользователь и пароль root и бланк
#18 by KatyariK
проверка подключения выполнена ... каталог забил по умолчанию, пользоватлея  root прописал .... Что дальше я могу тут увидеть?
#19 by shuhard
строку подключения, которую надо вставить в код
#20 by KatyariK
вставил - все тож самое - на том же месте виснет :( Подключение проходит -  а выполнение запроса виснет ((
#21 by shuhard
показывай код, коннект ADODB  явно рабочий
#22 by KatyariK
#23 by KatyariK
при выполнении execute - виснет
#24 by shuhard
Select vertion может version ?
#25 by KatyariK
по синтаксису правильно version -  даже через EMS MySQL Manager. да я любой другой запрос вставляю -  все равно подвисает -  я уже много запросов перепробовал
#26 by Матрейя
25. Я же пример дал. Кодировку укажи...
#27 by KatyariK
(Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [MySQL][ODBC 3.51 Driver]Unknown character set: 'cp1251' по причине: Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [MySQL][ODBC 3.51 Driver]Unknown character set: 'cp1251'   ...... вот выдало ошибку при подключении, что это может бытЬ?
#28 by KatyariK
я вчера пробовал кодировку сразу добавлять - тож ругалася так и не коннектилось. А без кодировки коннект прошел. По умолчанию стоит кодировка в базе latin1 - только что глянул.
#29 by Матрейя
27. поставь кодировку базы. я ведь просто пример дал. Оставь как в примере все, только свои значения
#30 by Матрейя
не пиши  db.ConnectionString
#31 by Матрейя
пиши как я пример дал. только create object замени и все
#32 by KatyariK
На основании етого примера: Выдает при conn.open(ConnectionString) ошибку: {Форма.Форма}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [MySQL][ODBC 3.51 Driver]Unknown character set: 'latin1' по причине: Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [MySQL][ODBC 3.51 Driver]Unknown character set: 'latin1'
#33 by Матрейя
значит поставь cp1251 или utf8
#34 by KatyariK
в строке поключения пробовал - такие же ошибки выдает. только  с cp1251 или utf8
#35 by szhukov
Table=conn.execute(СтрЗапроса); - так по-моему и не взлетит. Можно попробовать так:
#36 by szhukov
Не меняй подключение, оно же у тебя проходит нормально. Не плоди ошибки. Поменяй код выполнения запроса.
#37 by KatyariK
RS.Open(СтрЗапроса, conn);  -  попробовал -  виснет на методе Open :(
#38 by KatyariK
соединение ели не задаешь кодировку проходит, state = 1 выводит. А вот при выполнении запроса виснет ... :(
#39 by KatyariK
метод execute = - не онаружен ругается
#40 by szhukov
Что-то с conn, значит. Закрывается соединение может.
#41 by KatyariK
а как проверить?
#42 by Матрейя
а conn и не существует при коде 39
#43 by KatyariK
ну с кодом 39 понятно. А что еще можно проверить?
#44 by szhukov
А код здесь не причем :) Вы должны открыть соединение, а затем создать объект Recordset и через его метод выполнить запрос и получить набор записей.
#45 by szhukov
+ Значит все-таки соединение у вас не открывается.
#46 by szhukov
Примерно так:
#47 by KatyariK
на первой попытке все проходит - т.е. Conn1.Open;проходит. RS.Open("select * from table какой-то LIMIT 10", Conn1 ) -  виснет :(
#48 by shuhard
то "Select vertion" виснет, то select * from table какой-то LIMIT 10" не работает
#49 by Матрейя
+48 присоединяюсь. Автор типичный одынэсник :-)
#50 by KatyariK
все поржали -  а помочь никто не может :( запрос для примера был дан :(
#51 by Матрейя
rs сдесь не подключен к базе!!!!!!!!!!
#52 by shuhard
#53 by KatyariK
млин ну так дайте толковый совет что делать?
#54 by shuhard
разобраться, не тупо кодировать чужой код
#55 by Матрейя
53.Давай по пордяку. Сделай системный dsn , назови его r55 например. Потом выполни из 1с такой код
#56 by Матрейя
+55 Разумеется проверь в системном дсн подключение, там кнопка есть тест
#57 by KatyariK
Соединение успешно установлено. Дальше.
#58 by KatyariK
это я уже проделал давно
#59 by Матрейя
#60 by Матрейя
ИмяТаблицы замени на реальное
#61 by KatyariK
rs=conn.execute("select * from Table");  -  в етом месте виснет выполнение
#62 by Матрейя
Table - таблица дорлжна иметь имя. например "select * from users"
#63 by szhukov
Ты хоть одну таблицу в базе знаешь? сделай выборку из нее... select * from Table - нигде не сработает. Table - это имя известной тебе таблицы (нужно заменить) Например: select * from users
#64 by KatyariK
так и сделал
#65 by szhukov
опередил :)
#66 by KatyariK
я знаю все таблицы в базе :))) т.к.  все пока делаю вручную  через EMS MySQL Manager
#67 by KatyariK
делаю те операции что мне нужны -  через EMS MySQL Manager (а то сейчас и тут залошите)
#68 by szhukov
Ну, так чего ты фигню какую-то написал в запрос свой покажи к какой-то таблице
#69 by Матрейя
66. Пиши то, что конкретно у тебя написано.  dsn  - прям база прописана или только mysql сервер?
#70 by shuhard
угу топик чистый развод начиная с Select vertion
#71 by KatyariK
1.dns -  прямо база прописана. 2.запрос самый первый и самый простой - select * from events- проще некуда чтобы выбрало мне все поля. 3. Запрос Select vertion -  все равно должен выполняться -  чем он хуже других я не знаю :)) он тупо выводит версию твоего MySQL/ Подвоха сдесь нет -  просто нужно чтобы отработало. 4. Вам запросы написать: UPDATE employee  set NumberCard = TabNumber WHERE   (   ) к примеру. Дело не в запросе просто. Нужно хотя бы чтобы этот отработал select * from events  -  (специально взял маленькую таблицу -  там всего 10 строк записей).
#72 by shuhard
[Запрос Select vertion -  все равно должен выполняться -  чем он хуже других я не знаю :)) он тупо выводит версию твоего MySQL] ни хера он не выводит, кроме ошибки синтаксиса
#73 by KatyariK
ну у меня ошибки синтаксиса не выдает :)
#74 by KatyariK
короч все спасибо. Нашел я как через дллку сделать -  точнее нашел пример -  все отлично отработало: Можно закрывать.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С