home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 May / PCWorld_1999-05_cd.bin / Komunik / MSIE5 / mdac_ie5.cab / adoreadm.txt < prev    next >
Text File  |  1999-01-22  |  20KB  |  311 lines

  1. ---------------------------------------------------------
  2. Microsoft(R) ActiveX(R) Data Objects version 2.1 Readme File
  3. ---------------------------------------------------------
  4.  
  5. (c) 1998 Microsoft Corporation. All rights reserved.
  6.  
  7. This document provides late-breaking or other information that supplements the Microsoft ADO documentation.
  8.  
  9. --------
  10. CONTENTS
  11. --------
  12.  
  13. 1. PRODUCT DESCRIPTION
  14.    
  15. 2. NEW FEATURES
  16. 2.1 Seek and Index
  17. 2.2 Row updates and synchronization
  18. 2.3 Microsoft OLE DB Persistence Provider
  19. 2.4 Microsoft Data Shaping Service for OLE DB
  20. 2.5 Microsoft OLE DB Remoting Provider
  21.  
  22. 3. TECHNICAL NOTES
  23. 3.1 Security Enhancements
  24. 3.2 Restrictive Behavior
  25. 3.3 Customizing Security Settings
  26.  
  27. 4. KNOWN BUGS, LIMITATIONS, WORKAROUNDS, AND LATE-BREAKING DOCUMENTATION NOTES
  28.  
  29. ----------------------
  30. 1. PRODUCT DESCRIPTION
  31. ----------------------
  32.  
  33. ActiveX Data Objects (ADO) is an Automation-based interface for accessing data. ADO uses the OLE DB interface to access a broad range of data sources, including but not limited to data provided via ODBC.
  34.  
  35. Users of RDO and DAO should quickly become comfortable with programming to ADO because the overall design of ADO comes from our experience in developing those interfaces.
  36.  
  37. Microsoft Remote Data Service (RDS) is a component of ADO that provides fast and efficient data connectivity and the data publishing framework for applications hosted in Microsoft 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, RDS provides data access programming in the style of Microsoft Visual Basic(R) to Web developers who need to build distributed, data-intensive applications for use over corporate intranets and the Internet.
  38.  
  39. ---------------
  40. 2. NEW FEATURES
  41. ---------------
  42.  
  43. ADO 2.1 adds several new features for developers.
  44.  
  45. 2.1 Seek and Index
  46. The Seek method and Index property add fast, index-based location of rows in a recordset.
  47.  
  48. 2.2 Row updates and synchronization
  49. The new "row fix-up" mode offers the user custom control of row updates and synchronization for recordsets created by a JOIN operation. Seven new dynamic properties control the behavior of five existing methods.
  50.  
  51. 2.3 Microsoft OLE DB Persistence Provider
  52. The Microsoft OLE DB Persistence Provider, in conjunction with the Recordset object's Save and Open methods, saves and restores a recordset to a file. With this release, a recordset can be saved in Extensible Markup Language (XML) format, the standard means of defining user-specified tags for data transported across the Internet.
  53.  
  54. 2.4 Microsoft Data Shaping Service for OLE DB
  55. The Microsoft Data Shaping Service for OLE DB, which supports Data Shaping, can now:
  56.  
  57. 2.4.1 Re-shape a previously shaped recordset. To support this feature, recordsets now have a Name property that exists for the duration of the connection.
  58.  
  59. 2.4.2 Perform aggregate calculations on a column at any level of a shaped recordset, not just the immediate child of the parent. This feature uses fully qualified chapter names to form a path to the desired level and column.
  60.  
  61. 2.4.3 Parameterized COMPUTE commands can have an arbitrary number of intervening COMPUTE clauses between the PARAMETER clause and parameter argument.
  62.  
  63. 2.5 Microsoft OLE DB Remoting Provider
  64. The Microsoft OLE DB Remoting Provider becomes a standard service provider and acquires new dynamic properties for enhanced performance, greater user control, and backwards compatibility with ADO 2.0.
  65.  
  66.  
  67. ------------------
  68. 3. TECHNICAL NOTES
  69. ------------------
  70.  
  71. 3.1 Security Enhancements
  72.  
  73. This release includes security enhancements for ADO and RDS objects so that some of the operations are restricted when Internet Explorer is running in a "safe" mode.
  74.  
  75. 3.1.1. Zones
  76. You can set different security settings for different "zones" in Internet Explorer 4.0 to customize the behavior of ADO/RDS objects in those zones. The following four zones are defined in Internet Explorer 4.0:
  77. *  Internet zone
  78. *  Local intranet zone
  79. *  Restricted sites zone
  80. *  Trusted sites zone
  81.  
  82. 3.1.2. Security Levels
  83. For each of these zones, you can specify the security level to use. The following security levels are available for each zone:
  84. *  High
  85. *  Medium
  86. *  Low
  87. *  Custom
  88.  
  89. Like any other ActiveX controls, in order for ADO/RDS objects to work at all in Internet Explorer 4.0, the security level must be set to "Medium" or "High." Custom settings are used to set ADO/RDS objects to behave in safe or unsafe mode.
  90.  
  91. 3.2 Restrictive Behavior
  92.  
  93. By default, any unsafe operations on ADO/RDS objects in Internet Explorer 4.0 will result in a user prompt when accessing pages from "Local trusted zone," "Trusted sites zone," and "Internet zone." Unsafe operations on ADO/RDS objects are disabled, by default, for pages loaded from "Restricted sites zone." The following describes ADO/RDS behavior when running in these modes:
  94.  
  95. 3.2.1 Safe Objects
  96. The following objects are considered "safe." This means that unsafe operations (detailed in 3.2.3) are disallowed in a safe environment (e.g., Internet Explorer, by default; unless custom settings are used to run in an unsafe mode) and allowed in an unsafe environment (e.g., Visual Basic).
  97. a. RDS.DataControl object
  98. b. RDS.DataSpace object
  99. c. ADO Recordset object
  100.  
  101. 3.2.2 Unsafe Objects
  102. The following objects are considered "unsafe." They cannot be created directly or indirectly (and given to a user) when operating in a safe environment.
  103. a. RDSServer.DataFactory object
  104. b. ADO Connection object
  105. c. ADO Command object
  106.  
  107. 3.2.3 Unsafe Operations on Safe Objects
  108. The following are considered unsafe operations on the "safe" objects -- RDS.DataControl, RDS.DataSpace, ADO Recordset. These operations are disallowed in a safe environment but allowed in an unsafe environment.
  109.  
  110. a. RDS.DataControl
  111. i) All two-tier and DCOM scenarios on the RDS.DataControl object. This means that you cannot open database connections on your local machine or from servers to which you connect using the DCOM protocol.
  112. ii) All three-tier operations over HTTP are restricted to the server from which the page has been downloaded. This means that the Server property on the RDS.DataControl object must be equal to the host name (http://server) from which the page has been downloaded.
  113.  
  114. b. RDS.DataSpace
  115. i) All two-tier and DCOM scenarios on the RDS.DataSpace object. This means that you cannot use the RDS.DataSpace object to invoke business objects on your local machine or over the DCOM protocol.
  116. ii) All three-tier scenarios over HTTP are restricted to the server from which the page has been downloaded. This means that the second parameter in the CreateObject method call on the DataSpace object must point to the same server from which the page has been downloaded.
  117.  
  118. c. ADO Recordset
  119. i) Making any connection where provider is not MS Remote. So the connection string must start with "Provider=MS Remote". The "Remote Server" tag in the connection string must also be the same name as the server from which the page has been downloaded. Local two-tier and DCOM connections are not allowed.
  120. ii) Local Persistence operations, like saving a recordset to the local filesystem and opening a recordset from file on the local machine.
  121.  
  122. 3.3 Customizing Security Settings
  123.  
  124. ADO/RDS behavior is controlled by the setting for the "Initialize and script ActiveX controls not marked as safe" option. You can change the security settings by changing the security level for a specific zone. Default settings for the "Initialize and script ActiveX controls not marked as safe" option for the intranet zone are as follows:
  125. Security level = High        Value = "Disable"
  126. Security level = Medium        Value = "Disable"
  127. Security Level = Low        Value = "Prompt"
  128.  
  129. For default settings in other security zones, please refer to the documentation for Internet Explorer.
  130.  
  131. By changing the security level, you can change the behavior of disconnected ADO Recordset objects running in the browser. If you want to enable unsafe operations and do not want to be prompted every time such an operation is attempted, then you must explicitly set the value for the above option to "Enable." Please also note that if you attempt an unsafe operation (such as saving a Recordset to a file in the local filesystem) on an ADO Recordset obtained from the RDS.DataControl, then you must set the value for the above option to "Enable." The setting of "Prompt" acts like "Disable" for such Recordset objects (obtained from the RDS.Datacontrol).
  132.  
  133. You can override the default settings by directly manipulating the custom settings for the above option. You can choose to completely disable the unsafe operations (described above), or specify that a warning be displayed whenever such an operation is attempted, or enable such an operation without any warning. You can set different custom settings for different security zones. The following steps must be taken to customize your security settings for a specific security zone:
  134.  
  135. CAUTION: Please be aware that by enabling "Initialize and script ActiveX controls not marked as safe" (step 5 below), you are allowing ANY ActiveX control, safe or unsafe, to be used from within Web pages (which potentially exposes user machines to malicious controls or malicious scripting code). It is recommended that you should do this only in the "intranet" or "Trusted Sites" Security Zones and not on the "Internet" zone.
  136.  
  137. 1. From the View menu in Internet Explorer 4.0, select Internet Options to bring up the Internet Options dialog box. Select the Security tab.
  138. 2. From the Zone drop-down list, select the zone that you want to customize settings for.
  139. 3. Select Custom for the selected zone. This enables the Settings button on the dialog box.
  140. 4. Click Settings to bring up the Security Settings dialog box.
  141. 5. If you want to enable unsafe operations (described in 3.2.3) on ADO/RDS objects without any warning being displayed, select "Enable" for the option "Initialize and script ActiveX controls not marked as safe" in the Security Settings dialog box. Click OK.
  142. 6. If you want a warning to be displayed whenever an unsafe operation (described in 3.2.3) on ADO/RDS objects is attempted, select "Prompt" for the option "Initialize and script ActiveX controls not marked as safe" in the Security Settings dialog box. Click OK.
  143. 7. If you want to completely disable unsafe operations (described in 3.2.3) on ADO/RDS objects, select "Disable" for the option "Initialize and script ActiveX controls not marked as safe" in the Security Settings dialog box. Click OK.
  144. 8. If appropriate, repeat these steps to customize the security settings for other security zones.
  145. 9. Click OK.
  146.  
  147. Now ADO/RDS objects will behave in specified custom mode. These settings affect the following behavior of ADO/RDS objects (as described in 3.2.3) in the specified security zone -- opening local two-tier connections; working over DCOM; connecting to a server other than the one from which the page was originally downloaded; saving and opening a recordset to/from files on the local machine.
  148.  
  149. If you set your custom options to "Prompt", the following warning is displayed when an unsafe operation is attempted on ADO/RDS objects:
  150.  
  151. "The page is accessing a data source on another domain. Do you want to allow this?" The user has the option of replying "Yes" or "No". If the reply is "Yes", the operation is completed; otherwise it fails.
  152.  
  153. --------------------------------------------------
  154. 4. KNOWN BUGS, LIMITATIONS, WORKAROUNDS, AND LATE-BREAKING DOCUMENTATION NOTES
  155. --------------------------------------------------
  156.  
  157. 4.1 Client impersonation in RDS is not currently supported due to missing support from the operating system.
  158.  
  159. 4.2 When creating "Virtual Servers" in Internet Information Server 4.0, the following two extra steps are needed in order to configure the server to work with RDS:
  160.  
  161. A) When setting up the server, check "Allow Execute Access."
  162. B) Move msadcs.dll to vroot\msadc, where vroot is the home directory of your virtual server.
  163.  
  164. 4.3 When using RDS on an IIS server, the number of threads created per processor can be controlled by manipulating the registry on the Web server.  The number of threads per processor can affect performance in a high traffic situation, or in low traffic but large query size scenarios. The user should experiment for best results. The specific value to be adjusted is:
  165.  
  166. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\ADCThreads
  167.  
  168. where ADCThreads is a user-added REG_DWORD. The range of valid values is 1 to 50. The default value is 6. If the value specified by the registry key is greater than 50, then the maximum value is used (50). The user should not need to create this registry value; it is not included in the registry by default.
  169.  
  170. 4.4 By default, ADO is installed with a "safe" RDS Server DataFactory configuration. Safe mode for RDS Server components means that following are true:
  171.  
  172.     1. Handler is required with the DataFactory 
  173.        (this is mandated by a registry key setting)
  174.  
  175.     2. Our default handler, msdfmap.handler, is registered, present 
  176.        in the safe-handler list, and marked as the default handler.
  177.  
  178.     3. Msdfmap.ini file is installed in the Windows directory. You 
  179.        must configure this file according to your needs, before using 
  180.        RDS in three-tier mode.
  181.  
  182. Optionally, you can configure an unrestricted DataFactory installation. DataFactory can be used 
  183. directly without the custom handler. Users can still use a custom handler by modifying the connection strings, but it is not required.
  184.  
  185. We have provided the registry file handsafe.reg to setup the handler registry entries for a safe configuration.
  186. To run in safe mode, run handsafe.reg. 
  187.  
  188. We have provided the registry file handunsf.reg to setup the handler registry entries for a unrestricted configuration. To run in unrestricted mode, run handunsf.reg.
  189.  
  190. For more information about using the Customization Handler feature of RDS, see the technical article "Using the Customization Handler Feature in RDS 2.0," available at http://www.microsoft.com/data/techmat.htm
  191.  
  192. 4.5 The Find method searches a Recordset in the specified direction from the current row position for the record that satisfies the specified criteria. If no current row position has been set before calling Find, an error occurs.
  193.  
  194. 4.6 In order to use ADO FetchProgress and FetchComplete Events with Visual Basic, at least Visual Basic version 6 is required.
  195.  
  196. 4.7 The following operations are considered "safe" to use in Data Shaping CALC expressions:
  197.  
  198. Abs, Asc, Atn, CBool, CByte, CCur, CDate, CDbl, Chr, ChrB, ChrW, Chr$, ChrB$, CInt, CLng, Cos, CSng, CStr, Cvar, CVDate, CVErr, Date, Date$, DateAdd, DateDiff, DatePart, DateSerial, DateValue, Day, DDB, Error, Error$, Exp, Fix, Format, Format$, FV, Hex, Hex$, Hour, IIF, InStr, Int, IPmt, IRR, IsDate, IsEmpty, IsError, IsNull, IsNumeric, IsObject, LCase, LCase$, Left, LeftB, Left$, LeftB$, Len, Log, LTrim, LTrim$, Mid, Mid$, Minute, MIRR, Month, Now, NPer, NPV, Oct, Oct$, Pmt, PPmt, PV, QBColor, Rate, RGB, Right, RightB, Right$, RightB$, Rnd, RTrim, RTrim$, Second, Sgn, Sin, SLN, Space, Space$, Sqr, Str, Str$, StrComp, StrConv, String, String$, SYD, Tan, Time,Time$, Timer, TimeSerial, TimeValue, Trim, Trim$, TypeName, UCase, UCase$, Val, VarType , Weekday, Year
  199.  
  200. 4.8 ADO 2.1 does not support persisting hierarchical Recordset objects in XML format. 
  201.  
  202. 4.9  You cannot update the data in a read-only Recordset by saving the data to XML and editing the XML file. An error will occur when you attempt to reopen the Recordset from the XML file if the XML data has been changed.
  203.  
  204. 4.10 When using adUseClient or remoting against SQL Server 6.5 Service Pack 4, using the DISTINCT keyword in queries will be ignored for updatable result sets. This is a SQL Server issue and should be resolved in a future service pack.
  205.  
  206. 4.11 The DataTypeEnum values listed in the Type Property topic in the ActiveX Data Objects Programmer's Reference contain errors. The following enum values are listed but do not exist and cannot be used:
  207.  
  208. adArray, adByRef, adVector
  209.  
  210. The following values are missing from the list but do exist and can be used:
  211.  
  212. adChapter     A 4-byte chapter value used to identify rows in a child rowset (DBTYPE_HCHAPTER).
  213.  
  214. adDBFileTime  A file time value (DBTYPE_DBFILETIME).
  215.  
  216. adFileTime    A 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 (DBTYPE_FILETIME).
  217.  
  218. adPropVariant An Automation PROPVARIANT (DBTYPE_PROP_VARIANT).
  219.  
  220. adVarNumeric  A numeric value (Parameter object only).
  221.  
  222. 4.12 The list of valid values for the Options parameter of the Execute method of Connection and Command objects contains errors. The following ExecuteOptionEnum value is incorrectly listed twice. It should be listed once as such:
  223.  
  224. adCmdTable    Indicates that ADO should evaluate CommandText as a table name and generate an SQL query to return all rows from the table named in CommandText.
  225.  
  226. The following CommandTypeEnum value is missing from the list but does exist and can be used:
  227.  
  228. adCmdFile     Indicates that the provider should evaluate CommandText as a file name.
  229.  
  230. The following ExecuteOptionEnum values are missing from the list but do exist and can be used:
  231.  
  232. adAsyncFetchNonBlocking   Indicates that the main thread never blocks while fetching. If the requested row has not been fetched, the current row automatically moves to the end of the file.
  233.  
  234. adExecuteNoRecords        Indicates CommandText is a command or stored procedure that does not return rows (for example, a command that only inserts data). If any rows are retrieved, they are discarded and not returned. Always combined with adCmdText or adCmdStoredProc. 
  235.  
  236. 4.13 The list of QueryType Enum values for the OpenSchema method of a Connection object contains errors. The following values are missing from the list but do exist and can be used:
  237.  
  238. Enum            Restriction Columns
  239.  
  240. adSchemaDBInfoKeywords    none
  241.  
  242. adSchemaDBInfoLiterals    none
  243.  
  244. adSchemaCubes        CATALOG_NAME
  245.             SCHEMA_NAME
  246.             CUBE_NAME
  247.  
  248. adSchemaDimensions    CATALOG_NAME
  249.             SCHEMA_NAME
  250.             CUBE_NAME
  251.             DIMENSION_NAME
  252.             DIMENSION_UNIQUE_NAME
  253.  
  254. adSchemaHierarchies    CATALOG_NAME
  255.             SCHEMA_NAME
  256.             CUBE_NAME
  257.             DIMENSION_UNIQUE_NAME
  258.             HIERARCHY_NAME
  259.             HIERARCHY_UNIQUE_NAME
  260.  
  261. adSchemaLevels        CATALOG_NAME
  262.             SCHEMA_NAME
  263.             CUBE_NAME
  264.             DIMENSION_UNIQUE_NAME
  265.             HIERARCHY_UNIQUE_NAME
  266.             LEVEL_NAME
  267.             LEVEL_UNIQUE_NAME
  268.  
  269. adSchemaMeasures    CATALOG_NAME
  270.             SCHEMA_NAME
  271.             CUBE_NAME
  272.             MEASURE_NAME
  273.             MEASURE_UNIQUE_NAME
  274.  
  275. adSchemaProperties    CATALOG_NAME
  276.             SCHEMA_NAME
  277.             CUBE_NAME
  278.             DIMENSION_UNIQUE_NAME
  279.             HIERARCHY_UNIQUE_NAME
  280.             LEVEL_UNIQUE_NAME
  281.             MEMBER_UNIQUE_NAME
  282.             PROPERTY_TYPE
  283.             PROPERTY_NAME
  284.  
  285. adSchemaMembers        CATALOG_NAME
  286.             SCHEMA_NAME
  287.             CUBE_NAME
  288.             DIMENSION_UNIQUE_NAME
  289.             HIERARCHY_UNIQUE_NAME
  290.             LEVEL_UNIQUE_NAME
  291.             LEVEL_NUMBER
  292.             MEMBER_NAME
  293.             MEMBER_UNIQUE_NAME
  294.             MEMBER_CAPTION
  295.             MEMBER_TYPE
  296.             Tree operator (see below)
  297.  
  298. Note that the last seven Enum values (adSchemaCubes to adSchemaMembers) should be used with multidimensional data providers. For more information including the definition of the tree operator restriction of adSchemaMembers, see the OLE DB for OLAP Programmer's Reference.
  299.  
  300. 4.14 The AffectEnum values listed in the CancelBatch method topic in the ActiveX Data Objects Programmer's Reference contains an error. The following values are missing from the list but do exist and can be used:
  301.  
  302. adAffectAllChapters     Cancel pending changes for all chapters.
  303.  
  304. 4.15 The adModeShareDenyNone ConnectModeEnum value is incorrectly described in the Mode property topic. It should be listed as such:
  305.  
  306. adModeShareDenyNone    Allow others to open connection with any permissions. Neither read nor write access can be denied to others.
  307.  
  308. 4.16
  309. The Index property formerly returned an error if no Index was set on the Recordset object.
  310. As of ADO 2.1 in MDAC 2.1 Service Pack 1, it returns an Empty String, and success.
  311.