Запрашивать запрос из Delphi с компонентами UniDAC в двух базах данных SQL Server на одном сервере

#delphi #sql-server-2005 #unidac

#delphi #sql-server-2005 #unidac

Вопрос:

Я хочу выполнить запрос с TUniQuery (компонентами UniDAC) в двух базах данных SQL Server, расположенных на одном сервере. Я думаю, что два TUniConnections должны быть связаны в одном компоненте запроса. Есть ли какой-либо другой способ одновременно получать данные из обеих баз данных? Спасибо.

Комментарии:

1. чего вы пытаетесь достичь?

Ответ №1:

Просто используйте полное имя таблицы: <database>.<schema>.<table> . В одном запросе вы можете ссылаться на таблицы из разных баз данных. Итак, нет необходимости во втором подключении!

Комментарии:

1. … предоставленный «на том же сервере» означает «один и тот же экземпляр SQL Server» (а не просто один и тот же компьютер).

Ответ №2:

AFAIK, вы не можете использовать два TUniConnections в одном компоненте запроса одновременно.

Правильный способ сделать это — настроить одну базу данных SQL Server так, чтобы она знала о другой, сделав ее связанным сервером. Это позволяет одной инструкции SQL SELECT ссылаться как на таблицы в текущей базе данных, так и на таблицы в другой, разрешая JOINs или UNIONs . Это также позволяет выполнять репликацию, распределять нагрузки и другие преимущества, если они вам нужны.

Комментарии:

1. Вам не нужно этого делать, когда базы данных находятся на одном экземпляре SQL server. Что, я думаю, относится к OP. По крайней мере, когда «на одном сервере» означает не просто одну и ту же машину, но фактически один и тот же экземпляр SQL server.

2. Я думаю, что вы, вероятно, правы, теперь, когда я перечитал вопрос. Пока мы не получим ответа от OP, я оставлю свой ответ на случай, если это будет полезно. Если это полностью не соответствует базе, я удалю его, чтобы убрать с пути. 🙂