Имя: Пароль:
1C
 
подключение к базе MySQL из 1с
0 ildarian
 
24.11.15
14:10
Добрый день.

Пытаюсь подключится к не 1с-ной базе. Выдает ошибку.
{Форма.Форма.Форма(6)}: Ошибка при вызове метода контекста (Open)
Connection.Open(СокрЛП(СтрокаПодключения));      
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию

Вот код. Код нагуглил, подскажите что тут не так.


Connection = Новый COMОбъект("ADODB.Connection");
СтрокаПодключения =   "DRIVER={MySQL ODBC 5.1 Driver};OPTION=3;DATABASE=" + "Имя базы" + ";PWD=" + "Пароль"+ ";PORT=;SERVER=" + "тут ip" + ";UID=" + "Пользователь" + ";";
Connection.Open(СокрЛП(СтрокаПодключения));
1 Живой Ископаемый
 
24.11.15
14:14
ну так нужно ж этот драйвер установить, он же сам от сырости не заведется
2 ildarian
 
25.11.15
10:46
Да, дело было в драйвере, спасибо.

Посвился ещё один вопрос. Мне нужно сделать запрос к этой базе.
Я его делаю так:
Connection.Execute("f_add_balance ('112233', 100, '112233')");
Ошибок нет. Как мне получить текст ответа на этот запрос. Он должен вернуть "ОК" или текст ошибки.
3 НЕА123
 
25.11.15
11:02
(2)
Connection.Execute(
ничего не возвращает?
4 Мэс33
 
25.11.15
11:08
Посмотри, что у тебя в "f_add_balance"
5 ildarian
 
25.11.15
11:40
Если вычислить выражение

Connection.Execute(Стрзаменить("f_add_balance('112233', 100, '112233')",Символы.НПП,"")).Fields.Item

то тут "ошибка чтения значения"
6 Горогуля
 
25.11.15
11:42
(5) а как насчёт Connection.Execute("f_add_balance ('112233', 100, '112233')")?
7 ildarian
 
25.11.15
11:42
я не знаю где смотреть результат этого запроса
8 ildarian
 
25.11.15
11:43
(6) не понял вопроса
9 Горогуля
 
25.11.15
11:44
(8) эта хрень возвращает тебе рекордсет со всеми вытекающими. ну я так думаю
10 Горогуля
 
25.11.15
11:45
выясни что-нибудь про mysql+movenext
11 Живой Ископаемый
 
25.11.15
11:49
Подозреваю что таким образом ты вызывешь функцию, которая добавляет баланс. То есть апдейтит строчку в таблице. То есть после ее выполнения, ты должен выполнить селект к этой таблице.
12 Живой Ископаемый
 
25.11.15
11:51
Еще раз - селек таблице до, вызов функции, селект к таблице после. сравнение результат до и после. если он различный, значит балаонс добавился
13 Горогуля
 
25.11.15
11:52
(12) а текст ошибки откуда выдумать?
14 Живой Ископаемый
 
25.11.15
11:53
да
15 Александр_
Тверь
 
25.11.15
11:55
http://catalog.mista.ru/public/165027/
можешь юзать или исользовать как образец.
16 ildarian
 
25.11.15
12:00
Моя задача вызвать эту функцию с переданными параметрами. Она должна вернуть значение ОК. Больше других запросов делать не нужно. Вопрос: где можно увидеть результат запроса?
17 Живой Ископаемый
 
25.11.15
12:02
2(16) Мое мнение - нигде. С Ораклом мы вроде помню как-то извращались, но приходилось в том числе и переписывать эти хранимые функции на стороне оркала. и я даже не знаю как именно это делалось. Вот сейчас мне например мое дежавю услужливо подсказывает, что чуваки райзили Ексепшен. Но не уврен, может это был всего лишь какой-то тупиковый путь...
18 Живой Ископаемый
 
25.11.15
12:04
но, желаю всяческой удачи в том. чтобы у тебя все получилось, и я оказался неправ.