30 Jun

Gravity is a Harsh Mistress

Global Knowledge is great.  Well…I don’t know if their training is any good, but they are giving away a $200 gift certificate to Amazon with every class you schedule.  And I just signed up for a SQL 2005 class 🙂

They call it their Cool Stuff promotion.

And one of the suggested give aways listed is a Canon Powershot A520 4MP Digital Camera with 4x Optical Zoom.  However, I think I’ll add $20 to it and get the more better version, the Canon Powershot A620 7.1MP Digital Camera with 4x Optical Zoom.


Anyway, I have a trip planned for Europe in September, so this little baby will come in handy.

Update on the TSQL situation:  I migrated the !=’3′ to the view because it was causing very odd results.  I was trying to filter the backup application ID from my database.  Veritas is ID #1, BrightSTOR is 2, and 3 is None.  However, whenever I ran the statement, the handful of servers on BrightSTOR would double in number…

So, if ServerA had Veritas, it would appear one time in the results, but is ServerB used BrightSTOR, it would appear two times.


No one had any good reason for that.  Anyway, putting the NOT 3 filter in the view rather than the SQL script (in the job) fixed it.

26 Jun

Just on the Border of Your Waking Mind…

On what planet was Transact-SQL written?

Don’t let your eyes glaze over if your are not used to SQL statements, I’ll explain how silly it is later. For the nonce, however, try this on for size:

USE MyDatabase
IF NOT EXISTS(SELECT * FROM MonthlyInfo WHERE GeneratedDate = (SELECT CONVERT(varchar,GETDATE(),101)))
INSERT INTO MonthlyInfo (GeneratedDate) values (CONVERT(varchar,GETDATE(),101))
DECLARE @MonthlyInfoID int
SET @MonthlyInfoID = (SELECT MonthlyInfoID FROM MonthlyInfo WHERE GeneratedDate = (SELECT CONVERT(varchar,GETDATE(),101)))
INSERT INTO RestoreMonthlyDetails (ServerID,MonthlyInfoID,RestoreResultID) SELECT ServerID,@MonthlyInfoID,’5′ FROM ServersByActiveAgreements WHERE BackupApplicationID != ‘3’
INSERT INTO VulnScanMonthlyDetails (ServerID,MonthlyInfoID,VulnScanResultID) SELECT ServerID,@MonthlyInfoID,’1′ FROM ServersByActiveAgreements

Alright, I am by no means claiming to be the SQL guru…so I’m sure that it must make sense to SOMEONE out there. But would you just LOOK at the last Insert statement?

Do a Google and you will see syntax that seems to make perfect sense. As nearly as I can tell, you tell it you are intending to an INSERT into a certain table, and then in parenthesis you tell it the column names inside that table you want to update.

So… INSERT INTO tablename (column1,column2,etc)

That’s great. Perfectly understandable. In simple statements, it is followed by the VALUES argument and in the most simplistic, a list of values that match the column names.

Such as INSERT INTO tablename (column1,column2) VALUES (1,Bob)

And now there is a new record inside table name, where column1 has the value of “1” and column2 has the value of “Bob”. We’re fine so far. But what happens when you want to update or add more than one record at a time? Well, you can put a SELECT in the place of VALUES and make a “sub-query” to find the values you happen to need. Sure made sense to me when countless websites told me to do just that.

The only problem is that it doesn’t WORK!!!

If the select has a comparison in it, like = > < and so on, you cannot return more than one value or you still get an error. And so it went with me last Friday for about 2 hours. I tried about every combination I could imagine. It was at this point of utter frustration that Christian Weidelman walked up to me and said, “Oh, take out all those parens…no, no, just list the values names and put the FROM at the end.” Like it was no big deal.

Ran like a champ. I HATE that. 🙂

How does it magically know which argument the FROM is modifying??!?!?! This is IDIOTIC. Or I am. Or Something!

I mean, look: SELECT ServerID,@MonthlyInfoID,’1′ FROM ServersByActiveAgreements

I have the ServerID which is actually the argument that the FROM works against. However, in between the two I have a variable (@MonthlyID) and a constant (1). Why isn’t the FROM trying to figure out what I mean with the number 1? How does it know?!?!?!

Also, my sister-in-law was walking quietly down the street in Thailand with another young woman. They were dressed nicely, and didn’t happen to be talking. She had been there several months at this point, so they did not look like tourists. And yet, an English couple walked past them and with a whithering gaze said, “Bloody Americans”.

First of all, what’s that all about? It’s a bit difficult to ascribe that merely to orthodonture envy. Secondly, how did they know?!?!?

20 Jun

Alien Breed Obliteration

Well, it has been a while since I last posted. Sorry about that–things have been crazy busy.

  1. SQL Reporting Services has me beaten down. I can’t seem to get the silly thing to pass authentication to the query the DB server. Keeps generating an error that states that my user name is “null”. I’ve done quite a bit of research on it–and am frustrated. I posted on the microsoft newsgroups…if that doesn’t work, I guess I’ll have to call support. This is just stupid–this kind of operation should be expected!
  2. We are working to get the house finished. I’ve hung all the trim, finished the cedar on the front porch and stained it, started painting the doors and trim. All those little details. It’s almost ready for sale.
  3. That all, and some travel here and there…my wife’s sister is almost ready to have a baby…it just never ends.
  4. Oh yeah, I’m becoming a developer…just because. Well, I’ve always wanted to do some development, but I’m kinda forced into it by business needs. If I don’t do all of this database work, report creation, client development, and so forth it just won’t get done. And nothing gets better.


In the meantime, you–gentle reader–must download Alien Breed Obliteration and play it. I never played the Amiga versions. Some are mad when rap this is fun. Except that I’m stuck on the 3rd level. I’m supposed to escape in an air duct, but I can’t find it before the level splodes up.

Go get it.

Don’t forget to use the cheat keys if you’re lame like me. K for keys, L for lives, A for ammo, and M for money.

Speaking of the Amiga, I hauled out my A500 last night and started to set it up. I want to CrossDOS some of my old stories off of it, but I couldn’t find the disks. I think they’re buried in the garage. If I can find them (and still read them) and there is actually anything-thing interesting on it, I’ll post them here.

06 Jun


Mr. Bruce Webster has made clarification to a previous post. 

Thanks for the kind words, but I must clarify a few things. First, Wayne
Holder was co-designer of Sundog (though I did most of the programming on the
original Apple II version). Second, the Atari ST version was done by Wayne, Doug
Bell, Mike Newton, and Andy Jaros (though it did make use of some of the
original Apple II source code). Third, I’m not a lawyer, I just work for them
from time to time (as an expert witness).

And for more SunDog
goodies, you can go to sundog.brucefwebster.com and sundog.sourceforge.net.
There’s also more info in the Wikipedia entry (SunDog:_Frozen_Legacy).

So, the unfortunate fact is that I was horribly wrong on several points. 🙂  I wish it were the first time.  And you know, now that he brings it up–most of the elements do come glimmering in from the dim past.  I hope, however, that sometime he will tell me how he resisted saying, “I just play one on TV.”  Such restraint must come only at monumental effort!

Ah, well…the point of the blog post was to gush about SunDog–which I believe was more or less successful.