|
|
|
|||||||||||
|
Microsoft OLAP Unleashed CorrectionsIt 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. 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. 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” |