|
v7: Присоединение DBF-базы к sql-базе для обмена данными. | ☑ | ||
---|---|---|---|---|
0
Последняя_
Надежда 07.08.12
✎
12:48
|
Есть обработка по обмену данными между базами, все они на Sql. Подключение идет через функцию приведенную ниже. Можно ли как-то присоединить аналогичным образом DBF-базу? и будут ли выполняться запросы в формате sql над ней?
Функция ПодключитьсяКБазе(ТекБаза,рсОбмена,дбОбмена,v7=0) бд = СоздатьОбъект("ODBCDataBase"); рсОбмена = СоздатьОбъект("ODBCRecordSet"); Если v7=1 Тогда ПутьКБД = СокрЛП(ТекБаза.ПолучитьАтрибут("Путь")); v7 = CreateObject("V77.Application"); result = v7.Initialize(v7.RMTrade,"/D"+ПутьКБД+ " /Nchange /Pchange",""); КонецЕсли; Если ТекБаза.ПолучитьАтрибут("Код")="0" Тогда // Если это локальная база рсОбмена.УстБД1С(); Иначе // если выполняем соединение с сторонней 1с базой данных бд = СоздатьОбъект("ODBCDataBase"); Попытка ; бд.ПрисоединитьИБ(СокрЛП(ТекБаза.ПолучитьАтрибут("Путь")),"change","change"); рсОбмена.УстБД(бд); Исключение; рсОбмена = ""; Сообщить(бд.ПолучитьОписаниеОшибки()); Предупреждение("Не удалось подключиться базе:"+ТекБаза.ПолучитьАтрибут("Имя")); Возврат 0 ; КонецПопытки; КонецЕсли; Возврат 1; КонецФункции |
|||
1
stix2010
07.08.12
✎
12:55
|
можно
|
|||
2
МихаилМ
07.08.12
✎
12:55
|
Sqlite Вам в помощь
|
|||
3
dk
07.08.12
✎
12:55
|
тут какая-то мешанина 1с++ и OLE
OLE пофигу SQL или DBF 1с++ вроде тока на SQL пашет |
|||
4
Ёпрст
07.08.12
✎
12:56
|
(2) ну-ну.
|
|||
5
stix2010
07.08.12
✎
12:57
|
||||
6
Последняя_
Надежда 07.08.12
✎
12:59
|
обработка выполняется из под SQL'ной базы. надо зацепиться на др.сервер к dbf-базе.
(5) вообще не то, но спасибо. |
|||
7
Ork
07.08.12
✎
13:00
|
Если речь о базе в формате ДБФ - семерка имеет встроенный класс XBASE. Он немного кастрирован по сравнению с нормальным. Но для обмена данными его вполне себе достаточно.
Если речь именно о семерочной файловой базе - можно юзать возможности ОЛЕ сервера. Уж ему-то абсолютно все равно в каком формате хранятся данные. |
|||
8
Ёпрст
07.08.12
✎
13:01
|
(0) короче, ставишь oledb провайдер и пишешь запрос к любой дбф базе..
|
|||
9
Ork
07.08.12
✎
13:03
|
(8) Судя по вот этому : "v7 = CreateObject("V77.Application");" - он таки работает с базами 1С. И работает ЧерезПосредством ОЛЕ. Поэтому все у ТС будет работать и так как есть.
|
|||
10
Ёпрст
07.08.12
✎
13:14
|
(9) неа, оле тут вообще не причем - он же использует
бд = СоздатьОбъект("ODBCDataBase"); бд.ПрисоединитьИБ(СокрЛП(ТекБаза.ПолучитьАтрибут("Путь")),"change","change"); рсОбмена.УстБД(бд); |
|||
11
Ёпрст
07.08.12
✎
13:14
|
у него оля - только для получения пути к базе.. и .. непонятно зачем такой изврат нужен был
|
|||
12
stix2010
07.08.12
✎
14:02
|
хочешь sql запросы к базе то ADODBConnection или OLEDBData http://itland.ru/forum/index.php?showtopic=11339
|
|||
13
stix2010
07.08.12
✎
14:06
|
||||
14
stix2010
07.08.12
✎
14:11
|
а если тебе по OLE к 7 надо, то это и подключит
v7 = CreateObject("V77.Application"); result = v7.Initialize(v7.RMTrade,"/D"+ПутьКБД+ " /Nchange /Pchange",""); |
|||
15
Ёпрст
07.08.12
✎
14:14
|
(12-14) откуда такую бесполезную некрофилию находишь ? Неужели гугля выдает ?
|
|||
16
Последняя_
Надежда 07.08.12
✎
14:29
|
(14) да вроде подключение идет, вижу как загружает, но вылетает в Исключение с ошибкой "State IM001, native 0, message [Microsoft][Диспетчер драйверов ODBC] Драйвер не поддерживает данной функции"
|
|||
17
Ёпрст
07.08.12
✎
14:30
|
(16) ты определись сперва, что ты хочешь - обычное оле-подключение к дбф базе, или выполнить прямой запрос к сторонней дбф базе.
|
|||
18
Последняя_
Надежда 07.08.12
✎
14:35
|
(17) я в этом мало что понимаю. мне главное чтобы работало... но видимо проще будет сделать через txt файлы.
|
|||
19
Ёпрст
07.08.12
✎
14:40
|
(18) круто.
Мот нанять того, кто эту обработку писал ? |
|||
20
Ёпрст
07.08.12
✎
14:40
|
чтоб переделал часть запросов под дбф ?
|
|||
21
Последняя_
Надежда 07.08.12
✎
14:49
|
(21) тому кто это делал уже нафиг все это не надо.
|
|||
22
Последняя_
Надежда 07.08.12
✎
14:49
|
ладно, сделаю через файлы. быстрее получится.
|
|||
23
Ёпрст
07.08.12
✎
14:49
|
(21) ну, тогда занимайся.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |