Запрос с двумя разными DSN - PullRequest
1 голос
/ 29 апреля 2010

У меня есть запрос:

<asp:SqlDataSource runat="server" ID="SqlDataSource1" 
ConnectionString="Dsn=Xdb;uid=xxx;pwd=xxxxxxx" ProviderName="System.Data.Odbc" 
SelectCommand="SELECT XReqOrders.LoadNum, XReqOrders.StopSeq, XRecPkgs.DeliveryTime, 
XRecActivity.Address, XReqOrders.OrderOrTripOrRGA, XReqPkgs.Barcode, 
XReqPkgs.Description, XRecPkgs.IsDelivered, XRecPkgs.IsOnStop, YDelInfo.DeliveryDate 
FROM (((XReqOrders INNER JOIN XReqPkgs ON XReqOrders.LoadNumberOrderNumber = XReqPkgs.LoadNumberOrderNumber) 
LEFT JOIN XRecPkgs ON XReqPkgs.Barcode = XRecPkgs.Barcode) 
LEFT JOIN XRecActivity ON XRecPkgs.TranId = XRecActivity.TranId) 
INNER JOIN YDelInfo ON XReqOrders.OMID = YDelInfo.OMID
ORDER BY XReqOrders.StopSeq, XRecPkgs.DeliveryTime">    
</asp:SqlDataSource>

Таблицы "X" взяты из одного источника данных, а таблица "Y" - из другого ... но существует соединение между источниками данных. Я не могу понять, как ввести две разные строки подключения для этого для запуска.

ConnectionString = "Dsn = Xdb; uid = xxx; pwd = xxxxxxx" ProviderName = "System.Data.Odbc" ConnectionString = "Dsn = Ydb; uid = xxx; pwd = xxxxxxx" ProviderName = "System.Data.Odbc"

Возможно ли это ... я просто что-то упустил?

Ответы [ 3 ]

3 голосов
/ 29 апреля 2010

Вы не можете присоединиться к таблицам из двух разных баз данных. В зависимости от того, какой механизм базы данных вы используете, вы можете установить «виртуальную» или «связанную» таблицу в одной базе данных, которая указывает на таблицу в другой базе данных, и выполнить JOIN таким образом. В противном случае, ваш единственный выбор - сделать копию таблицы, к которой нужно присоединиться, в другой базе данных и присоединиться к копии.

1 голос
/ 29 апреля 2010

Фактический запрос к базе данных выполняется на стороне сервера, а не на стороне клиента, поэтому нет «быстрого и простого» способа объединения двух таблиц.

Возможные варианты:

1) Настройте «Связанный сервер» (термин MSSQL, не уверен, каким будет соответствующий термин в MySql или Oracle или даже если он поддерживается) на одном из серверов SQL, который указывает на другой сервер.

2) Делает ли отдельный выбор отдельно в бизнес-объекты, а затем выполняет объединение в вашей бизнес-логике, а не в базе данных, либо вручную прокручивая записи в циклах или используя технологию, подобную LINQ в .NET.

0 голосов
/ 24 марта 2014

Как уже говорили другие, вам придется настроить "Связанный сервер"

...