gifts2017

Внешняя компонента Addin.MySQLConnection

Опубликовал serguey_again (serguey_again) в раздел Программирование - Внешние компоненты

Компонента для подключения к mysql-серверам, не требует наличия никаких дополнительных библиотек кроме стандартных для Windows, работает со всеми серверами

Компонента для подключения к mysql-серверам,
не требует наличия никаких дополнительных библиотек кроме стандартных для Windows,
работает со всеми серверами до версии 6.0
Для работы НЕ нужна библиотека libmysql.dll

Mysql is copyright by MySQL AB. Refer to their site ( n_cristian@hotmail.com)
Предложения и пожелания приветствуются на serguey@hotbox.ru

Версия 2.1.4:
Исправлено: методы СоздатьБазуДанных и УдалитьБазуДанных выдают ошибку на версиях серверов более 5.0.83. (замечено Дмитрий Генрихс ака Близнец)
Для серверов версий выше методы СоздатьБазуДанных и УдалитьБазуДанных выполняют запросы create database `db` и drop database `db`.

Версия 2.1.3:
Поддержка 1С 8.0 и 8.1
Новый метод Клонировать - создание копии клиента (пример в обработке)
Восстановлено обращение к полям наприяму - Клиент._ИмяПоля
Работа проверена на серверах 4.1.22, 5.0.83, 5.1.37 в 1С 7.7.0.27 и 1С 8.1.14.72 в Windows XP SP2, Windows Vista и Windows 7.
Обновлен клиент - 4.1.1
Включена демобаза для 1С 8.1
Включены исходники.

Версия 2.1.2:
Небольшое добавление: при обращении к методам Получить..., Заполнить... производится обращение из компоненты к 1С через средства OLE Automation
(создаются объекты СписокЗначений или ТаблицаЗначений)
 - поэтому пользователю 1С для работы с компонентой нужны на это соотвествующие права в конфигурации.
Иначе будет что-то типа AddIn.MySQLConnection : External exception E06D7363. (добавлено благодаря V.I.K)

Версия 2.0.1:
Включена поддержка нового протокола шифрования паролей (для серверов 4.1 версии и более) (реквизит ИспользоватьНовыеПароли/UseNewpassword - по умолчанию - 1).
Но убрана возможность обращения к полям напрямую (например: Соединение._MyField).
И изменено поведение метода ПолучитьПараметрыПоля: теперь он берет 2 параметра: 1 - имя или индекс поля, 2 - что вы хотите получить на выходе (0 - по умолчанию, имя или индекс поля, 1 - тип поля, 2 - длина, 3 - точность, 4 - флаги поля)
Демо обработка включена в конфигурацию, архив которой прилагается...
Обновлен архив, включен als-файл

Версия 1.9.1:
Ввел возможность обхода потери точности при преобразовании OLE типа R8 в 1С тип Число.
Проблему обозначил leshik.
В документации к Внешним компонентам говорится,
что у 1С свой числовой формат с фиксированной точкой
и поэтому может происходить потеря точности при преобразованиях.
Если в 1С у реквизита формы или поля таблицы назначить тип Число,
присвоение строкового значения преобразуется самой 1С,
поэтому ввел два режима работы - компонента преобразует нужный тип или сама 1С это делает.
Включил в дистр. тестовую обработку. Также в ней пример запроса длиной более 255 символов.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Внешняя компонента Addin.MySQLConnection
.zip 738,24Kb
06.04.12
569
.zip 738,24Kb 569 Бесплатно

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Олег (lov-kot) 02.09.06 10:54
2. Alex_Bob (alex_bob) 06.09.06 08:24
А нельзя ли добавить что-то типа истории версий? До этого работал с версией 2.0.1 проблем не было. В чем отличия версии 2.1.2? А так - очень помогает, спасибо. +1
4. Алексей Шачнев (shachneff) 31.10.07 15:56
для 8.1 версию дождаться реально?
5. Михаил (mdzen) 31.10.07 21:05
6. Денис (CardinalDen) 20.11.08 13:37
поддерживаю уважаемого shachneff - можно ли ждать для 8.1?
7. Александр Трофимов (trof) 26.02.09 16:17
Ждем для 8.1 ... очень ждем!!!
8. serguey_again (serguey_again) 14.08.09 04:50
9. Олег Бочагов (iohansson) 08.09.09 20:05
проблема с кодировкой при записи в базу mysql, кириллические символы превращаются в "?", в базе стоит кодировка cp1251, даже если в запросе при записи в базу писать CONVERT('наим' USING cp1251), все равно записывается как "?", что делать??

заранее спасибо...
10. Олег Бочагов (iohansson) 08.09.09 20:18
разобрался, простите за флуд...
11. Вячеслав (Medvedik) 12.08.11 11:00
Подскажите, какова максимальная длина запроса, который будет успешно обработан?
12. Denis (diocompany) 27.09.11 12:08
Не хочет коннектиться к базе мускула.
1С уходит в себя и потом пишет ошибку.
И так, и сяк плясал с бубном. Ни в какую.
Что-то, с чем-то не совмещается.
Сервер, логин и пароль все рабочие и т.д.
Подключался из 1c 7.7
13. Вячеслав (Medvedik) 27.09.11 12:35
(12) Хостинг позволяет подключение с любого ip? Может нужно прописать в правило доступа к серверу свой ip
14. Denis (diocompany) 27.09.11 13:01
(13) Medvedik,

Спасибо за ответ.

Давайте попробую ответить вот как.
Через phpmyadmin базой я управляю без проблем.
Так же через скрипт php подключаюсь к базе, могу сформировать запрос к таблицам, с выводом результатов на экран.
Предполагаю, что подключение возможно с любого ip. Это моё предположение. Возможно я ошибаюсь.
15. Ийон Тихий (cool.vlad4) 27.09.11 13:04
(14) с большой вероятностью - ошибаешься. Хостинг чужой верно? Узнавай у них, но как правило прямой доступ они запрещают.
16. Вячеслав (Medvedik) 27.09.11 13:32
(14) Вероятнее всего, вы ошибаетесь. Свяжитесь с тех. поддержкой хостера, пусть подскажут, как прописать ваш ip для доступа с него к БД
17. Denis (diocompany) 27.09.11 14:07
(15) cool.vlad4, (16) Medvedik,

Да, хостинг чужой!
Использую бесплатный хостинг от http://radyx.ru/
Это для отладки, экспериментов и т.д.

Но скажу по секрету, что использую так же платный хостинг от http://masterhost.ru/
И туда не могу попасть через ВК.

В голове рождаются следующие мысли:
1. Вряд ли захочется бесплатному хостеру каждому встречному-поперечному давать прямой доступ к базе скула.
2. Пол беды, доступ с работы к БД, ip постоянный. А из дома получится совсем засада, потому как дома выделяется динамическая статика.

Буду признателен за ваши мысли по этим пунктам!
18. Ийон Тихий (cool.vlad4) 27.09.11 14:18
19. Вячеслав (Medvedik) 27.09.11 14:32
(17)
1. Именно
2. Это сейчас не дорого, можно и домой заказать. Мне не часто нужно обновлять прайс, я руками прописываю текущий ip раз в неделю.
20. Denis (diocompany) 27.09.11 14:58
(18) cool.vlad4,

Для тех кто в каске, как я, поясните про ssh доступ.
Как мне его проверить.

Могу предложить следующее, если есть время и желание.
Проверить возможность доступа к MySQL базе от Вас. :)

(19) Medvedik,

Всё равно как-то неудобно. :)
21. Ийон Тихий (cool.vlad4) 27.09.11 15:18
(20)спросить у провайдера, можно поднять туннель ssh(пробросить порт mysql), - как? прочитать в инете
http://yandex.ru/yandsearch?text=%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF+%D0%BA+mysql+%D1%8­7%D0%B5%D1%80%D0%B5%D0%B7+ssh&lr=213
Я бы объяснил, подробнее, но время...если это сделать - то хоть по ADO можно цеплятся к базе, и относительно безопасно.
22. Ийон Тихий (cool.vlad4) 27.09.11 15:21
(20) сам по себе masterhost поддерживает ssh. Вот их инструкции http://masterhost.ru/support/doc/mysql/
23. Ийон Тихий (cool.vlad4) 27.09.11 15:22
Скачайте putty и введите данные, которые вам дал провайдер.
24. Denis (diocompany) 27.09.11 15:26
(23) cool.vlad4,

Спасибо!
Попробую копать дальше! :)
Потом расскажу, чего выкопал. :-)))
25. Алексей Миронов (a_mironov) 11.12.11 04:42
Спасибо автору аз проделанную работу! Особенно за исходники
26. igor (igor_kav) 14.12.11 12:22
Здравствуйте, подскажите почему не работает запрос:
INSERT INTO modx_site_content ( type , contentType, pagetitle , longtitle , alias , parent , published , isfolder , richtext , template , searchable , cacheable , hidemenu ) VALUE ( 'document' , 'text/html' , 'Крышка на ведро 50 Консенсус' , 'Крышка на ведро 50 Консенсус' , 'Kryshka_na_vedro_50_Konsensus' , '22528' , '1' , '0' , '1' , '6' , '1' , '1', '1' );
SET @lastID := LAST_INSERT_ID();
INSERT INTO modx_site_tmplvar_contentvalues ( tmplvarid , contentid , value ) VALUE ( '4' , @lastID , 'assets/images/Catalog/10742.jpg' );
INSERT INTO modx_site_tmplvar_contentvalues ( tmplvarid , contentid , value ) VALUE ( '5' , @lastID , 'assets/images/Catalog/Preview/10742.jpg' );
INSERT INTO modx_site_tmplvar_contentvalues ( tmplvarid , contentid , value ) VALUE ( '6' , @lastID , '10742' );
INSERT INTO modx_site_tmplvar_contentvalues ( tmplvarid , contentid , value ) VALUE ( '7' , @lastID , '6,38' );

Выдает ошибку:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @lastID := LAST_INSERT_ID();
INSERT INTO modx_site_tmplvar_c

И заметил, что пакетный запрос, вообще не отрабатывает! Как решить проблему?
27. Сергей (zsw) 14.12.11 14:06
(26) igor_kav,
попробуй
Select @lastID:=Last_insert_id();
с пакетным запросом решить не удалось
только последовательный запуск по одному запросу
28. igor (igor_kav) 14.12.11 14:11
(27)
Спасибо за ответ, сейчас попробую.
29. Roman Tarasov (raym0n) 16.12.11 16:54
Скажите, какая скорость работы данного метода?
Если нужно, например, залить в базу 2000 строк.

Спасибо!
30. MyTempMail@ua.fm MyTempMail@ua.fm (MyTempMail@ua.fm) 04.05.12 14:59
Кто то пытался с ней работать в фоновом задании?

Вылетает при попытке загрузить компоненту: "Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту)". При интерактивной работе все работает замечательно.
31. serguey_again (serguey_again) 06.05.12 02:44
(30)
Компонента требует полных клиентских прав (так как в ней есть обращение к самой 1с для создания объектов 1с) - а фоновые задания выполняются на стороне сервера - и не имеют клиентского контекста. Эту проблему можно решить запуском 1с по расписанию с передачей ей параметра на запуск внешней обработки - которая уже и использует компоненту
MyTempMail@ua.fm; +1 Ответить
32. dummy 06.03.13 13:28
тем, кто как я столкнулся с падениями 1с в паре с этой компонентой под обычным пользователем (без прав администратора):

нужно пользователю дать права на "Использовать 1С в качестве OLE Automation сервера". по умолчанию такие права не установлены. и сразу все падения прекратились.

огромное спасибо serguey_again, автору, за оперативную помощь в решении этой проблемы.
33. semario (semario) 06.02.14 06:39
Под управляемые формы работает?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа