|
v7: Бухгалтерия v 4.5 ODBC соединение с GESTORI | ☑ | ||
---|---|---|---|---|
0
YurAnt
21.10.13
✎
15:19
|
Доброго времени суток, господа-форумчане.
Вопрос такой: Имеется сервак с GESTORI, (сам я сколько себя помню работал только с файловой системой бд). Если запускать обработку с сервера, то ТипБазы = "SQL"; База = СоздатьОбъект("ODBCDataBase"); База.ПрисоединенныеИБ(ПутьКБазе, "Админ", "ХитрыйПароль"); работает нормально, однако на локальном компе естественно соединение не подымается (да и откуда бы). Откопал вот такую статейку, и прошу помощи в разборе... DB = СоздатьОбъект("ODBCDatabase"); DB.Соединение("DRIVER={MySQL ODBC 5.1 Driver}; SERVER=IP_Супер_мега_сервера; DATABASE=Мега_база; USER=Супер_юзер; PASSWORD=пароль_супер_мега_юзера; OPTION=3;"); RS = СоздатьОбъект("ODBCRecordSet"); RS.SetDatabase(DB); Если RS.Выполнить("set names cp1251") = 0 Тогда Сообщить("Ошибка подключения к MySQL" + РазделительСтрок + RS.ПолучитьОписаниеОшибки()); СтатусВозврата(0); Возврат; КонецЕсли; В моем случае драйвер если правильно понимаю вот так http://savepic.su/3565362.png да и вообще, господа подскажите кто как устанавливал соединение с БД от Gestori ? и что за Option=3 в DB.Соединение("DRIVER={MySQL ODBC 5.1 Driver}; SERVER=IP_Супер_мега_сервера; DATABASE=Мега_база; USER=Супер_юзер; PASSWORD=пароль_супер_мега_юзера; OPTION=3;"); |
|||
1
YurAnt
21.10.13
✎
15:21
|
сумбурно...
Итак, имеется сервак с GESTORI. Имеется 1Ска. База в скуле. обмен с Джестри всегда шел через XMl, сейчас есть необходимость прямого чтения из БД GESTORI в 1С. |
|||
2
YurAnt
21.10.13
✎
15:23
|
пытаюсь поднять ODBC соединение из 1Ски напрямую считывать инфу из базы Джестори
|
|||
3
trad
21.10.13
✎
15:28
|
на всякий случай, ПрисоединенныеИБ имеет смысл только в отношение одинесной информационной базы
|
|||
4
YurAnt
21.10.13
✎
15:31
|
окей, а вот эту константу откуд брать ?
DRIVER={MySQL ODBC 5.1 Driver}; и что за опшн = 3 ? |
|||
5
YurAnt
22.10.13
✎
09:28
|
вот такая шляпа не взлетает(( не может установитьсоединение
где я мог ошибиться? Процедура ПодключитсяКБазе1С() Попытка ЗагрузитьВнешнююКомпоненту("1cpp.dll"); Сообщить("Компонента 1С++ загружена!"); Исключение Сообщить("Пытались, но не загрузили компоненту 1С++ :("); КонецПопытки; Если ФС.СуществуетФайл(ПутьКБазе + "1Cv7.DD") = 1 Тогда ТипБазы = "DBF"; База = СоздатьОбъект("OLEDBData"); База.ПрисоединитьИБ(ПутьКБазе); Иначе ТипБазы = "SQL"; База = СоздатьОбъект("ODBCDatabase"); База.Соединение("DRIVER={OpenLink Lite for Progress 9.1b (Large Client)(32 Bit)}; SERVER=10.1.11.247; DATABASE=ges3; USER=admin; PASSWORD=nt[ybxtcrfz; OPTION=3;"); Попытка Если База.Соединение.Открыта() Тогда Сообщить("база подключена!!!"); КонецЕсли; Исключение Сообщить("Не могу подключиться к базе!!!"); КонецПопытки; КонецЕсли; КонецПроцедуры |
|||
6
Ёпрст
22.10.13
✎
09:31
|
какая то каша..
|
|||
7
Ёпрст
22.10.13
✎
09:31
|
тут и мускул на кой то привёл и присоединить ИБ ?...
|
|||
8
Ёпрст
22.10.13
✎
09:31
|
Твоя гестори на чем хоть ?
|
|||
9
trad
22.10.13
✎
09:35
|
для начала нужно установить драйвер
http://dev.mysql.com/downloads/connector/odbc/ потом, хотя бы, бегло ознакомится с докой http://dev.mysql.com/doc/refman/5.6/en/connector-odbc.html тут можно подсмотреть, наверно, все возможные строки подключения практически к любым источникам данных http://www.connectionstrings.com/ в частности к MySql http://www.connectionstrings.com/mysql/ b конкретно к ODBC 5.1 http://www.connectionstrings.com/mysql-connector-odbc-5-1/ "опшн = 3" вроде бы это призывает драйвер к "чистому" чтению |
|||
10
Ёпрст
22.10.13
✎
09:46
|
(9) а есть уверенность, что база в мускуле ?...
|
|||
11
Ёпрст
22.10.13
✎
09:46
|
А не на прогрессе, каком нить ?
|
|||
12
trad
22.10.13
✎
09:54
|
(10) нет уверенности
|
|||
13
YurAnt
22.10.13
✎
10:05
|
порылся. и да. база на прогрессе
|
|||
14
YurAnt
22.10.13
✎
10:06
|
копаю дальше
|
|||
15
Ёпрст
22.10.13
✎
10:07
|
(13) круто, а нафига тогда ты строку от мускула приплетаешь ?
Создай пустой udl файлик - через него слепишь строку подключения, предварительно установив какой-нить драйвер для твоего прогресса (ежели его нема в системе). Усё. |
|||
16
YurAnt
22.10.13
✎
10:12
|
не... про мускул там просто из дефолтного примера кусок привел...
потому и спрашивал где брать константу драйвера DRIVER={MySQL ODBC 5.1 Driver}; если в моем случае это не мускул, а прогресс |
|||
17
Ёпрст
22.10.13
✎
10:15
|
см (15) - это самое простое
или ходи на коннэкшионстрингс точка ком |
|||
18
Ёпрст
22.10.13
✎
10:15
|
||||
19
Ёпрст
22.10.13
✎
10:15
|
хотя проще - udl
|
|||
20
YurAnt
22.10.13
✎
10:17
|
был. хороший сайт.
DSN = ? |
|||
21
Ёпрст
22.10.13
✎
10:18
|
см (15)
|
|||
22
YurAnt
22.10.13
✎
10:46
|
почти взлетело
http://savepic.su/3593915.png |
|||
23
Ёпрст
22.10.13
✎
12:11
|
у тебя через udl файлик проходит хоть тест подключения к базе ?
|
|||
24
YurAnt
22.10.13
✎
12:23
|
1) ситуация на картинке - это средствами 1Ски:
База = СоздатьОбъект("ODBCDatabase"); База.Соединение("DSN=ges3;HOST=10.1.11.247;DB=ges3;UID=******;PWD=***********;PORT=2517;"); 2) вариант 1 пока забросил, и делаю через udl. будет работать вариант 2, попробую поднять и вариант 1. 3) да, тест проходит. |
|||
25
YurAnt
22.10.13
✎
12:27
|
далее полагаю через 1Ску формировать что-то наподобие
Connect = Новый COMОбъект("ADODB.Connection"); Connect.ConnectionString = "File Name="+Файл; Connect.Open(); только как оно в 7ке делается пока разбираюсь |
|||
26
Ёпрст
22.10.13
✎
12:30
|
(25) нафига тебе ado ?
:)) Хочешь выборку ручонками перебирать ? :) |
|||
27
Ёпрст
22.10.13
✎
12:31
|
(24) если тест проходит, открой udl файлик блокнотом и увидишь свою правильную строку подключения.. скармливай её 1с-ине и наслаждайся.
|
|||
28
YurAnt
22.10.13
✎
12:46
|
База.Соединение("строка_из_udl");
В отладчике пишет База.Соединение("строка_из_udl")=0 =( |
|||
29
Ёпрст
22.10.13
✎
12:48
|
Код покажешь, или гадать будем ?
|
|||
30
YurAnt
22.10.13
✎
12:49
|
стоооп... меня вот что смущает
удл-файл: [oledb] ; Everything after this line is an OLE DB initstring Provider=MSDASQL.1;Password=12345;Persist Security Info=True;User ID=admin;Data Source=ges3 oledb ? втф |
|||
31
YurAnt
22.10.13
✎
12:50
|
||||
32
YurAnt
22.10.13
✎
12:52
|
ODBС там только один... искать прогрессовский ?
|
|||
33
YurAnt
22.10.13
✎
12:53
|
а кода там...
Процедура ПодключитсяКБазе1С() Если ФС.СуществуетФайл(ПутьКБазе + "1Cv7.DD") = 1 Тогда ТипБазы = "DBF"; База = СоздатьОбъект("OLEDBData"); База.ПрисоединитьИБ(ПутьКБазе); Иначе ТипБазы = "SQL"; База = СоздатьОбъект("ODBCDatabase"); База.Соединение("Provider=MSDASQL.1;Password=12345;Persist Security Info=True;User ID=admin;Data Source=ges3"); КонецЕсли; КонецПроцедуры |
|||
34
Ёпрст
22.10.13
✎
13:06
|
...п..ц
|
|||
35
YurAnt
22.10.13
✎
13:07
|
(
|
|||
36
YurAnt
22.10.13
✎
13:17
|
Итак, по шагам.
1) при открытии обработки Попытка ЗагрузитьВнешнююКомпоненту("1cpp.dll"); Сообщить("Компонента 1С++ загружена!"); Исключение Сообщить("Пытались, но не загрузили компоненту 1С++ :("); КонецПопытки; 2)Далее подключается Процедура ПодключитсяКБазе1С() Если ФС.СуществуетФайл(ПутьКБазе + "1Cv7.DD") = 1 Тогда ТипБазы = "DBF"; База = СоздатьОбъект("OLEDBData"); База.ПрисоединитьИБ(ПутьКБазе); Иначе ТипБазы = "SQL"; База = СоздатьОбъект("ODBCDatabase"); База.Соединение("Provider=MSDASQL.1;Password=nt[ybxtcrfz;Persist Security Info=True;User ID=admin;Data Source=ges3"); КонецЕсли; КонецПроцедуры 3) И по клику на баттон Процедура ИмпортироватьДокумент(ДатаДок) //Если БазаОткрыта = 1 Тогда RS = СоздатьОбъект("ODBCRecordSet"); RS.SetDatabase(База); RS.УстБД1С(); ТекстЗапроса = " |SELECT | T1.num_nakl, | T1.dt_nakl, | T1.cod_shop, | T1.cod_firm, | T3.address[1], | T1.num_doc, | T1.dt_doc, | T2.Size |FROM pr1 T1, pr3 T2, firms T3 |WHERE | T1.dt_nakl = &ДатаВходНакл |AND T1.num_nakl = T2.num_nakl |AND T2.cod_nalog = 6 |AND T2.Size > 0 |AND T1.cod_firm = T3.cod_firm |"; RS.УстановитьТекстовыйПараметр("ДатаВходНакл", ДатаДок); ТЗ = RS.ВыполнитьИнструкцию(ТекстЗапроса); ТЗ.ВыбратьСтроки(); |
|||
37
YurAnt
22.10.13
✎
13:19
|
whatamdoingwrong?
|
|||
38
Ёпрст
22.10.13
✎
13:29
|
http://www.datadirect.com/support/product-documentation/downloads
отседыва скачай нужного провайдера |
|||
39
YurAnt
22.10.13
✎
13:30
|
Ёпрст, я не исключаю наитупейших ошибок в коде((
7ку вижу в глаза только 2й день...( |
|||
40
Ёпрст
22.10.13
✎
13:34
|
(36)
не устбд1с, а УстБД |
|||
41
Ёпрст
22.10.13
✎
13:35
|
RS = СоздатьОбъект("ODBCRecordSet");
RS.SetDatabase(База); // RS.УстБД1С(); вот так, для начала |
|||
42
YurAnt
22.10.13
✎
14:30
|
поставил... и понял что драйвер действительно уже стоит.
Через "Администратор источников ODBC" видно что он есть http://savepic.su/3604166.png однако Среди поставщиков ничего не изменилось... http://savepic.su/3604170.png |
|||
43
YurAnt
22.10.13
✎
14:35
|
мозг уже закипает, однако я заставлю её полететь.
|
|||
44
YurAnt
22.10.13
✎
14:39
|
причем вот с этим удл-ом
[oledb] ; Everything after this line is an OLE DB initstring Provider=MSDASQL.1;Password=nt[ybxtcrfz;Persist Security Info=True;User ID=admin;Data Source=ges3 проверка проходит успешно. однако шифт+ф9 возвращает, что соединение = 0 База.Соединение("Provider=MSDASQL.1;Password=nt[ybxtcrfz;Persist Security Info=True;User ID=admin;Data Source=ges3")= 0 |
|||
45
YurAnt
22.10.13
✎
14:40
|
соответственно последующий запрос уходит в пустоту.
|
|||
46
Ёпрст
22.10.13
✎
15:01
|
А так ?
ОлеДБ = СоздатьОбъект("OLEDBData"); Соединение = "Provider=MSDASQL.1;Password=nt[ybxtcrfz;Persist Security Info=True;User ID=admin;Data Source=ges3"; Рез = ОлеДБ.Соединение(Соединение); Сообщить(рез); |
|||
47
YurAnt
22.10.13
✎
15:15
|
DBInitialize::Initialize(): [OpenLink][ODBC]Unable to allocate server handle
|
|||
48
YurAnt
22.10.13
✎
15:17
|
http://wikis.openlinksw.com/dataspace/owiki/wiki/UdaWikiWeb/UnableToAllocateServerHandle#Progress with Single-Tier "Lite" Edition Drivers
изучаю |
|||
49
YurAnt
22.10.13
✎
15:21
|
Progress with Single-Tier "Lite" Edition Drivers
Первый же пункт кажется уже идет лесом, ибо (по словам админа) не в сокет режиме(( 1) Ensure that your Progress database is running in sockets mode. |
|||
50
YurAnt
22.10.13
✎
20:18
|
и все таки, господа...
обходил ли кто "DBInitialize::Initialize(): [OpenLink][ODBC]Unable to allocate server handle" или же это упирается в перенастройку сервера? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |