• Topic
  • Discussion
  • ODS.VirtMSSQLLinkingObjects(Last) -- DAVWikiAdmin? , 2017-06-29 07:34:09 Edit WebDAV System Administrator 2017-06-29 07:34:09

    Linking Microsoft SQL Server Database Objects (Tables, Views, and Stored Procedures) into Virtuoso

    Prerequisites

    • Virtuoso Universal Server, Commercial Edition
      Virtuoso Universal Server Release 6.x or later is recommended, optimally the latest version available.

    • ODBC Driver for Microsoft SQL Server
      The Virtuoso Server uses an ODBC Driver for Microsoft SQL Server to link in the Microsoft SQL Server Schema Objects (Tables, Views, and Stored Procedures). The OpenLink Multi-Tier ODBC Driver for Microsoft SQL Server will be used in this document, and a functional ODBC Data Source Name (DSN) of sql25ma will be assumed to exist on the machine hosting the Virtuoso Server. Any ODBC compliant driver for Microsoft SQL Server should work.

    • Microsoft SQL Server DBMS
      A Microsoft SQL Server DBMS hosting the required Schema Objects (Tables, Views, and Stored Procedures) needs to be available. This may be on any host which is TCP/IP accessible from the Virtuoso Server host. In this document, the Microsoft SQL Server Northwind sample database will be used to demonstrate the process.

    Steps

    1. Load the HTTP-based Virtuoso User Interface in your browser.



    2. Click the Conductor link in the left-side navbar, and log in as a user with DBA privileges, such as the default dba user.

      VirtConductor.png

    3. Drill down to the Databases -> External Data Source -> Data Sources tab.

      VirtLinkSQL01.png

    4. Locate the DSN for the desired remote data source (we're using sql25ma for this example). If not yet connected to the DSN, click Connect, and input your user credentials for the remote data source.

      VirtLinkSQL02.png

    5. Once connected to the DSN, click the associated Link objects to get a list of available objects (tables, views, stored procedures).

      VirtLinkSQL03.png

    6. Locate and select the desired objects.

      VirtLinkSQL04.png

      • You can use the Catalog and Schema drop-down selectors and the table name test-entry box to construct a filter to shorten the visible list.
      • For this example, we'll choose the main tables from Microsoft's sample Northwind.dbo schema -- Categories, CustomerCustomerDemo, CustomerDemographics, Customers, Employees, EmployeeTerritories, Order Details, Orders, Products, Region, Shippers, Suppliers, Territories.
      • When all desired objects are selected, click the Link... button.
    7. Virtuoso will interrogate the remote data source to learn about primary keys, and present you with a default linkage setup.

      VirtLinkSQL05.png

    8. You can adjust the Virtuoso catalog, schema/owner, and object identifiers to suit your goals. The Set To All button can be used to speed the process. In this example, we'll put all linked objects into the sqlserver catalog, and the northwind schema. We'll leave the object identifiers unchanged.

      VirtLinkSQL06.png

      • Sometimes a primary key is not reported properly, or you want to use a different key, either simple or compound. Click Edit next to the primary key you want to change, and select the columns that Virtuoso should use for the purpose --

        VirtLinkSQL07.png

    9. When all are set as desired, click the Link button to link the objects into Virtuoso. Virtuoso may take some time to complete this step, depending on network infrastructure, DBMS load, etc.
    10. The Link process will complete by listing the linked objects in the Databases -> External Data Source -> External Linked Objects tab.

      VirtLinkSQL08.png

    Confirmation and Testing

    Working with External Linked Objects (Tables, Views, and Stored Procedures)

    1. Linked object are shown in the Databases -> External Data Source -> External Linked Objects tab.

      VirtLinkSQL08.png

    2. Clicking the hyperlinked Local Name of the External Linked Objects will load the Virtuoso Interactive SQL (iSQL) HTTP interface (in a new browser tab or window) with a default SELECT * SQL query. For instance, clicking on sqlserver.northwind.Employees brings --

      VirtLinkSQL09.png

    3. Click the Execute button to run the query. Virtuoso will retrieve the results from the remote table. Note: By default, iSQL will "Show no more than 100 rows ." You can change this value as desired.

      VirtLinkSQL10.png

    Working with SQL Database Objects (Tables, Views, and Stored Procedures)

    1. Linked objects are also visible through the Database -> SQL Database Object tab, just as if they were local Virtuoso data.

      VirtLinkSQL11.png

    2. Simply drill down to the Catalog you set while linking --

      VirtLinkSQL12.png

    3. As you might expect, clicking on any of the Action links will reveal the table definition, indexes, triggers, constraints, or privileges. For example, clicking Definition for sqlserver.northwind.Employees --

      VirtLinkSQL13.png

    Related

    • Mapping SQL Data to Linked Data Views?
    • Using Microsoft Entity Frameworks to Access Microsoft SQL Server Schema Objects (Tables, Views, and Stored Procedures) with Virtuoso?

    CategoryDocumentation CategoryVirtuoso CategoryDotNET? CategoryEntityFrameworks? CategoryWebSite