PRODUCT DESCRIPTION AND CONTENTS PRODUCT DESCRIPTION Microsoft Advanced Data Connector (ADC) is a fast and efficient data connectivity and data publishing framework for applications hosted in Internet Explorer. It is based on a client/server, distributed technology that works over HTTP, HTTPS (HTTP over Secure Sockets layer), and DCOM application protocols. Using data-aware ActiveX controls, ADC provides Visual Basic-style data access programming to Web developers who need to build distributed, data-intensive applications for use over corporate intranets and the Internet. RELEASE NOTES AND INSTALLATION GUIDE CONTENTS This document contains information on setting up, configuring, and installing Microsoft Advanced Data Connector, as well as updates and technical information not included in Getting Started and the Developer's Guide. The Release Notes and Installation Guide is arranged as follows: Section Description ----------------------------------------------------------- Installation * Platforms supported by ADC * Software requirements * ADC source file listing * Software setup * Sample application information * ADC Web site Known Problems Lists any known problems or limitations with using ADC. Technical Notes Lists technical information for the following categories: * Updatability Feature * Datasource and Web Server on Different Computers * SQL Server - Connection Pooling for High Performance * SQL Server - Performance and Stability with Connection Pooling * SQL Server - Ensuring Sufficient TempDB Space * SQL Server - Minimizing Log File Space Usage * Using Oracle Databases with Advanced Data Connector * Notes on Coding Custom Business Objects * Required Custom Business Object Registry Entry * Custom Business Object Launch Parameters * Marking Business Objects as "Safe for Scripting" * Business Object Extension Types and Protocol Requirements * DCOM Protocol - Enabling a DLL to run on DCOM * HTTP Protocol - Permissions Settings * Notes on ActiveX Controls * ADOR.Recordset Does Not Have "For Each" Functionality * Miscellaneous INSTALLATION INFORMATION PLATFORMS SUPPORTED For server operation, Advanced Data Connector is designed to support the full range of NT 4.0 hardware platforms. However, the initial platform supported will be x86/Intel. For client operation, Advanced Data Connector is designed to work with Windows 95, NT Workstation 4.0, or NT Server 4.0. SOFTWARE REQUIREMENTS The following is a list of necessary software required to successfully install, operate, and maintain Advanced Data Connector. These elements must either be present on your system, or installed as part of ADC's server installation program. * NT 4.0 Server * IIS 3.0 (including Active Server Pages) * SQL Server 6.5 with Service Pack 1 or other ODBC Level 2 compliant Datasource (We encourage you to obtain the SQL Server 6.5 Service Pack 2 when it is available. SQL Server 6.5 Service Pack 2 includes additional bug fixes and enhancements and will be available shortly. Visit http://www.microsoft.com/sql/techsupp.htm for up-to-the-minute information.) * Internet Explorer 3.01 (required only on client computers) INTERNET BROWSERS AND REQUIRED SETTINGS Advanced Data Connector is designed and tested to operate within the Internet Explorer 3.01 hosting environment. Advanced Data Connector has not been tested with the Netscape browser technology. The security level in Internet Explorer must be set to at least Medium security for it to allow the necessary files to download on the client. With High security, the files will be prevented from loading. The Security options can be set in Internet Explorer. From the View menu, select Options. On the Security tab, click Safety Level. SUPPORTED DATABASES AND CONFIGURATION INFORMATION Advanced Data Connector supports ODBC data sources supported by ODBC Level 2 drivers, such as Microsoft SQL Server 6.5, and Oracle Workgroup Server 7.3. For important configuration information specific to the data source and tips please refer to the following topics in this file: * Data Source and Web Server on Different Computers * SQL Server - Connection Pooling for High Performance * SQL Server - Performance and Stability with Connection Pooling * SQL Server - Ensuring Sufficient TempDB Space * SQL Server - Minimizing Log File Space Usage * Using Oracle Databases with Advanced Data Connector PROGRAMMING AIDS AND ADVANCED DATA CONNECTOR Client Web page editing and ADC component configuration can be done in typical editors for Web authoring, such as basic Notepad and the more fully featured ActiveX Control Pad. Some current data-aware controls are not fully integrated with the layout editor of the ActiveX Control Pad, but will still work correctly when the page is loaded in the browser. For programming server-side business objects, you can use any ActiveX/COM DLL compatible tool, such as Visual Basic or Visual C++. The sample applications included with this program were built in Visual Basic 4.0. ADVANCED DATA CONNECTOR SOURCE FILES The following table lists the setup files and those that are installed to run Advanced Data Connector. File Name Component Description ------------------------------------------------------- msadc10.exe ADC Server setup program msadc10.cab ADC ADC client installation package msadcc10.dll ADC ADC objects library msadco10.dll ADC ADC objects library msadcb10.dll ADC ADC objects library msadcf10.dll ADC ADC objects library msadcs10.dll ADC ADC objects library msr2cenu.dll ADC Sheridan ICursor mapping component (client) msr2c.dll ADC Sheridan ICursor mapping component (client) wininet.dll ADC Internet Explorer support library msadci10.inf ADC Server installation utility information madc10.hlp ADC ADC Windows Help file; includes Getting Started, Developer's Guide, Installation Guide/Release Notes madc10.cnt ADC ADC Windows Help contents file readme.txt ADC ADC Installation Guide/Release Notes in text format AddrBook.asp ADC Sample application page Arcadia.gif ADC Sample application page art SampleEmp.sql ADC Sample application page SQL script adctest.asp ADC Test page for IIS 3.0 validation sheridan.cab ADC Sample application controls installation pack advpack.dll PACKAGER Installation support utility w95inf32.dll PACKAGER Installation support utility w95inf16.dll PACKAGER Installation support utility SOFTWARE SETUP The setup program for the Advanced Data Connector product is msadc10.exe. It should be installed on the Web server computer which would be running NT Server 4.0 or later. This provides the documentation and some sample files. Setup assumes that the Software Requirements have already been installed. Setup installs the program files to the :\Program Files\Common Files\System\MSADC directory. This location is adjacent to other complementary Microsoft technologies such as ActiveX Data Objects and OLE DB. The msadc10.cab file has been provided to simplify the deployment of ADC enabled web pages by taking advantage of HTML's automatic code download feature. Automatic code download is enabled by specifying the CAB file path and name in a CODEBASE parameter when creating an AdvancedDataControl object. When the msadc10.cab file is downloaded it automatically installs the required client files. The following is an example of the HTML CODEBASE parameter in calling an AdvancedDataControl object. The following subdirectories are created under the \msadc directory with the setup program: * ..\msadc\Doc - Contains the documentation. * ..\msadc\Samples - Location of the sample files. The Address Book sample application used in "Getting Started" is installed with Advanced Data Connector. The other sample applications can be downloaded separately from the Web site and are installed into the ..\msadc\Samples directory. The installation program will also create an Internet Information Server virtual root designated ///msadc for use in referencing the physical file system from the browser. For all protocols (HTTP, DCOM) and on two- and three-tier scenarios, Microsoft Internet Information Server (IIS) version 3.0 is required on the server, or middle tier computer. This ensures that required components are available. SAMPLE APPLICATIONS Advanced Data Connector provides two sample applications that demonstrate how this technology can be used to build intranet and Internet applications. This are written for viewing with Internet Explorer. During installation of the sample applications an attempt is made to create two user accounts ("guest" and "ng") within SQL Server. If these accounts already exist, the installation will succeed, however, when running the sample application you may receive a "login failed" message. You can edit the sample files to set the correct username and password. * Address Book - Installed with the server side setup program, it is a simple company directory application. These are placed in the following directory: ..\msadc\Samples\AddressBook\. For detailed information about this application, refer to the Getting Started Guide in the Help file (madc10.hlp). * Customer Ranking - Downloaded separately, its setup program, msadcrnk.exe installs to the ..\msadc\Samples\RankDemo. It is a decision-support application that demonstrates the use of Advanced Data Connector in developing partitioned, business logic encoded, intranet applications. The application includes ActiveX objects developed in Visual Basic, Visual Basic Scripting Edition client-side code, and a complete set of stored procedures. For detailed setup and programming information about this application, refer to the Developer's Guide in the Help file (madc10.hlp). NOTE ON INSTALLATION OF CUSTOMER RANKING DATABASE ON DATABASE DEVICES The Customer Ranking sample application deploys a large database as part of its installation procedure. The script rankdemo.sql attempts to create a database on the default device for the SQL Server, trying to allocate 15Mb of space. If your default device does not have sufficient space for this operation to succeed, the rankdemo.sql should be edited to utilize a device which does. In such a case, isql_w.exe, available in the MSSQL\bin folder, may be used to load, edit, and manually execute the script. If you run the installation script and find that the database has accidentally been created on the master database - it is because of the device block allocation issue. Please refer to your SQL Server Online Documentation to find out how to utilize either the Enterprise Manager application or the sp_dboptions stored procedure to allocate the necessary disk space for the target device. It should be noted that the database created by the rankdemo.sql script has bulkcopy and truncate on checkpoint options set to TRUE, so that additional space is not consumed during the installation process by unnecessary logging. As a final reminder, the user and password supplied to the regdemo.bat script, which will invoke the rankdemo.sql script internally, must have GRANT, CREATE USER, CREATE PROCEDURE, CREATE TABLE, and CREATE DATABASE privileges. Ideally, a dba-level account should be used as the command line parameters to the regdemo.bat and rankdemo.sql scripts. FOR FURTHER INFORMATION AND TECHNICAL ASSISTANCE To learn more about the features in Microsoft Advanced Data Connector, visit the ADC Web site: http://www.microsoft.com/adc To share your ideas and suggestions on using Microsoft Advanced Data Connector, you are invited to participate in the newly formed newsgroup: microsoft.public.adc This newsgroup is unmoderated. It is primarily envisaged as a forum for the free exchange of ideas, tips, and caveats related to Microsoft Advanced Data Connector. Everyone is encouraged to participate in the online discussion. For technical support on Advanced Data Connector, the following options are available: In the United States and Canada, Microsoft Technical support provides Pay-Per-Incident, call back only support for the Advanced Data Connector. * Call (800) 936-5800; $95 (U.S.) per incident, billed to your VISA card, MasterCard, or American Express card. * Call (900) 555-2300; $95 (U.S.) per incident. Charges appear on your telephone bill. KNOWN PROBLEMS The following is a list of Advanced Data Connector 1.0 known problems. * Performing a Select on any Long Binary data type column (Oracle Long or Long Raw) from an Oracle data source will result in a script error "Unexpected error (0x8000ffff)". * Version 1.0.0.806 of the Visual Basic Script DLL (vbscript.dll) contains a memory leak. An updated version of the DLL (2.0.0.1114 or greater) resolves the issue. It will be available with Internet Information Server 3.0, and will also be downloadable in January 1997 under the Web path of HTTP://www.microsoft.com/vbscript. * Apex DBGrid causes a General Protection Fault (GPF) whenever an insert or update is attempted on the last row displayed, and the user then attempts to change record currency to a previous row. * Sheridan controls DBList and DBCombo do not display data if doublebyte character sets are used in the data. * The Apex Grid control, DBGRID32.OCX, exhibits non-standard display behavior when scrolling in very large resultsets (such as one million rows). Note that this control is not on the list of tested controls. TECHNICAL NOTES The following technical notes provide additional information on Advanced Data Connector components, setup and installation, configuration, as well as usage limitations. Use these notes as a supplement to the documentation, and to identify and solve specific problems. The topic headings in this section include: * Updatability Feature * Data Source and Web Server on Different Computers * SQL Server - Connection Pooling for High Performance * SQL Server - Performance and Stability with Connection Pooling * SQL Server - Ensuring Sufficient TempDB Space * SQL Server - Minimizing Log File Space Usage * Using Oracle Databases with Advanced Data Connector * Notes on Coding Custom Business Objects * Required Custom Business Object Registry Entry * Custom Business Object Launch Parameters * Marking Business Objects as "Safe for Scripting" * Business Object Extension Types and Protocol Requirements * DCOM Protocol - Enabling a DLL to run on DCOM * HTTP Protocol - Permissions Settings * Notes on ActiveX Controls * ADOR.Recordset Does Not Have "For Each" Functionality * Miscellaneous UPDATABILITY FEATURE This section defines the extent and configuration needed to be able to update data using Advanced Data Connector 1.0. Updatability is defined as being able to insert and delete records, and update the contents of one or more records. Advanced Data Connector 1.0 updating relies on Recordset objects created using queries with the "for browse" statement attached. Currently, the "for browse" clause is valid only with Microsoft SQL Server. This version of Advanced Data Connector can retrieve data from many ODBC data source providers, such as Access and Oracle. However, updatability can only be provided with SQL Server. The "for browse" statement adds key columns and a timestamp, or row version column, to the columns requested, if available. Not all tables contain key columns. This inclusion of extra columns helps to ensure that the update is accurately matched to the original record in the data source. Updating with multi-table queries is not supported in this version of ADC using the "for browse" SQL command. An example of a multi-table query could be "Select * from TableA, TableB". Using multi-table queries for read-only data will work fine. In general, avoid retrieving updatable Recordset objects which can contain duplicate records, as this can lead to data corruption. A status return code of DB_S_ERRORSOCCURED will occur if the WHERE clause identified duplicate records. If so, then more columns should be added to the query so that uniqueness can be achieved. Computed fields, Long Binary fields, and Text fields are not used in record identification for updating, so at least one column of another type should be included in the query. DATA SOURCE AND WEB SERVER ON DIFFERENT COMPUTERS When the data source is on a computer different than the application Web server, the Web server computer needs to have guest privileges on the data source machine if on NT. This can be done as shown in the following steps (substitute the name of your Web server for MyWebSvr): 1 On the NT data source machine, click Start, point to Programs, and click Administrative Tools. 2 Run User Manager for Domains. 3 On the User menu, click Select Domain. Enter the current computer name, and click OK. 4 In the lower window, double click on the Guests group and click Add to add the machine name account, which by default would be IUSR_MYWEBSVR in this example. SQL SERVER - CONNECTION POOLING FOR HIGH PERFORMANCE To achieve high performance handling of client load when using SQL Server, it is recommended that you enable the Connection Pooling option in the Internet Information Server. Connection Pooling is a resource manager for connections, maintaining the open state on frequently used connections. Please note that enabling Connection Pooling makes that Web server subject to other restrictions. Refer to the IIS 3.0 readme which, by default, is installed to c:\winnt\system32\inetsrv\docs\aspdocs\readme.htm in the Connection Pooling section. ENABLING CONNECTION POOLING As this option is off by default, the following steps can change this Boolean value in the registry. 1 Click Start and then click Run. From the command line, type RegEdit and click OK. 2 In the left hand pane of the Registry Editor, open the following tree, the backslashes indicating subsequent subdirectories: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ W3SVC\ASP\Parameters 3 Double click the entry in the right hand pane "StartConnectionPool". This opens an Edit String dialog. Change the 0 (the value for Off) to 1 (the value for On). 4 Click OK to save changes. SQL SERVER - PERFORMANCE AND STABILITY WITH CONNECTION POOLING For Connection Pooling to run with stability and additional performance gains, configure SQL Server to use the "TCP/IP Socket" network library. Configure SQL Setup as follows in the Required section, and then choose one of the two following Options. Required - On the SQL Server machine, run the SQL Server Setup program as follows. This will enable interactions with this data source to use the TCP/IP Socket network library. 1 From the Start menu, point to Programs, Microsoft SQL Server 6.5, then click SQL Setup. 2 Click Continue twice. The Microsoft SQL Server 6.5 - Options dialog box appears. 3 Select Change Network Support, and click Continue. 4 Ensure the TCP/IP Sockets checkbox is selected, and click OK. 5 Click Continue to finish, and exit setup. Option 1 - All SQL Servers accessed from a Web server: On the Web server machine, run the SQL Server Client Configuration Utility. The following steps will change the default network library for all SQL Server connections made from this IIS Web server to use the "TCP/IP Sockets" network library: 1 From the Start menu, point to Programs, Microsoft SQL Server 6.5, then click SQL Client Configuration Utility. 2 Choose the Net Library tab. 3 In the Default Network box select "TCP/IP Sockets". 4 Click Done to save changes and exit the utility. Option 2 - Specific SQL Server accessed from Web server: To change the network library for a specific SQL Server connection, on the Web server machine, configure the SQL Server Client software as follows: 1 From the Start menu, point to Programs, Microsoft SQL Server 6.5, then click SQL Client Configuration Utility. 2 Choose the Advanced tab. 3 In the Server box, type in the name of the server to connect to using "TCP/IP Sockets." 4 In the DLL Name box, select "TCP/IP Sockets." 5 Click Add/Modify. All data sources pointing to this server will now use "TCP/IP Sockets." 6 Click Done. SQL SERVER - ENSURING SUFFICIENT TEMPDB SPACE If errors occur in handling Recordset objects that need processing space on SQL Server, you may need to increase the size of the TempDB. An example of a query that would need temporary processing space may include an ORDER BY clause, requiring a sort of the resultset. To increase the TempDB space on SQL Server do the following: (Read through these steps first, as it is not as simple to shrink a device once expanded.) 1 Run Microsoft SQL Server Enterprise Manager. 2 Open the tree for the Server. 3 Open the Database Devices tree. 4 Select a (physical) device to expand, such as Master, and double click to open the Edit Database Device dialog box. 5 This dialog shows how much space the current databases are using. 6 In the Size scroll box to the upper left, increase the device to the desired amount. For example, 50 megabytes (MB) (of hard disk space). 7 Click Change Now to increase the amount of space to which the (logical) TempDB can expand. 8 Open the Databases tree on the server. 9 Double click on TempDB to open the Edit Database dialog box. The opening screen lists the amount of space currently allocated to TempDB. By default, this is 2 MB. 10 Click Expand. The graphs show the available and allocated space on each of the physical devices. The bars in maroon color represent available space. 11 Choose a device in the Log Device, such as Master. The available size will show to the right. 12 Click Expand Now to allocate that space to the TempDB database. This should return you to the Edit Database dialog, and you can view the new allocated size for TempDB. 13 Click OK to exit. For more information on this topic, please refer to the Microsoft SQL Server documentation. In the Microsoft SQL Server Enterprise Manager Help file, search on "Expand Database dialog box." SQL SERVER - MINIMIZING LOG FILE SPACE USAGE For large volume activity on a SQL Server database, the log file may fill quickly, halting the server. The Log file can be set to "Truncate on Checkpoint" to significantly extend the life of the log file for a database. To enable the SQL Server Truncate on Checkpoint feature, perform the following steps: 1 Run Microsoft SQL Server Enterprise Manager. 2 Open the tree for the Server. 3 Open the Databases tree. 4 Double click the name of the database on which this feature will be enabled. 5 On the Database tab, click Truncate. 6 On the Options tab, check Truncate Log on Checkpoint. 7 Click OK. For more information on the Truncate on Checkpoint feature, please refer to the Microsoft SQL Server documentation. USING ORACLE WITH ADVANCED DATA CONNECTOR For Oracle to work successfully with Advanced Data Connector as one of the supported ODBC read-only data sources, the following product and driver versions should be used: * Oracle Workgroup Server version 7.3 * Oracle SQL*Net version 2.3 * Visigenic ODBC Driver for Oracle 2.00.0000 The updated Visigenic driver can be downloaded from Microsoft's World Wide Web Site on the Internet in a self-extracting ODBC drivers update pack named WX1220.EXE. * On the www.microsoft.com home page, click the Support icon. * Click Knowledge Base, and select ODBC. * Enter kbfile WX1220.EXE, and click GO! * Open the article, and click the button to download the file. NOTES ON CODING CUSTOM BUSINESS OBJECTS * Method names on custom business objects cannot exceed 255 characters. This allows compatibility across all supported protocols in this version. * Custom business objects need to ensure that the client side can map their program name (ProgId) to an identifier (CLSID) that can be used over DCOM. For this reason, the ProgID of the DCOM object must be in the client side registry and map to the class ID of the server side business object. For the other supported protocols (HTTP, HTTPS, and In Process), this is not necessary. For example: The server exposes a business object (MyBObj) with a specific class ID (00112233-4455-6677-8899-00AABBCCDDEE), the following entries should be added to the client side registry: [HKEY_CLASSES_ROOT] \MyBObj \Clsid (Default) "{00112233-4455-6677-8899-00AABBCCDDEE}" REQUIRED CUSTOM BUSINESS OBJECT REGISTRY ENTRY To successfully launch a custom business object (DLL or EXE) through the Advanced Data Connector server its ProgID must be entered into the registry as follows. This feature is provided to ensure the security of your Web server. The default business object, AdvancedDataFactory, is already fully registered. 1 From the Start menu, click Run. 2 Type "RegEdit" and click OK. 3 Open the following trees in the left hand pane, noting that the backslash ("\") indicates a subdirectory in the registry key: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters\ADCLaunch 4 With the ADCLaunch key selected, from the Edit menu, point to New, and select Key. This creates a new entry in the left hand pane in an edit mode. 5 Type the ProgID of your custom business object and press Enter. The value entry is left blank. For added security, you may also want to enhance DCOM security for EXEs from the default setting from Connect to Packet. This configures NT to check each network packet of information for proper authentication rather than just at Connect time. This can be done as follows on the NT Server Web machine: 1 From the Start menu, click Run. 2 Type DCOMCNFG, and click OK. 3 Click the Default Properties tab. 4 Drop the Default Authentication Level list. 5 Choose Packet, and click OK. Also, there are settings to restrict group or individual launch permissions for EXEs in DCOMCNFG. See c:\winnt\help\DCOMCNFG.hlp for information on how to do this in the Access Permissions\DCOM Applications topics. CUSTOM BUSINESS OBJECT LAUNCH PARAMETERS Custom business objects need to conform to the following restrictions when being created, when being marshaled via HTTP or HTTPS: Object invocations cannot include: * Array parameters * Variant parameters (if of type array or nested variant types) * Output parameters (note that the return value of the method is marshaled back). MARKING BUSINESS OBJECTS AS "SAFE FOR SCRIPTING" To help ensure a secure Internet environment, client-side objects that Advanced Data Connector creates with the AdvancedDataSpace.CreateObject method need to be marked "safe for scripting" in the License area in the system registry before they can be used in DCOM and two-tier scenarios. The ActiveX SDK Web page at http://www.microsoft.com/intdev/sdk/ contains more information about this standard and how to implement it. The safe for scripting information is under the Signing/Marking Controls topic (signmark.htm). To manually mark your ActiveX component as safe for scripting, create a text file with a .reg extension that contains the following text shown in capitals. The two specific numbers shown below specify and therefore enable the safe for scripting feature. REGEDIT4 [HKEY_CLASSES_ROOT\CLSID\\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}] [HKEY_CLASSES_ROOT\CLSID\\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}] where is the hexadecimal GUID number of your ActiveX component. Save it and merge it into your registry by using Regedit or double-clicking directly on the .reg file in the Windows Explorer. TO MARK BUSINESS OBJECTS SAFE FOR SCRIPTING IN VISUAL BASIC 5.0: ActiveX components created in Visual Basic 5.0 can be automatically marked as "Safe for scripting" with the Application Setup Wizard. The following steps explain how to do this: 1 Start the Visual Basic 5.0 Application Setup Wizard. 2 On step one choose your project, choose "Create Internet Download Setup." 3 On step four click Safety and select "Safe for initialization" and "Safe for scripting." 4 On the last step the Application Setup Wizard creates a .htm and a .cab file. You can then copy these two files to the target computer and double-click on the .htm file to load the page and correctly register the server. 5 Since the ActiveX component will be installed in the Windows\System32\Occache directory by default, you should move it to the Windows\System32 directory and change HKEY_CLASSES_ROOT\CLSID\\InprocServer32 registry key to match the correct path. 6 If you find that your ActiveX component is not working at this point, check the .inf file that is included in the \Support directory under the Application Setup Wizard installation directory. It should contain "RegisterServer=yes" and the [AddSafeToScript] section. BUSINESS OBJECT EXTENSION TYPES AND PROTOCOL REQUIREMENTS Custom business objects can be written as executable files or dynamic-link libraries (DLL). Whether your business object is an .exe file or DLL will affect which configuration it will run in. Business objects created as .exe files can be called through DCOM. If used through IIS, these business objects are subject to additional marshaling of data, which will slow client performance. Business objects created as DLLs can be used via IIS (and therefore HTTP), and over DCOM only via the Microsoft Transaction Server. Business object DLLs will need to be registered on the IIS machine to give you accessibility via IIS. For steps on how to configure a DLL to run on DCOM, see Enabling a DLL to Run on DCO. The AdvancedDataFactory is the default business object provided by Advanced Data Connector. It is written as a DLL, and is also subject to the conditions noted above. DCOM PROTOCOL - ENABLING A DLL TO RUN ON DCOM The following steps outline how to enable a business object DLL to use both DCOM and IIS (HTTP) via the Microsoft Transaction Server (MTS). In the Transaction Server Explorer create a package and add the DLL into this package. This makes the DLL accessible through DCOM, but it removes the accessibility through IIS (if you check in the registry for the DLL, the Inproc key is now empty). TO CREATE A NEW EMPTY PACKAGE Run Transaction Server Explorer by clicking on the Start, Program Files, Microsoft Transaction Server, Transaction Server Explorer command. 1 Click the computer where you want to create the package, such as My Computer. 2 Click the Packages Installed folder under it. 3 On the File menu, click New. 4 Click Create an empty package. The Create Empty Package dialog box appears. 5 Type a name for the new package and click Next. The Select User dialog box appears. The default selection is Run As Interactive User. 6 Click Next to accept the Run As Interactive User option, or select another user and then click Finish. TO INSTALL A COMPONENT TO A PACKAGE 1 Click the computer where you want to install a component. 2 Click the package where you want to install the component. 3 Click the Components folder. 4 On the File menu, click New. 5 Click Install new Component(s). 6 In the dialog box that appears, click Add Files to select the files you want to install. 7 In the dialog box that appears, select the DLL file you want to add, and click Open. 8 Click the Finish button to install the component. You can also install a component by dragging a .DLL file from the Windows NT Explorer to the right pane of the Microsoft Transaction Server Explorer while the Components folder is open. Installing in this way has the same effect as using the New Components Wizard's install option. To get the DLL accessible through DCOM and IIS on the same machine you must set an additional property in the Microsoft Transaction Server Explorer: 1 In the left pane of the Transaction Server Explorer, right-click over the DLL whose properties you want to view, and then click Properties. 2 Choose the Activation tab. 3 Activate "In the creator's process..." and click OK. If you check the registry you will notice that an Inproc server key has been added that points to a MTS surrogate DLL. HTTP PROTOCOL - PERMISSIONS SETTING The IIS password authorization settings must include "Allow Anonymous" for Advanced Data Connector to successfully retrieve data over the HTTP protocol. The exception to this is the "HTTPS://" protocol in which the Secure Sockets Layer is used. To modify this IIS setting do the following: 1 Run Microsoft Internet Service Manager. 2 Double click on the WWW service to bring up the Properties dialog box. 3 At the bottom of the dialog are the three checkbox options for Password Authentication. Choose those to enable, ensuring Allow Anonymous is checked. 4 Click OK. 5 With WWW selected, click Stop (the black square), and then Start (the black forward arrow) for the new settings to take effect. NOTES ON ACTIVEX CONTROLS * When using the Sheridan Grid control, TBGSGRID32.OCX, the AdvancedDataControl must be the last control loaded on the HTML page, or an error will occur. Since the AdvancedDataControl is an invisible control, this placement will not affect the layout of the Web page. * The Sheridan combo box has two properties that can be bound to the AdvancedDataControl data. Just adding the combo box to the Bindings property of AdvancedDataControl does not automatically populate the "Text" portion, a non-bindable property, which shows the currently selected item. This may cause the behavior that new data provided by a Refresh method will not update old data still displayed. A workaround is to use either of the two sample Visual Basic Scripting Edition subroutines shown below. Both clear the Text property when the Refresh method is called. SSCombo is the name of the Sheridan combobox control in these examples. SUB SSCombo_InitColumnProps() SSCombo.Text="" End Sub SUB Refresh_OnClick ADC1.Refresh SSCombo.Text="" End Sub ADOR.RECORDSET DOES NOT HAVE "FOR EACH" FUNCTIONALITY A common scenario to check the number of columns in a recordset is to count through them and use that data in the following code. The "For Each" syntax is part of ADODB but not ADOR. It is recommended that you use the ADOR.Recordset.Fields.Count property instead. The following partial code samples show looping over the fields in order to print out the data of a row: Will work only with an ADODB.Recordset: For Each fld in rs.Fields Document.Write fld.Value Next Will work with either an ADOR.Recordset or ADODB.Recordset: For i = 0 to rs.Fields.Count - 1 Document.Write rs.Fields(i).Value Next MISCELLANEOUS * When converting data types from SQL Server to OLE DB data types, note that coercing data from DBTYPE_DATE to DBTYPE_DBDATE or DBTYPE_DBTIMESTAMP will fail (with a DBSTATUS_E_CANTCONVERTVALUE ) when the date is 12/31/1752 or before. This corresponds to a similar restriction in the SQL Server ODBC driver. * Only the first result of a multiple-resultset request is returned. If multiple results are needed, assign each to its own AdvancedDataControl. An example of a multiple-resultset request could be, "Select * from Authors Select * from Topics". * If a custom business object uses an isolation level of read repeatable to access a SQL Server, and is called simultaneously by two clients that send a query and update in the same transaction, a deadlock is possible. Advanced Data Connector is built to allow one of the processes to timeout to release the deadlock, but this will fail the update for that client. A registry entry on the Web server can be added as follows to modify the length of the timeout. The default is 30 seconds (or 30,000 milliseconds). 1 From the Start menu, click Run. 2 Type "RegEdit" and click OK. 3 Open the following trees in the left hand pane, noting that the backslash ("\") indicates a subdirectory in the registry key: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters 4 With the Parameters key selected, from the Edit menu, point to New, and select DWORD Value. 5 In the name column in the right hand pane, type "ADCUpdateTimeout" and press Enter. 6 Double click on the new entry. The Edit DWORD Value dialog box appears. Enter the new value in milliseconds in the Value data box. The value must be greater than or equal to zero.