Страница 1 из 1

Работа с таблицами SQL в VIP

Добавлено: 07 авг 2007, 12:28
evchic
Суть вопроса такова:
Возможно ли из VIP получить доступ к таблице находящийся в другой БД на SQL сервере...
Версия галактики не имеет значение... Если можно то как? Через OLE-обьекты? Кто знает подскажите пожалуйста!!!

Добавлено: 07 авг 2007, 12:49
edward_K
ну вы же всегда можете подключить свою dll( лучше на делфи), вызвать внешнее приложение и т.д. Мне когда в лом, так я просто генерю нужный vip.cfg и вызываю vip из галки с выгрузкой в dbf , а потом ее считываю уже в галку. На первасиве была возможность напрямую обратиться к табле на другой бд.

Добавлено: 07 авг 2007, 12:53
evchic
А можно пример как это делалось на первасиве?

Добавлено: 07 авг 2007, 14:43
Den
Имелось ввиду навернео следующее :
Делаешь vip.bat в нем в примеру :

C:\gal800\exe\vip.exe %1 /c:c:\gal800\comp\vip.cfg

а в vip.cfg том рисуешь нужную платформу и путь на базу нужную. И вызываешь все это из vip-программы exec('')

Добавлено: 07 авг 2007, 14:44
Den
вместо %1 конечно нужный lot :grin:

Добавлено: 07 авг 2007, 14:46
evchic
это все понятно но не совсем удобно

Добавлено: 07 авг 2007, 19:47
evchic
Дело в том что БД из которой нужно вытащить данные не галактическая

Добавлено: 07 авг 2007, 19:48
evchic
Или может кто-нибудь встречал пример исходника DLL для навигации по таблицам SQL-базы

Добавлено: 08 авг 2007, 11:05
san
Если делать доступ с помощью атлантиса, то таблица к которой нужен доступ должна быть прописана в словаре, пусть она и из другой базы.
Есть вариант писать длл которая будет пребрасывать данные из сторонней таблицы в галактическую, это же на скл можно сделать тригером.
В 5 атлантисе развивается прямой доступ к скл базам, на сколько это работоспособно я не знаю.

Добавлено: 08 авг 2007, 13:43
evchic
Прямой доступ работает в пределах текущей бд... в словарь закомпилить нельзя т.к. имя таблице в бд динамическое

Добавлено: 08 авг 2007, 14:13
Den
Даже если Вы напишите dll, в которой будет осуществлен доступ к нужной БД (неважно в формате MSSQL, BTRIEVE, ORACLE...) то как Вы этими данными воспользуетесь в VIP ? Там же, по видимому, все на атлантических объектах завязано..до данных этих невозможно будет достучаться просто так - только буферизация потока во внешнюю, читабельную vip-ом структуру, или в словарную подходящую таблицу текущей БД галки. Мне дак так кажется...
Если вариант ,что название таблицы динамически меняется - то только напрашивается вариант dll где будет считываться информация из нужной табл. какой-либо другой БД и все это вливаться в текущ. галактическую бд подходящей стуктуры.

Добавлено: 08 авг 2007, 14:24
Den
Хотя может в 5-м атлантисе и появились какие то средства для доступа к произволным данным..

Добавлено: 08 авг 2007, 18:23
evchic
нет не появились в том то все и дело что прийдется писать dll
блин но возникла проблема делфи чето не хочет конектится через ADO

Добавлено: 13 авг 2007, 11:23
coolibin
Не надо никаких dll и делфей. У тебя есть на машине WSH, в котором уже есть все средства для того, чтобы подцепиться к любой базе через OLEDB и ADO. Остается придумать как данные передать випу. Как вариант - промежуточный текстовый формат. То есть скриптом из внешней базы формируешь текстовую таблицу, а потом атлантисом ее читаешь в таблицу в памяти и делаешь с ней все что хочешь.
Скрипт запускаешь через ExecProgram()

Добавлено: 17 сен 2007, 18:08
evchic
все реализовал написал dll на делфи все работает.. все получилось