Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2019, 02:34   #1
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию Работа с двумя базами, перед запуском приложения

Доброе время суток форумчане,
Такая ситуация.
Есть приложение (Delphi 10.2) работающее с базой (на firebird3), в которой есть таблица («user_data») пользователей с паролями.
Есть библиотека которая управляет доступом входа в приложение, т.е. перед запуском приложения, запускается библиотека, которая читает из реестра путь к базе, потом вынимает пароль из таблицы («user_data») и 2 варианта или запускает приложение (пароль правильный) или выдает сообщение что пароль неправильный.

Возникла ситуация создать вторую БД (в той же директории, что и первая), с теми же пользователями, что и в первой БД. Сразу же захотелось использовать одну таблицу на 2 БД.
Само приложение умеет работать с двумя БД (просто несколько TIBDataBase). А вот библиотека не умеет, работать с несколькими БД.
Может в FB3 уже появилась возможность делать VIEW в одной БД из другой БД. Читал мануал по FB3 – не нашел. Хотел сделать VIEW «user_data» из первой БД для второй БД.

Или может есть другой вариант?
Просто не хотелось переделывать библиотеку.

Последний раз редактировалось KBO; 06.11.2019 в 02:47.
KBO вне форума Ответить с цитированием
Старый 06.11.2019, 07:35   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

https://www.sql.ru/forum/1070520/zap...-drugoy-fb-2-5
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.11.2019, 00:03   #3
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию

Хорошо, если я использую конструкцию "ON EXTERNAL DATA SOURCE".
Например:


Код:
  FIELD_NAME VARCHAR(100)
)
as
begin
  FOR
    EXECUTE STATEMENT 'SELECT FIL FROM MYTAB' 
      ON EXTERNAL 'C:\123\ATEST.FDB'          
      WITH autonomous transaction
      AS USER 'SYSDBA' PASSWORD 'masterkey'   
      WITH CALLER PRIVILEGES
    INTO :Q_FIELD_NAME
  DO 
    SUSPEND;
end
то где это должно быть, например в хранимой процедуре?
но мне ее нужно начать выполнять в какой момент?
чтобы я мог в начале работы приложения, получить пароль с таблицы в другой БД?

или это нужно вставить в конструкцию View?
Хотя в описании к конструкции написано, что ее можно использовать в PSQL-блоках, триггерах и процедурах. Тогда если в процедуре, как можно запустить процедуру и откуда ее запускать?

Последний раз редактировалось KBO; 07.11.2019 в 01:03.
KBO вне форума Ответить с цитированием
Старый 07.11.2019, 01:31   #4
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию

А понял, наверное "EXECUTE STATEMENT … ON EXTERNAL" в хранимую процедуру, + создание view с вызовом этой процедуры.
Правильно?
KBO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод изображения перед запуском программы vermond Общие вопросы C/C++ 1 24.01.2014 15:21
Импорт (перенос) данных между двумя базами reihtmonbern Помощь студентам 1 11.11.2011 13:24
Как работать с двумя базами сразу Kingson Microsoft Office Access 1 09.08.2011 18:58
Проверка на существование БД перед запуском приложения Fantom БД в Delphi 7 08.09.2008 23:09
Как поставить заставку перед запуском главной формы программы? NiganInterCOM Общие вопросы Delphi 2 22.02.2008 16:11