Подключение к сторонней БД средствами ATLANTIS
Модераторы: m0p3e, edward_K, Модераторы
Подключение к сторонней БД средствами ATLANTIS
Добрый день.
Возникла необходимость извлечения информации из таблиц сторонней БД средствами Atlantis.
Но подключится к ней не получается. Может имеется подобный опыт у кого.
Заранее благодарю.
Возникла необходимость извлечения информации из таблиц сторонней БД средствами Atlantis.
Но подключится к ней не получается. Может имеется подобный опыт у кого.
Заранее благодарю.
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Подключение к сторонней БД средствами ATLANTIS
"Но подключится к ней не получается."
а как пробуете ?
а как пробуете ?
Re: Подключение к сторонней БД средствами ATLANTIS
В таких случаях обычно советую использовать хранимые процедуры: в её коде доступны обращения к другим БД.
-
- Местный житель
- Сообщения: 589
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Воронеж ОАО Верофарм. Воронеж
Re: Подключение к сторонней БД средствами ATLANTIS
Доброго времен суток.
Не написано, какая база ( т.е. База Галактики и сторонняя созданы в одной СУБД?) У нас получалось вполне нормально обращаться к другой базе Галактики, но обе были Оракловые.
1. Создаем процедуру сначала в Галактике ( МОЖНО! в саппорте дать запрос SQL FUNCTION имя(параметры) : тип {})
2. Проверяем права и даем права.
3. В СУБД корректируем текст данной хранимой процедуры.
4. В Галактике используем созданную хранимую процедуру.
Пример кода vip
Не написано, какая база ( т.е. База Галактики и сторонняя созданы в одной СУБД?) У нас получалось вполне нормально обращаться к другой базе Галактики, но обе были Оракловые.
1. Создаем процедуру сначала в Галактике ( МОЖНО! в саппорте дать запрос SQL FUNCTION имя(параметры) : тип {})
2. Проверяем права и даем права.
3. В СУБД корректируем текст данной хранимой процедуры.
4. В Галактике используем созданную хранимую процедуру.
Пример кода vip
Код: Выделить всё
//Заполняем ВТ
stmt := sqlAllocStmt;
sqlDropTmpTable('MyData'); // чистим временную таблицу
sqlCreateTmpTable('Table MyData (katorgname: string, sale: double, groupgp: string, namemc: string, cpodr: comp, csoprdoc: comp);', ctmNormal); //создаем временную таблицу
//Заполняем ВТ
sqlExecStmt(stmt,'GETSALES('#39+String(GetDateAsPascalLongint(dtBegdate))+''#39+','#39+String(GetDateAsPascalLongint(dtFindate))+''#39+','#39+ UpCase ( UserName ) + '.MyData (fkatorgname, fsale, fgroupgp, fnamemc, fcpodr, fcsoprdoc)'#39+')'); // Getsales - имя хранимой процедуры с параметрами
//Читаем ВТ
sqlFreeStmt(stmt);
stmt := sqlAllocStmt;
sqlAddStr(StmtString,' select * from MyData');
sqlPrepare ( stmt, StmtString );
sqlExecute ( stmt );
sqlFetchInto(stmt, tntOborotNota);
sqlFreeStmt(stmt);
Re: Подключение к сторонней БД средствами ATLANTIS
В SQL создала процедуру. без входных параметров(обычная выборка). При использовании sqlExecStmt выдает ошибку 30006( Насколько поняла не видит процедуру)
-
- Местный житель
- Сообщения: 589
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Воронеж ОАО Верофарм. Воронеж
Re: Подключение к сторонней БД средствами ATLANTIS
Какая СУБД?В SQL создала процедуру. без входных параметров(обычная выборка). При использовании sqlExecStmt выдает ошибку 30006( Насколько поняла не видит процедуру
Зайти в СУБД, проверить наличие и правильность процедуры. Возможно, текст процедуры надо править. Если процедура есть, текст правильный, попробовать выполнить ее в СУБД ( не Галактикой). Далее по результату.
Проверить включен ли доступ к DSQL пользователю, от имени которого стартует процедура в Галактике, проверить, находится ли эта процедура в списке разрешенных для этого пользователя.
Re: Подключение к сторонней БД средствами ATLANTIS
В MS SQL процедура работает.
У пользователя DSQL включен (переключала для надежности), Процедуру регистрировала с помощью RegVipFuncProcMSSQL.BAT, но в Sapporte она не отражается . Далее сделала проверку служебных объектов. Но это не помогло
У пользователя DSQL включен (переключала для надежности), Процедуру регистрировала с помощью RegVipFuncProcMSSQL.BAT, но в Sapporte она не отражается . Далее сделала проверку служебных объектов. Но это не помогло
-
- Местный житель
- Сообщения: 589
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Воронеж ОАО Верофарм. Воронеж
Re: Подключение к сторонней БД средствами ATLANTIS
Каков был порядок создания процедуры?
Надо так.
1. В Supporte создаем процедуру . Именно в нем! Можно просто пустую, но с именем и параметрами.
2. Проверяем в supporte появление этой процедуры в закладке "права на хранимые процедуры" в модуле Права доступа. Даем права, если нет.
3. Идем в MS SQL, ищем процедуру там. Вносим текст.
4. Проверяем работоспособность в MS SQL
5. Проверяем работоспособность в Галактике.
Надо так.
1. В Supporte создаем процедуру . Именно в нем! Можно просто пустую, но с именем и параметрами.
2. Проверяем в supporte появление этой процедуры в закладке "права на хранимые процедуры" в модуле Права доступа. Даем права, если нет.
3. Идем в MS SQL, ищем процедуру там. Вносим текст.
4. Проверяем работоспособность в MS SQL
5. Проверяем работоспособность в Галактике.
Re: Подключение к сторонней БД средствами ATLANTIS
Savov, Спасибо
Процедуру создать получилось и при обращении не выдает ошибок.
Процедуру создать получилось и при обращении не выдает ошибок.