Home
CubeSlice
DTS Book
OLAP Unleashed
Bookstore
Consulting
Training
Links
Glossary
About Us
Email

Microsoft OLAP Unleashed

Corrections

It is humbling for me as an author to see all the corrections that are needed for a book in its first printing. Hopefully all these changes will be made for the second printing. Thanks to all of you who have pointed out errors or who suggested changes. I apologize for the inconvenience you have experienced as a result of these mistakes. If you see any errors in the book not on this list, please let me know at tpeterson@sdgcomputing.com

The corrections in this list are for the first 20 chapters of the first printing of Microsoft OLAP Unleashed, Second Edition (November, 1999). This list was last updated on February 15, 2000.  The first set of corrections posted on January 25, 2000 are in normal black text.  February 11th updates to this list are flagged by use of this color

P40, bullet 6=  "on" > "of" 

P53, line 23=  "The easiest place">"It is possible" 

P55, line 5=  "pieces of the corporate information factory">"facets of an enterprise's data structure" 

P56, bullet 5=   > "The data marts can be built as collections of tables......." 

P67, line 12 =  REMOVE  >"Your company needs a corporate information factory to provide the data for critical corporate decisions." 

P74, line 8 under "The Fact Table"  =  "tables" > "table" 

P78, line 13 =  "ApplesSold" > "ApplesInStock" 

P78, line 18 =  REMOVE > "???" 

P86, Heading of Table 5.4= “Time” > “Product” 

P87, line 2 under "Note" =  "dimensions" > "hierarchies" 

P87, line 3 under "Note" = "hierarchy" > "dimension" 

P88, line 1 & line 2 =  "ADO MX"  >  "ADOMD" 

P106, line 1 in Tip=  “dimensions”  >  “members” 

P106, line 4 in Tip=  “measure” > “member” 

P107, line 8 under Using Ranges of Values=  ADD dashes > {[$.01-$1.00], [$1.01-$2.00], [$2.01-$3.00]}   

P. 107, Line 1 = “is” > “are”

P112, line 3 in Tip= REMOVE “do” 

P118, line 2 under frame =  "ODBC" > "ODBC 2.5"   

P.  118   In the Note :  “Books On Line” > “Books Online”

P119, line 4= “text files, Excel worksheets, and data from a Data Link.” > “text files and Excel worksheets.” 

P119, bullet 4 = REMOVE > "tasks and" 

P119, bullet 5 =  "Data"  >  "DTS" 

P120, bullet 1 =  "This is the preferred method of storage because it provides......."  >  "This method provides......." 

P122, line 1 under Data-Driven Query Task =  "The Data-Driven Query Task has most of the functionality of the Trasform Data task and also gives....." 

P122, line 4 under "Bulk Insert Task"  =  REMOVE > ", but is much faster" 

P122, lines 1 & 2 under "Transfer SQL Server Objects Task"  =  "SQL Server"  >  "SQL Server 7.0" 

P122, lines 1 & 2 under “Execute SQL Task” =  REMOVE  >  “You can use the Execute SQL Task with a variety of SQL.” 

P122, lines 1 & 2 under “Microsoft ActiveX Script Task”  =   REMOVE > “The scripts can be created with Microsoft Visual Basic Scripting Edition, Microsoft Jscript, or PerlScript.” 

P122, line 2  =  “Any”  >  “Automation” 

P123, line 1 under "Custom Task"  =  "Visual Basic or C++."  >  "Visual Basic, C++, or any language that supports COM automation.” 

P124, line 11  =  "steps"  >  "precedence constraints" 

P124, line 12  =  "Step"  >  "Precedent constraint" 

P124, line 5 below note =  ADD > “.” after "Data Designer" 

P 125, line 3  =  "code"  >  "type" 

P125, bullet 1  =  "libraries"  >  "applications" 

P125, bullet 2  =  REPLACE  >  "This library uses a COM interface without OLE Automation, so it cannot be used by Visual Basic.  DTCPump"  >  "This library implements some non-automation COM interfaces that cannot be used by Visual Basic.  DTSDataPump" 

P125, last line  =  "8" > "7" 

P126, line 11 =  "implement" > "provide access to" 

P127, line 4   =  "are"  >  "can be" 

P127, bullet 1  =  REPLACE with  “/?  Show an explanation of all the DTS parameters.” 

P127, bullet 3 REPLACE “run.” with “saved.” 

P128, bullet 3  =  REMOVE >  "This is one of the two lineage variables that uniquely identify the DTS package." 

P128, bullet 4 =  REMOVE >  "This is the other lineage variable.  It uniquely identifies the version and the instance of execution of a DTS package." 

P128, First code sample  =  REMOVE  >  "/S ServerName" 

P128, Third code sample =  REMOVE  >  "/M PackagePassword" 

P128, line 12 after bullets  =  "lineage variables"  >  "package ID" 

P129, line 2  =  REMOVE  >  "/V 943767260" 

P132, line 3  =  "provides the same"  >  "provides most of the same" 

P133, line 1 below "Tip"  =  "available OLE DB"  >  "OLE DB 2.0" 

P133, line 2 below "Tip"  =  "ODBC"  >  "ODBC 2.5"   

P. 134 , Line 3 (in gray box) = “True” > “False”

P136, line 2 below figure 7.3  =  "whether or not the connection…."  >  "whether the connection….." 

P140, Figure 7.8 caption  =  REMOVE  "dialog for the OLE DB Provider for" 

P141, line 1  =  REMOVE  >  "The following code fragment checks to see if a connection is currently in use:" 

P141, line 4  =  "closed, the name…"  >  "closed and the name…" 

P141, line 4  =   REPLACE     "….is changed, and the connection is reopened, now connected to a different database."   >   "….is changed.  This code assumes that the object variable has been set to the appropriate connection and that the connection is not currently in use." 

P141, Code Sample, line 4  =  REMOVE >  "AcquireConnection" 

P142, line 7 within quote  =  "Transform Data"  >  "transform data" 

P142, bullet 1 box  =  "SQL Server"  >  "SQL Server 7.0"        (TWICE) 

P142, bullet 3 within box  =  "SQL Server"  >  " SQL Server 7.0" 

P144, line 8  =  "same"  >  "very similar to the" 

P145, line 6 below "Setting the Destination…"  =  "Statement"  >  "statement" 

P149, figure 7.15 caption  =  "Transform Data"  >  "the Data Transformation Properties Dialog." 

P150, line 3 within note  =  "destination"  >  "source" 

P151, figure 7.16 caption  =  REPLACE WITH  >  "In a one-to-one mapping, each source field is connected to one destination field." 

P151, figure 7.17 caption  =  REPLACE WITH  >  "In a many-to-many mapping, all selected source fields participate in one transformation with all selected destination fields." 

P154, line 7  =  "demotion"  >  "promotion" 

P156, line5 under Using the DTS Designer to Create ActiveX Script= “three choices in the Language list:” > “two scripting languages installed by default with Internet Explorer 4.x:” 

P156, third bullet – REMOVE “PerlScript” 

P157, line 10  =  "All nine of the"  >  "The first eight" 

P157, line 11  =  "all eight of the"  >  "the eight" 

P159, line 1 within Note  =  REMOVE  >  "Basic information about the syntax and use of VBScript can be found in Appendix X." 

P164, line 3, ADD “You can also create a new global variable just be referencing it in code.” 

P164, second code sample should be “lRecordCount = GlobalVariables("RecordCount")"   >  

DTSGlobalVariables("RecordCount").Value" 

P164, third code sample should be "DTSGlobalVariables(“RecordCount”).Value =   "DTSGlobalVariables("RecordCount").Value + 1” 

P164,  #2.   =  "DTS Package"  >  "Data Transformation" 

p165, line 3  =  "multiple fields."  >  "an array." 

P166, line 1 below "The Data Driven Query Task"  =    >  "The Data-Driven Query task is similar to a Transform Data task.  Almost everything you do……" 

P172, bullet 4, line 2  =  "SQL Server"  >  "SQL Server 7.0" 

P173, line 8 within Tip  =  "…that use a connection have a…"  >  "…that use a connection object have a…" 

P174, line 6 within Note  =  "On Line"  >  "Online"

P180, line 5 after Check Constraints = “Improves” > “Decreases” 

P181, line 11 below "Note"  = "Null where PhoneNumber = Null" > "Default where PhoneNumber is Null" 

P185, line 9  =  "0"  >  "2" 

P186, last line  =  "0"  >  "1" 

P189, line 1 under "The Transfer…"  =  "…be used for SQL Server databases."  >  "…be used for SQL Server 7.0 databases." 

P202, line 12   =  "one and only one step"  >  "a step, in order for it to be executed." 

P204, line 13  =  "associated with one and only one"  >  "normally associated with a" 

P209, line 2 & line 3 within Note  =  "On Line"   >  "Online" 

P213, second set of bullets – Add third bullet “You have to close a connection before you can change connection properties.” 

p215, line 12 below "Using the Script…"   =  REMOVE  >  "You can find examples of this and other Workflow scripts in Chapter 11, "Writing ActiveX Scripts." 

P217, line 12  =  ADD after  "…rolled back."  >  "You must explicitly commit your transactions if you set this property to False." 

P217, lined8 in Note= CHANGE “On Line” to “Online” 

P218, line 7  =  "involved"  >  "involve" 

P220, line 1 within Note  =  "On Line"  >  "Online" 

P225, line 6  =   "Both a Package (/G) and a version (/V) are specified.  If…"  >  "A package ID is specified.  Because…" 

P227, line3 below "Error File"  =  REMOVE  >  "be" 

P229, line 3 below Note  =  "any particular"  >  "the most recent" 

P229, line 5 below Note =  REMOVE  >  "Both Methods remove only one version of package.  If the version is not specified, the most recent one is removed." 

P230, line 2  =  "8 byte"  >  "128 bit" 

P230  =   REMOVE > paragraph 4 

P232, bullet 4 ="Windows NT security information is required." > "UserName and Password are required." 

P234, bullet 5, line 2  =  "the Repository"  >  "SQL Server" 

P234, bullet 7  ="Windows NT security information is required." >"UserName and Password are required." 

P234, bullet 8  =  "in the Repository"  > "stored in SQL  Server" 

P234, bullet 12  =  "True or False"  >  "256 or 0" 

P240, line 10  =  "from anywhere"  >  "from almost anywhere" 

P240, bullet 5  =  REPLACE WITH >  "Chapter 11 offers examples of ActiveX scripts used in data transformations." 

P244, bullet 2  =  REMOVE >  "Create or use global variables" 

P256, line 3 below "Setting Up…"  =  "..between two SQL Server databases."  >  "..between two SQL Server 7.0 databases." 

CHAPTER 11  =  Chapter number is wrong throughout chapter. 

P266, line 2 after bullets  =  "Samples"  >  "Source" 

P266, line2 within Note  =  "..use JScript and PerlScript for your scripts."  >  "..use JScript, PerlScript, or any other installed scripting language." 

P281, lines 14, 17, 20  =   "+"  >  "OR" 

P283, Table 11.4 Headings  =  "Phone" > "PhonePK", "Fax" > "CustomerFK",

"AlternatePhone" > "PhoneType" , "Country" > "PhoneFormat" , "CustomerPK" > "PhoneNumber" 

P288, line 3 below summary  =  REMOVE  >  "Workflow scripts" 

P291, line 8  =  "diagram"  >  "hierarchy"   

P. 291, first line under 2nd heading = “obtain a reference a DTS Package” > “obtain a reference to a DTS Package”

P292, line 1 =  REPLACE with >  "Dim pkg As New DTS.Package"   

P. 295, 2nd to last bullet (Item) = Change line of code : “ Set con = pkg.Connections(5)”  > "Set con = pkg.Connections.Item(5)"

P297,  line 8  =  "("NewVariable")"  >  "("NewVariable").Value" 

P297 Replace Caution with the following: 

I have experienced memory access violations that have shut down the Enterprise Manager without allowing me to save my work when I have used Global Variables incorrectly. I have even had DTS Packages corrupted, so that I can't open up the most recent version after an access violation has occurred. 

The problem has occurred because I have assigned values to Global Variables without specifically referencing its Value property. Value is the default property of a Global Variable, so you can assign a value without specifically referencing the Value property: 

The Wrong Method[md]DTSGlobalVariables("IntegerVariable") = con.ID 

This code will work[md]but only some of the time! To avoid memory access violations you should always reference the Value property explicitly: 

The Right Method[md]DTSGlobalVariables("IntegerVariable").Value = con.ID 

Before I learned the importance of always referencing the Value property, I discovered that I could also avoid memory access violations by explicitly specifying the datatype of the value I was assigning to a Global Variable: 

Also Helps Avoid a Problem[md]DTSGlobalVariables("IntegerVariable") = CLNG(con.ID) 

It never hurts to explicitly set the datatype of a variable you are assigning to a Global Variable. But the important thing to remember is to always explicitly reference the Value property.

P299, Heading  =  "Collection"  >  "Connection"   

P. 304, lines 12-13 should be divided into 3 lines, each beginning with “oStep.”

P306, REPLACE lines 10 and 11 in listing with the following: 

prc.PrecedenceBasis = DTSStepPrecedenceBasis_ExecResult

prc.Value = DTSStepExecResult_Success   

P. 310, line 1 under the  “Collections for the Transform Data and the Data-Driven Query Tasks” heading  should read “The two transformation tasks have five collections in common:

P311,  line 1 within "Listing 12.9"  =   REMOVE  >  "("Country")" 

P313, line 1 within "Listing 12.11"  =  "vbCRLFvbCRLF"  >  "vbCRLF" 

P313   =  REMOVE  >  bullet 10  ("FunctionEntry-The function…")   

P. 328, 2nd bullet, last 2 sentences should become (for clarity) “This model is derived from the Database Transformation Information Model, which is derived from the Database Information Model.”

P329, REPLACE second to last sentence on page with the following: 

“I had this problem when I assigned a value to a Global Variable without explicitly referencing the Value property.” 

P330, REPLACE second to last sentence in Note with the following: 

“I have learned to be more careful when using Global Variables.”   

P. 366, last bullet:  Remove the “the” after the end of the sentence.

P. 366-367  Data Junction’s product is called Cambio, not Cambrio.

P. 371 Summary, line 1 = “market place” > “marketplace”

P377, line 16 within gray box  =  "Cubeset"  >  "Cellset" 

P377, bullet 3  =  "Windows NT Server"  > "Windows NT Server 4.0" 

P377, bullet 3, line 2  =  "Microsoft Workstation 4.0"  >  "Microsoft NT Workstation 4.0" 

P380, line 3 below "Term:  Microsoft Management Console"  =  REMOVE   >  "usually"

P380  =  REMOVE  >  last 2 sentences on page 

P381, figure 15.3 caption  =  "…quick help access."  >  "…Getting Started or metadata information." 

P385, line 1 below "The Library"  =  "some of objects"  >  "some of the objects"

P387, after bullet 4  =  "The only place you"  >  "You" 

P409, bullet 1  =  "kings"  >  "kinds"   

P. 411, 3rd bullet, line 3 = “manufacture” > manufacturer”

P431, Replace Note with the following: 

If a cube contains a shared dimension that has been updated, that shared dimension will be automatically processed when the cube is processed. After that shared dimension is processed, all other cubes that use that shared dimension must be processed before they can be used. The best strategy when updating a shared dimension is to immediately process both the dimension and all cubes that use the dimension.   

P. 431, 4th line from bottom = “as your current dimension table” > “as your previous fact table”

P443, lines 2 &3  =  "measures"  >  "members" 

P446,   line 1 below  "Cube Partitions"    =   "A partition is a portion of a cube that is stored in a single file."   >  "A partition stores a portion of a cube." 

P446, first bullet below “Cube Partitions”  =  REPLACE with  >  "To assist in managing the processing of large cubes. Partitions can be processed independently or in parallel." 

P448,  #3.  =  "dimension"  >  "partition" 

P451, line 1 below "Using Partitions to Enhance Performance"  =   "…allow you to divide your processing over many machines."   >   "can be processed independently or in parallel." 

P456, line 10  =  "four"  >  "three" 

P456, bullet 1, line 2  =   "server and/or"  >  "SQL Server"   

P. 465, Figure 18.1 The box with the text “OLAP DB with OLAP Extensions” should read “OLE DB with OLAP Extensions”The box with the text “ADO MD with Multidimensional Extensions” should read simply “ADO MD”. 

P. 465, 3rd bullet = “ADO with the Multidimensional Extensions, which” > “ADO with the Multidimensional Extensions (ADO MD), which”

P482, ADD following line of code immediately before Other MDStore Methods heading  

dsoDatabase.BeginTrans   

P519, ADD >  "by Tim Peterson"   

P. 522, last paragraph, line 2 = “right” > “left”

P545, two lines above "Summary"  =  add space and double quote after "subprint". The sentence should be: 

Then paste subPrint “ at the beginning of each line. 

P. 550, Listing 20.2, line 8 = “LEVEL [Store State],” > “LEVEL [Store State] OPTIONS (UNIQUE)” 

P. 551, line 5 = “LEVEL Month TYPE MONTH SORTBYKEY,” > “LEVEL Month TYPE MONTH OPTIONS (SORTBYKEY),”

P. 558, first sentence after bullets = “cmdCreateCube” > “cmdMakeCube” 

P. 586, 2nd paragraph after Caution box = “NT User Manger” > “NT User Manager”

sdg 

 Home