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

межбазовый обмен (ODBC)

Добавлено: 14 дек 2007, 12:31
студент-практикант
Добрый день! В данной статьи

http://www.ibase.ru/devinfo/excel_odbc.htm

описано, как подключиться к Firebird из Excel через ODBC. А как можно не через Excel, а из клиентского приложения (Firebird 2.0, Delphi7, IBX). Т.е. мне с клиентского приложения нужно выцепить другую базу. И есть ли смысл в ODBC, может лучше сразу замахнуться на OLE DB. как перспективней?

Re: межбазовый обмен (ODBC)

Добавлено: 14 дек 2007, 12:47
stix-s
студент-практикант писал(а):Добрый день! В данной статьи

http://www.ibase.ru/devinfo/excel_odbc.htm

описано, как подключиться к Firebird из Excel через ODBC. А как можно не через Excel, а из клиентского приложения (Firebird 2.0, Delphi7, IBX). Т.е. мне с клиентского приложения нужно выцепить другую базу. И есть ли смысл в ODBC, может лучше сразу замахнуться на OLE DB. как перспективней?
Вот еще одна
www.ibase.ru/devinfo/ibx.htm

Re: межбазовый обмен (ODBC)

Добавлено: 14 дек 2007, 12:49
WildSery
студент-практикант писал(а):мне с клиентского приложения нужно выцепить другую базу
Чего-чего выцепить?
студент-практикант писал(а):И есть ли смысл в ODBC, может лучше сразу замахнуться на OLE DB. как перспективней?
Зависит от задачи.

Добавлено: 14 дек 2007, 15:16
студент-практикант
У меня есть база (Firebird, Delphi, IBX). Есть написанное, готовое клиентское приложение. Мне надо надо сделать к примеру так, чтобы пользователь нажал кнопку на клиентком приложении и получил данные из другой БД написанной под Oracle например (или это будет 1С руководство думает). Мне предстоит большая ответсвенность, надо организовать межбазовый обмен, а я не знаю, как это сделать...

Добавлено: 14 дек 2007, 15:23
WildSery
Можешь на это поглядеть, к примеру.

Добавлено: 17 дек 2007, 07:19
stix-s
студент-практикант писал(а):У меня есть база (Firebird, Delphi, IBX). Есть написанное, готовое клиентское приложение. Мне надо надо сделать к примеру так, чтобы пользователь нажал кнопку на клиентком приложении и получил данные из другой БД написанной под Oracle например (или это будет 1С руководство думает). Мне предстоит большая ответсвенность, надо организовать межбазовый обмен, а я не знаю, как это сделать...
что у тебя большая ответственность, это понятно, непонятно чего ты добиться хочешь?
переделать своего клиента так чтобы он сразу с двумя разнотипными базами работал? нафига? каждой базе свой клиент
или тебе данные перекачать надо? IBpump

Добавлено: 17 дек 2007, 07:54
Tonal
Ну и в чём проблемы-то?
Из клиента можно хоть к 10ти базам подключиться - было бы зачем. :-)

Добавлено: 17 дек 2007, 10:45
студент-практикант
Из клиентского приложения хочу взять данные не только из своей БД, но и из 1С тоже или из другой какой-нибудь БД. Ту другую базу зарегистрированную через ODBC из клиентского приложения вижу обычными компонентами BDE (там через поле AliesName я ее вижу и беру), а компонентами IBX чего-то не вижу, а хотелось бы :roll:

Добавлено: 17 дек 2007, 10:54
студент-практикант
Просто я хочу какой-нибудь запросик написать из своего клиентского приложения к другой, не к своей базе и увидеть результат - данные из другой БД. И кстати говоря через IBExpert тоже хорошо бы научиться брать данные из другой базы :D

Добавлено: 17 дек 2007, 11:08
stix-s
студент-практикант писал(а):Из клиентского приложения хочу взять данные не только из своей БД, но и из 1С тоже или из другой какой-нибудь БД. Ту другую базу зарегистрированную через ODBC из клиентского приложения вижу обычными компонентами BDE (там через поле AliesName я ее вижу и беру), а компонентами IBX чего-то не вижу, а хотелось бы :roll:
а что у тебя 1С на FB вертится?
да, я вот хочу это и это, сам не знаю нафиг, но хочу, шоб було!

Добавлено: 17 дек 2007, 11:11
kdv
Просто я хочу какой-нибудь запросик написать из своего клиентского приложения к другой, не к своей базе и увидеть результат - данные из другой БД.
www.ibase.ru/devinfo/choosecomp.htm
И кстати говоря через IBExpert тоже хорошо бы научиться брать данные из другой базы
из другой - какой. и нахрена это надо IBExpert-у.

Добавлено: 17 дек 2007, 11:23
студент-практикант
У нас 1С на другом сервере крутится, на другом этаже, а моя БД соответсвенно на Firebird. Вот требуется чтобы Firebird (всмысле из клиентского приложения или из Expert) данные из 1С брал. ну скажем написать запрос - объединить табличку из Firebid и 1С и результат увидеть в моем клиентском приложении или запрос - обратиться только к таблицам 1С за какими-нибудь данными из моего клинтского приложения. как-то так :shock:

Добавлено: 17 дек 2007, 12:08
Tonal
Чтобы обратиться из приложения к серверу, нужно использовать компоненты которые умеют работать с этим сервером.
Например, IBX умеет Firebird или Interbase.
Ado - MSSQL, ODBC.

Т.е. для работы с Firebird используешь IBX, для работы с 1С - Ado.

Для того, чтобы объединить данные из базы Firebird и 1С вытягиваешь нужные данные по раздельности на клиента, потом их объединяешь.
Или вытягиваешь данные из 1С на клиента, заливаешь в базу Firebird и выполняешь запрос в базе Firebird.

Добавлено: 17 дек 2007, 12:12
WildSery
студент-практикант писал(а):Вот требуется чтобы Firebird (всмысле из клиентского приложения или из Expert) данные из 1С брал.
FB это не нужно. Нужно твоему клиентскому приложению. Вот и тяни туда что хочешь.
студент-практикант писал(а):ну скажем написать запрос - объединить табличку из Firebid и 1С и результат увидеть в моем клиентском приложении
Ссылку уже поглядел? Что такое MSSQL linked server представляешь?
студент-практикант писал(а):или запрос - обратиться только к таблицам 1С за какими-нибудь данными из моего клинтского приложения.
Вот тебе и говорят - при чём тут FB? Тяни что хошь.

NB: IBExpert своим блоком умеет получать данные из ODBC соединений.

Добавлено: 17 дек 2007, 13:30
студент-практикант
[quote="Tonal"]
Т.е. для работы с Firebird используешь IBX, для работы с 1С - Ado.
quote]

А если БД на Oracle, то какие компоненты доступа можно использовать и какие по-лучше будут?

Добавлено: 17 дек 2007, 13:39
студент-практикант
IBExpert своим блоком умеет получать данные из ODBC соединений.
А как это происходит? Я тоже так хочу! А где можно почитать или взять?

Спасибо за помощь! Буду матерьяльчики узучать, тема большая, требует глубочайшего исследования и как следствие - детальной дискуссии!

Добавлено: 17 дек 2007, 14:57
kdv
А как это происходит? Я тоже так хочу! А где можно почитать или взять?
в хелпе IBExpert.

Добавлено: 18 дек 2007, 11:21
студент-практикант
Единственный прикол после всех обсуждений, это то, что руководство решило межбазовый обмен не делать, а мою базу дописать на 1С как отдельную конфигурацию и стало быть следовательно в моих услугах больше никто не нуждается :roll:
а можно метаданные с Firebird переписать в MS SQL-е.
У меня там ключи, представления, триггеры, хранимые процедуры, есть SQL запрос левое объединение, SQL - запрос передача параметра во вьюшку, SQL писался по первому вхождению (exists) ну и вообщем все, больше ничего интересного нету. Это все добро мое можно ведь просто перенести. MS SQL и Firebird они ведь вроде как похожи. И ксати говоря на какие другие СУБД похож Firebird, он то вроде не часто встретишь, где используется в вакансиях :roll:
P.S. Спасибо всем разработчикам в поддержании темы

Добавлено: 18 дек 2007, 11:34
WildSery
студент-практикант писал(а):а можно метаданные с Firebird переписать в MS SQL-е.
Переписать можно. Перенести - нет.
Кроме того, не путай 1С и MSSQL. К MSSQL из 1С ты сможешь разве что через ADO ходить. Но точно также и к FB можно.
студент-практикант писал(а):SQL - запрос передача параметра во вьюшку
Чего куда передача?
студент-практикант писал(а):SQL писался по первому вхождению (exists)
В 1С с версии 8.0 есть почти нормальный SQL. Только exists там нет.
студент-практикант писал(а):MS SQL и Firebird они ведь вроде как похожи.
Ничего подобного. Разве только, что оба сервера БД.

Добавлено: 18 дек 2007, 12:54
студент-практикант
Передача параметра во вьюшку, а как правильно называется?

select * from PLATI_TEK_IZDELIA
where id_izdelie=:val
order by id

PLATI_TEK_IZDELIA - платы текущего изделия это вьюшка, а id_izdelie=:val это параметр, кот. я передаю из клиентского приложения из Delphi.

А все СУБД они совсем все разные? А скажем у Oracle и Firebird больше пересечений? и скажем такую конструкцию это в других СУБД тоже так делается?
вообще интересны отличаи СУБД если у кого есть какой интересный матерьяльчик по конкретике подкиньте люди добрые :wink: