One of the biggest hurdles Microsoft Office users face with IBM Lotus Domino databases is the conundrum of extracting the Domino data into Windows-based applications. MS Office users are accustomed to an easy exchange between their Windows-based products. But when it comes to extracting Domino data, they often seem to be at a loss.
The reason is that Notes/Domino databases are not relational structures; they're structures in which each document is akin to a small database itself, much like XML.
So what's the fastest way to get Notes/Domino data into Windows-based products? If the product supports Open Database Connectivity (ODBC), you might try using the NotesSQL ODBC Driver that IBM Lotus provides at no cost. The NotesSQL driver has been available for years, but the latest version, NotesSQL 3.02f, was released only last October. IBM Lotus says it's one of its most popular downloads.
Note: Lotus periodically changes the location of the driver on its Web site, so if you're reading this story in MC Mag Online's archive, you may need to start looking at IBM's Lotus Web site and dig a bit. Try www.lotus.com/notessql.
What's NotesSQL Do?
NotesSQL allows ODBC-enabled data reporting tools, database tools, and application development tools to read, report, and update information that is stored in Notes/Domino databases (.nsf files). With NotesSQL, the end users themselves can integrate their Domino data using standard Windows application tools. These include Crystal Decisions' Crystal Reports, MS Visual Basic, MS Access, Lotus Approach, and any tool that provides ODBC support. Application developers can also integrate Domino access directly into their custom-built applications. In addition, Internet application development tools that support ODBC can access Domino data using the driver.
How Does It Work?
NotesSQL makes the .nsf files created by a Notes/Domino application look like relational data sources to an OBDC-enabled application. The driver interprets states issued in SQL to access forms and views that exist in the Domino .nsf files. Even relational database management systems such as Oracle and DB2 can issue SQL commands to Domino and receive the results in a relational database format of columns and rows.
How Robust Is the Driver?
NotesSQL 3.02 was designed to successfully maintain connections for multiple users while ensuring the security access rights of each user. This means you don't have to worry that opening a Domino application to your users will create security problems: Users who have appropriate access rights to the .nsf file can extract the data at will.
IBM Lotus has pledged to continue supporting ODBC/SQL access to Domino in the future, making it a good platform for continued growth. Like I said, IBM Lotus claims that the NotesSQL driver is one of its most popular free downloads. According to Lotus, even as Domino evolves toward newer technologies (like Web Services and XML), ODBC access will be supported. So you shouldn't have to worry about losing the value of setting up this technique as technology progresses.
NotesSQL Provides Samples
Once you've downloaded the NotesSQL driver from the Lotus Web site, you install it just like any other application. But while you're at the site, don't forget to also download the free Samples Kit, too.
In the Samples Kit, you'll find examples of how to connect to Crystal Reports, Visual Basic, and ADO. It also includes an ASP that describes how to maximize performance. But you don't need to worry about asking your users to create new Domino .nsf files: The driver works fine with any .nsf file created with R5 Notes/Domino Designer or later. The samples simply demonstrate how to build reliable business applications using the popular Windows tools and languages by employing the NotesSQL driver as the database extraction medium.
- Microsoft Windows 98/2000/XP/NT 4.0 at Service Pack 4 or later
- An ODBC Driver Manager Version 3.0 or later (part of Windows)
- The Lotus Notes Client or the Domino Designer (R5 or later) or Lotus Domino Off-Line Services (R 1.01 or later)
IBM Lotus has greatly improved the current installation process of the 3.02 release of NotesSQL over previous versions. Formerly, if you had an older version of the driver, you had to uninstall it before installing the newer version. By comparison, release 3.02 automatically detects any previous versions on the client machine and then upgrades that version. If you have lots of these client machines upon which to install the driver, take heart: Lotus also provides a command line "silent installation" process so they can be installed in an unattended mode. NotesSQL 3.02 then builds a Windows folder and places the documentation and your sample code into it. It's relatively quick and seems to work well.
There are three ways to configure the driver for use. You can use the ODBC dialogs through the Windows ODBC Data Source Administrator, you can use the NotesSQL Authentication List Manager (ALM) that is provided with the driver itself, or you can configure the data sources ad hoc while you're creating a MS Query and then save the configuration for later use.
If you're setting up a production environment for a particular group of users, I'd use the ALM. If, however, you're just working your way through the process for the first time, you may want to handle the configuration of the data sources in an ad hoc manner and later use the ALM to codify and roll out the configurations that are going into production.
The ALM is a good tool if you've got users on multiple machines because it stores the user name and the Notes ID information for accessing the database when they connect. As a user creates queries using the ODBC data source dialogs, the ALM updates these lists automatically, making it easier to manage large numbers of users.
By the way, the driver itself supports user name and password authentication in a list mode so you can run the driver in an unattended fashion. However, I recommend that you monitor carefully how you implement this. The ALM does a good job of providing you visibility on each desktop, but it's a major security hole to your .nsf files if you start creating "carte blanche" access with the same access rights on each desktop. Customize the access rights within Domino for the specific uses of the user, and then make certain that the password authentication list is protected on the PC.
Extracting the Data
The methods of extracting data from a Domino .nsf database are now relatively simple. Each Microsoft ODBC-compliant application has a "data import" option, allowing the application to connect to a data source through a number of ODBC drivers. The NotesSQL driver is now one of those listed.
For instance, with MS Excel, you use the "DataImport External DataNew Database Query" option. Excel launches the MS Query processes, and wizards walk you through the process of writing the SQL. This query then uses the NotesSQL driver to extract the data from the targeted .nsf file.
Limitations Connecting to Windows-Based Applications
There are some limitations in how various Microsoft products work with ODBC. For instance, MS Access supports table names of only 64 characters, while the ODBC spec supports 128. The NotesSQL driver follows the letter of the ODBC spec, so if you create a table name in a Domino application that is too long, Access coughs up an error. Smaller table names are still accessible. Access also doesn't support indexes on text fields longer than 255 bytes.
There are a number of other Microsoft application limitations, but they're well-documented in the NotesSQL documentation that comes with the driver.
Known NotesSQL Problems
There are also some known limitations or problems with NotesSQL. For instance, a text field length with a Domino .nsf file of more than 254 is not recommended. The reason for this is that Notes text fields are mapped to the ODBC data type VARCHAR, and the ODBC specification for the maximum string length of a VARCHAR field is 254. As a consequence, some applications won't work with longer fields, and you may even experience problems even if the data is shorter than 254 characters.
For more on NotesSQL limitations, check the documentation that comes with the driver itself.
Once you have the NotesSQL driver installed and the ODBC data sources established--trivial tasks compared to writing custom code--you've got yourself a pretty good system for integrating Domino data into Back Office applications.
Performance of the NotesSQL driver continues to increase with each new release, and it's important to browse through the documentation and the Samples Kit to see the tips for maintaining that performance. In other words, don't get discouraged if initial performance seems slow: There are lots of ways to increase the speed.
As a free downloadable tool, it's hard to beat NotesSQL's return on investment. You're getting a fully supported, option-rich data extraction tool that fits snuggly into your current MS Office ODBC-compliant applications. Your users won't even know it's there. It's secure, scalable, and robust.
Thomas M. Stockwell is Editor in Chief of MC Press Online, LP.