Slashdot Mirror


Beginning SQL Server 2005 Express

Graeme Williams writes "Beginning SQL Server 2005 Express Database Applications with Visual Basic Express and Visual Web Developer Express from Novice to Professional is in two parts, "Working with SQL Server Express" and "Working with Visual Basic Express and Visual Web Developer Express". The first part of the book is quite a bit larger (368pp vs. 204pp), so the title, as long as it is, isn't all that accurate. How about, "An introduction to SQL Server 2005 Express, including desktop and web applications in Visual Basic"? The book asks to be judged against a high standard: Can it turn a SQL and Visual Basic novice into a professional? The first part of the book is an excellent introduction to SQL Server in its several manifestations, and essential for anyone who is new to SQL Server 2005 Express. The second part doesn't provide as much help for the complete beginner, but still provides a good introduction to developing database applications." Read the rest of Graeme's review. Beginning SQL Server 2005 Express Database Applications author Rick Dobson pages xxi + 596 publisher Apress rating 8 reviewer Graeme Williams ISBN 1-59059-523-8 summary An excellent introduction to SQL Server 2005 Express and a

The first part of Beginning SQL Server 2005 Express, on SQL Server Express, covers a large amount of material. Starting with a basic introduction to SQL, the book builds in two directions, covering more complicated SQL as well as SQL Server Express administration. In 368 pages, you'd naturally expect a fair amount of information, but it's also thorough and well-organized. One test of how well an introductory book is organized is whether you can usefully keep it on your shelf to refer to later, and I think Beginning SQL Server 2005 Express passes that test very well. You can verify the breadth of topics covered by looking at the online table of contents and the author's web site for the book, which is detailed enough to be a very clear summary of what the book covers.

The generous amount of material downloadable from the web site includes all the SQL scripts from part one – these samples alone represent an excellent introduction to SQL (or T-SQL, as Microsoft insists on calling it). There's also a 60-page bonus chapter, not included in the book, on ASP .NET.

The explanation of SQL Server administration is a big bonus for the book, and it clearly lays out the difference between SQL Server 2005 and its smaller brother, the Express Edition, as well as the changes from SQL 2000. While I was reading this book, I had to do some simple database administration on a couple of SQL 2000 databases, one a production server, and the book gave me a very useful head start. If you found yourself upgrading from SQL Server Express to a larger and more complicated SQL Server configuration, Beginning SQL Server 2005 Express wouldn't give you everything you needed to know, but it would provide a good introduction.

Beginning SQL Server 2005 Express was published in December 2005, after the release of Microsoft's SQL Server 2005 Express but while SQL Server Management Studio Express was (and still is) only available as a "Community Technology Preview". I took the risk and installed it, and it seems fine, connecting both to a local instance of SQL Server 2005 Express and a remote SQL Server 2000.

It's inevitable in an introduction that some material be covered too hastily. For example, Dobson suggests that a database constraint could be used to ensure that a purchase amount is less than a particular dollar limit unless an approver name is also present in the database record. But that's a business rule that shouldn't be included in the database schema. At a minimum, the book might have mentioned the distinction. There's a good discussion of data types, which is somewhat weakened by not being prescriptive enough. Should I use the bit data type because they're small and will squeeze into tight spaces, or avoid them because of the unpacking overhead, if any? The book doesn't say.

There's one omission from the book that may trip you up when you try to run some of the Visual Basic examples, specifically code that attempts to attach a database file to the Server. The access privileges for the database server naturally depend on the user id it's running under, and the default installation uses a special Windows account which doesn't have access to your whole system. For running the examples, the simplest (and least secure) solution is to change the user id to your own account, which you can do using the SQL Server Configuration Manager, shown in Figure 1-4 on page 18. I guess the most secure solution is to create a new account whose privileges are limited to a specific directory, but I'm certainly not an expert in this area. Beginning SQL Server 2005 Express doesn't discuss it at all.

The second part of Beginning SQL Server 2005 Express, "Working with Visual Basic Express and Visual Web Developer Express", begins with a superficial introduction to Visual Basic. The problem is that it won't be enough for people who are new to Visual Basic, and it's not necessary for people who are familiar with it. The examples are solid but not outstanding.

Example 5 in Chapter 9, "Introduction to Visual Basic Express and Windows Forms", provides a nice example of a landmine Microsoft has laid in our path: In a Windows application, Console.WriteLine() writes to the Output->Debug window, but Debug.WriteLine() writes to the Immediate window. The example would have been easier to follow if that gem had been explained. But like the rest of the book, there's a lot of useful information in the chapter. I guess my only quibble is that in using "Novice" in the title, the book promises more than it delivers, at least in this area. This isn't suitable for a beginner to Visual Basic.

Like many other books about Visual Basic Express, Beginning SQL Server 2005 Express has a couple of chapters about building web sites using ASP .NET. It seems to me that Microsoft wants Visual Basic Express and SQL Server Express (both of which are free) to be gateway drugs to ASP .NET and IIS. The book repeats the canard that IIS is a free web server for Windows 2000, Windows XP and Windows 2003, but that's not true. IIS is included in Windows XP Professional but not Windows XP Home. In any case, Microsoft would love to get you hooked on IIS.

The other problem with ASP .NET is that so much of the action is behind the curtain. So, any example is going to have a sequence of steps in the web page designer, and perhaps a small amount of code or HTML, followed by magic, followed a web page being generated. I have nothing against magic, but it means that any narrative or explanation of examples is going to jump from "what you do at design time" to "what happens at run time" with a greater or lesser gap in the middle. Here's an example (page 565):
Normally, a False setting for the AutoPostBack property of a server-based control, such as TextBox1, does not let the control operate automatically after you commit a value to it. However, a special setting on a Define Parameters wizard screen causes TextBox1 to return its value to the server immediately after a user presses the Enter key on the keyboard. The Define Parameters wizard screen is one of series that you can pass through when you reconfigure a data source with a wizard.
Dobson actually does a great job of navigating this particular example, in the sense that he makes it clear what incantations will produce the desired effect – submitting a single value to the server for use in a database query(!).

The rest of part two deals with Visual Basic and ADO .NET, starting with a good introduction to the ADO .NET architecture As in the first part of the book, Dobson does a very good job of presenting a great deal of very useful information. ADO .NET includes two different APIs, an untyped API where column names and types can be determined at runtime by querying the database, and a strongly typed API constructed by the Visual Studio IDE at design time. The IDE reads column names and types from the database and builds an XML description it uses to build and type an API specific to each table. Dobson presents the more complicated untyped API first, which I think is the right approach, since it then makes clear what the IDE and runtime libraries are doing under the covers to manage the typed API.

The Visual Basic examples include connecting to both SQL Server and Access, parsing data out of a text file or Excel, handling concurrency errors, and a very thorough walk-through of the usual suspects: creating and deleting tables and inserting, updating and deleting rows, from a single table or multiple tables. The examples are great at making clear how ADO and related parts of .NET work, but they didn't strike me as brilliant code – not necessarily the sort of thing you want to keep to cut and paste into your next project.

In my opinion, Beginning SQL Server 2005 Express is stronger in the area of SQL Server than it is for application development. If, like me, you're comfortable with Visual Basic but new to SQL Server, run to the bookstore – for you, this book is a 9. If you're familiar with SQL Server 2000 administration but looking to start implementing applications in the latest version of Visual Basic, check out the table of contents online. You'll find a lot to like, even if the book doesn't match your needs perfectly."

You can purchase Beginning SQL Server 2005 Express Database Applications from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

4 of 92 comments (clear)

  1. SELECT from... by Tackhead · · Score: 4, Interesting
    SELECT * FROM books WHERE length.title > 142

    I had to re-read that sentence three or four times before I realized that

    Beginning SQL Server 2005 Express Database Applications with Visual Basic Express and Visual Web Developer Express from Novice to Professional
    was indeed the title of the book in question.

    Afterwards, the fact that it consists of two parts, namely

    "Working with SQL Server Express" and
    "Working with Visual Basic Express and Visual Web Developer Express"

    came as little surprise...

    The title is reminiscent of the technique of putting every programming language, OS, and application you've used since third grade into one's resume, just to make sure that HR department gets a "hit" on your resume when they search the internal database for prospects.

    Has the field of technical literature become so saturated that publishers/editors (probably more so than authors) are resorting to spamming their own book titles with buzzwords and acronyms... in order to show up better on Amazon search queries?

  2. Re:MDE by Anonymous Coward · · Score: 2, Interesting

    I've been using MSDE for 5 years on 300 laptops and it works great! No corruption, good performance. Not to mention it is a real database, with triggers, stored procedures, and a really complete SQL implementation. When we selected it, MySQL did not have even the most basic features of a complete SQL implementation. It might now, but MS SQL Express is fast, stable, and free - why switch?

  3. Interesting by edmicman · · Score: 3, Interesting

    This comes as I was actually planning on (tonight maybe?) putting together a small database app in C# for my fiancee. I want to keep up / improve my .NET 2005 skills, but my experience is primarily on client/server setups where the SQL Server 2000 is on a dedicated server. I was aiming to use SQL 2005 Express for the database part of the app. Does SQL Server 2005 Express give you sort of a glorified Access database? I want a database tied to the application, but I don't want to have to install the application AND a database instance - does the Express edition handle including the database with the app? I'm hoping maybe it creates the database file, and then just includes that in the application directory, and accesses it via some sort of database file connection?

    Either way, I doubt I'll look to getting this book - I feel pretty confident in SQL 2000, and am hoping there's enough online docs to get me through a basic setup. Plus, once the db stuff is setup, I'll just need to focus on the application itself, which it doesn't sound like this book really covers.

  4. Would you want to begin in Visual Basic? by Anonymous Coward · · Score: 1, Interesting

    I'd recommend if you're going to work on Windows Dot-Net choose C# not Visual Basic. Visual Basic takes every well known programming concept that's been around for years and gives it a different name. You'd have difficulty communicating with someone trained in object orientated design or UML or any C-like language like C++ or Java. I wonder if this is to make Visual Basic like another Microsoft Walled Garden with high cost of migration.

    On the other hand, if you're coming from Visual Basic 6 use C# anyway. Best have the big change in syntax so you're not tempted to fall back to old ideas. Dot-Net is conceptually very different to Visual Basic. I've seen C programmers write Java applications in one class with lots of static methods. I've seen VB programmers write Dot-Net that looks like spaghetti after a few hours with a champion boy-scout knotting expert.

    If you're not stuck on Microsoft, consider something like Java or Python. As hinted in the review Dot-Net has a lot of "magic" and that can make things quite hard when it comes to working out why something isn't working. For anything non-trivial the Visual Studio designer tools lose their benefit, and the result can be a pain to maintain.