Errata for Professional MTS & MSMQ Programming with VB and ASP   [ISBN: 1-861001-46-0]

Wrox Logo
Chapter Page Details Date Print Run
  19 Missing text
Due to a printing error, page 19 was replaced with a duplicate of page 18. Here is the missing text:

Choosing a Data Access Technology


In this section, we'll look at how we can choose which kind of database access technology is the most suitable for our applications. We've seen how there are two basic approaches to designing a data access application for the Web: the thin client approach, using just an interface on the client and doing all the work in the server, and fat client architectures such as the networked PC.


Going Down the Thin Road


The thin client architecture is the one that is currently used almost exclusively on the Web at present for accessing server-side databases. If you've used the ISQL (or ISQLw) applications that are supplied with SQL Server, you'll have seen how this works in a traditional network environment. ISQL is a simple interface application that allows you to enter SQL statements and send them to a SQL Server.


Instead of requesting the entire contents of a table and extracting information on the client, you can provide a query that just returns the data you need. The query processing is done on the server, and only the results are sent back over the network to be displayed within ISQL. And because you can define an ODBC driver connection to a SQL Server database across the Internet, ISQL can be used to access a SQL Server database from a remote location, outside the confines of the office network.

Figure: 1460_01_01

On the Web, we see the same technique in use. The browser requests a Web resource, often providing query information such as a SQL string or the name of a stored procedure. The results are


02-Jun-98 1
  42 Text error
The second sentence under the heading Creating Components with Java and J++ is misleading.
It currently reads:

J++... provides features that let you create components and
them wrap them up with a COM interface to allow them to be used
within the DNA environment -- a technology called Java Beans.
In fact, the technology used is not Java Beans, and is instead a mechanism in the MS Java Virtual Machine that allows J++ components to imitate COM components.
06-Jan-99 1
  56 Text error
The final sentence in the section called "Setting Component Version Compatibility" is to be ignored. The sentence, as it stands, reads:
"The standard way of doing this...... .....set the option back to Binary Compatibility."
This is incorrect.
22-Jul-98 1
  71 Incorrect ISBN no. for Professional Active Server Pages 2
The number should read:

ISBN 1-861001-26-6
22-Jul-98 1
  92 Value name error
The section "Using ASP To Start A Transaction" contains value names with descriptions attached. The final value: "Not_Supporte" suffered a printing error, and should read: "Not_Supported" with a "d" at the end. This mistake was corrected in the 2nd edition.
22-Jul-98 1
  114 Text error
The table at the bottom of this page (114) contains two errors. In the "From" column, the values: "TblColor.ID" & "TblColor.ID" should both begin with a lower-case "t".
22-Jul-98 1
  117 Diagram & text error
The diagram on page 117 is incorrect. The correct diagram can be found on page 206 (it looks the same, except in the "new" diagram the steps are numbered).

Back to page 117. In the text that follows the diagram, there are 4 bullet points. The last of these ("WCCOrder") finishes with the sentence: "This is both steps 1 and 3."

This should be replaced with "This is steps 2 and 3."
22-Jul-98 1
  120 Code error
The second line of code at the top of page 120 will not run correctly if entered as it currently appears. At present it looks as though "asCmdStoredProc" (on line three of the text) is to be entered on a separate line. This is not right.

The code should read:

recCars.Open "usp_cars", varConn, adOpenStatic, adLockReadOnly, adCmdStoredProc

22-Jul-98 1
  122 Code error
The code at the top of page 122 will not run correctly if entered as it currently appears. At present it looks as though
adParamInput, 8, CarID)

(on line two of the code text) is to be entered on a separate line. This is not right. Also, there is a space after "Append" in the first line which shouldn't be there.

The code should read:
.Parameters.Append.CreateParameter("@CarID", adInteger, adParamInput, 8, CarID)



22-Jul-98 1
  135 Text error
In the last line of the page (135),
TRANSACTIONS=Requires_New

should read:
TRANSACTION=Requires_New

without the "S".

Additionally, replace the word "set" with the word "use"
22-Jul-98 1
  142 Text error
In the centre of the page (142), the paragraph ending with:
"-in this case we store the ID of the car in column 5"
should read:
"-in this case we get the ID of the car from column 5"
22-Jul-98 1
  146 Code error
The code in the centre of page 146 appears to consist of 4 lines of code, when in fact it is only 2. Either:

A: The first and second, and the third and fourth lines should be written as two complete lines.

B: The code should be written thus:

sHeadOffice = "driver={SQL Server}; server=Tigger; UID=sa; PWD;"_
&"database=WroxCarCoHeadOffice"

sShowroom = "driver={SQL Server}; server=Piglet; UID=sa; PWD=;"_
&"database=WroxCarCo"

23-Jul-98 1
  152 Code error
The code section in the middle of page 152 contains "broken code", where the line beginning:

sShowroom = "driver={SQL server}; ....

has spilled over onto the following line.

To ensure the code works correctly, use this:

sShowroom = "driver={SQL server}; server=Piglet; UID=sa; PWD=;"_
&"database=WroxCarCo"
27-Aug-98 1
  197 Code error
There is a small error in line 6 of the code box at the bottom page:

objMessage.Label = "finance quote on "_
& FormatDateTime(Now, vGeneralDate)


should read:

objMessage.Label = "finance quote on "_
& FormatDateTime(Now, vbGeneralDate)


i.e. vGeneralDate should read vbGeneralDate.


06-Jan-99 1
  225 Text Error
In the first line of the section "Creating an Order", the sentence begins:
"Having changed the head office ordering component to ...."

It should read:
"Having changed the showroom ordering component to ...."
22-Sep-98 1
  229 Code error
The code section just below halfway in the page is broken.
It should read:

Private Sub evtResponse_Arrival(ByVal Queue As Object, _
ByVal Cursor As Long)
27-Aug-98 1
  241 Diagram and Text error
The 2 diagrams at the top of 241 are in the wrong order. As they currently appear in the book, we will call the top diagram (according to the Delivery Date) <7/4>. The second diagram we will call .

The top of the page should be laid-out thus:

Once head office have processed the order, the grid is updated with the head office details. If you picked a car that was out of stock (the Esquel GTXi in Red starts out this way) then you'll notice that head office give an order number, but do not confirm the delivery date:



If the car was in stock, the delivery date is confirmed:

<7/4>

Again, if you were quick.......

(page now continues as normal)

27-Aug-98 1
  285 Diagram Error
There is an error in the diagram at the top of the page. It shows the
client and server exchanging ROOT certificates. This is not the case. In
step 2, the server sends its own SERVER certificate to the client, which
the client validates against its own copy of the relevant ROOT
certificate. In step 4 the client sends its own CLIENT certificate to
the server, which the server validates using its own copy of the
relevant ROOT certficate. The text on the previous page describes the
process.
23-Jun-98 1
  321 Diagram Error

The line from Process B to Object C should be labeled Calls a method on object Cand not Creates a method on object.
11-Jan-99 1
  423 Error in table "IsolationLevelEnum", pages 423 & 424; Appendix B
The descriptions for adXactChaos, adXactCursorStability, adXactIsolated and adXactSerializable are incorrect. The correct table is shown in its entirety below. Note that all names begin with a lower case "a".

Name

Value

Description

adXactBrowse

256

Indicates that from one transaction you can view uncommitted changes in other transactions

adXactChaos

16

Default. Indicates that you cannot overwrite pending changes from more highly isolated transactions

adXactCursorStability

4096

Default. Indicates that from one transaction you can view changes in other transactions only after they have been submitted

adXactIsolated

1048576

Indicates that transactions are conducted in isolation of other transactions

adXactReadCommitted

4096

Same as

adXactCursorStability

adXactReadUncommitted

256

Same as

adXactBrowse

adXactRepeatableRead

65536

Indicates that from one transaction you cannot see changes made in other transactions, but that requerying can bring new recordsets

adXactSerializable

1048576

Same as

adXactIsolated

adXactUnspecified

-1

Indicates that the provider is using a different <B>IsolationLevel</B> than specified, but that the level cannot be identified


21-Jul-98 1