Daniel Read's blog
They're All Just Wooden Soldiers
Late at night he ends up watching some TV as a distraction, and an old black and white movie comes on. I think it was the old Laurel and Hardy movie, Babes in Toyland. There is a scene where a battalion of toy wooden soldiers is marching to their deaths, and an invisible voice in the movie (Hardy, I think) says something to the effect of, "Why, they're all just wooden soldiers!"
Using an INSTEAD OF DELETE Trigger to Prevent Row Deletions
One of my clients had a table that has been mysteriously losing rows. This is a table that does not have any official applications written to delete rows from it, and rows should never be deleted from it. No one can figure out how the missing rows are being deleted. So I added an INSTEAD OF DELETE trigger that raises an error if someone tries to delete a row. It seems to work great.
Dr. Peter Naur Wins 2005 ACM Turing Award
Dr. Naur was instrumental in establishing software engineering as a discipline. He made pioneering contributions to methodologies for writing correct programs through his work on assertions that enable programmers to state their assumptions, and on structured programming.
Inline Comments in SSIS OLE-DB Command SQL (And Other Tricks)
I discovered a nice SQL 2K5 Integration Services trick today with the OLE-DB Command transformation (and I would imagine the same thing works in other similar contexts). I'm referring to the ability to include a comment inside of the custom SQL statement used with an OLE-DB Command. This perhaps seems obvious, but it wasn't something that occurred to me at first. Here's what I mean:
Software Conflict 2.0 Available for Order
If you've been thinking about or planning to purchase a copy of our book, now's a great time to do it. We really want to build up our sales rank on Amazon US and Amazon UK as much as possible as quickly as possible. Pre-orders are a great way to do that. If you prefer to purchase elsewhere, that's great too. You can also walk into any brick-and-mortar bookstore in the US or UK and order a copy. At the time of this writing, we're less than two weeks away from the book's official release, so your wait won't be long. We really appreciate your support.
Software Practitioner Newsletter Goes Electronic & Lowers Rates
The most recent issue has a letter from Steve McConnell (who is also on the editorial board) debating a point with Bob about software estimation, a letter from a professor emeritus at the London School of Economics, and others. Like Bob Glass's books, The Software Practitioner brings me a perspective I can't get anywhere else.
E.G. Nilges Crosses Over
Any regular reader of developer.* Blogs knows that regular poster Edward G. Nilges is prolific, having contributed thousands of words on this site alone. However, today is a first in that we have finally published an edited article by Edward, namely ".NET Exception Handling," which features not only a good discussion of general exception handling principles, but a downloadable demonstration project and reusable .NET error handling DLL.
SQL 2005 SSIS How-To Article Series
I think this series of introductory SSIS articles may be--at this moment, before the wave of SSIS books hits the market--the closest thing we have to an introductory SSIS book.
SSIS Bulk Insert Task Error: "system cannot find the file specified"
This one might be obvious, I suppose, to people with experience with the Bulk Insert task from previous SQL Server versions, but this information it was new to me.
SSIS Design Technique: Sequence Container as Indirection Mechanism to Enable Flow
In my mind there are two separate but intertwined concepts at work in my hypothetical system: the "physical" concepts of execution and success and the "logical" concept of a "step" and whether or not the step "ran" (by which I mean, did the task or tasks that make up this step actually do any work).
SSIS Design Technique: Using a Dummy Script Task to Enable Conditional Top-Level Tasks
Here's a SQL2K5 Integration Services control-of-flow design quandry I've encountered more than once: I have a task (any task, say for instance an FTP task) that I want to execute conditionally, but it does not have a direct parent task. For example, my hypothetical FTP task could be the first task inside of a sequence container, and as such has no direct parent. Since you can't have a precedence constraint (as far as I know) between a container and one of it's children, you're stuck without a place to put an expression to control whether your conditional task should execute.
Causes for SSIS FTP Task RemotePath and LocalPath Error
I have figured out two different causes for this error from the FTP task. In my direct experience I was using IsLocalPathVariable = True with an SSIS variable mapped to the LocalPath property. But after thinking about it, I imagine both of the following scenarios would be possible even if you were not using a variable (please add a comment if you can confirm this).
SQL Server 2005 SSIS Learning Curve Considered Steep
SSIS is a leap forward in capability, power, and, it appears, performance; and I still feel that in the end we're going to find that building our system in SSIS was a good decision. My main point is that the learning curve can be steep if your SSIS-based system will be at all complex. Plan for it.
Using SSIS Execute SQL Task Results in a Downstream Script Task
This post contains some information about how you can access the results of an SSIS Execute SQL task in a downstream Script task.
SSIS Foreach ADO Enumerator: Mapping Columns to Variables by Index
Turns out the problem was not data type mismatching (though there are documented problems with BigInt mapping as a string) but rather that the indexes I was using were off. Silly me, I assumed that the first column in my SELECT list would be index 0. Nope. It's index 1. (See my update to this post to see why my original conclusion was wrong.)


Recent comments
3 hours 31 min ago
36 weeks 5 days ago
36 weeks 5 days ago
1 year 19 weeks ago
1 year 20 weeks ago
1 year 20 weeks ago
1 year 21 weeks ago
1 year 21 weeks ago
1 year 21 weeks ago
1 year 22 weeks ago