Нет конкретного места для размещения этого кода (хук или модуль), вы просто помещаете его туда, где вам нужно.
Так что он должен идти перед вашими запросами в другой базе данных и сразу после того, как установить обратно базу данных по умолчанию.
Если весь ваш модуль будет полагаться на внешнюю БД, просто поместите его в начало первой функции, вызываемой для вашего модуля, и в конец последней функции.
Конечно, каждая ваша функция должна выполняться на внешней БД, и ничто не должно запрашивать базу данных по умолчанию без обратного переключения.
Этот следующий код потерпит неудачу:
db_set_active('YourDatabaseKey');
$result = db_query('SELECT ...'); //Your own queries on the external DB.
$node = node_load(123); //This would fail on the external DB.
$result = db_query('SELECT ...'); //Your own queries on the external DB.
db_set_active();
Вы должны переключаться назад и вперед:
db_set_active('YourDatabaseKey');
$result = db_query('SELECT ...'); //Your own queries on the external DB.
db_set_active();
$node = node_load(123); //Query made on the default Drupal DB.
db_set_active('YourDatabaseKey');
$result = db_query('SELECT ...'); //Your own queries on the external DB.
db_set_active();