Wednesday, June 30, 2010

Sys.InvalidOperationException: Could not find Updatepanel... blah, blah, blah

Okay, okay so I know every other developer that has a blog probably has one of these articles too, but I figured I'd throw my 2 cents in also and report on my specific encounter with this issue/situation. This was happening to me on a page where I had a dynamically visible insert form with a gridview displaying data. The insert form was inside of an update panel, and the gridview was not. The gridview had a couple of custom columns where I was doing some neato-fancy stuff. One such column was using a couple update panels for an embeded datalist from a related table and a popup calendar extender. Anyway upon clicking the insert button, I would get the whole "...Could not find Updatepanel..." error message. although the data would insert and the gridview would update just fine.

Now, of course the rest of the error message went on to read, "...if it is being updated dynamically then it must be inside another updatepanel...". Yeah, right, like that'll fix it! Me being the skeptical developer that I am, from the heady days of C/C++ on UNIX/AIX and the messages you would receive from that, I wasn't about to put alot of stock in an error message, let alone one from Microsoft. However, I figured I'd give it a try and dropped my gridview into an update panel. Well, whadayaknow, the error message disappeared and everything is now operating smoothly. So kudos to Microsoft for coming up with an error message that acutally helped to resolve the issue this time. Hopefully, this helps someone else who runs into something similar, or at least gets a couple laughs.

Thursday, June 17, 2010

Fun with Heterogeneous Environments

Okay, so I did some work for a client the other day. Nothing really big, just trying to help an MS Access app I developed for them years ago limp along through it's final days/months... who knows. Anyway, some background...

This app was developed back in 2002 or 2003, can't remember anymore and at the time it was developed, the client's machines consisted of a couple different flavors of windows and Office 2000. So naturally, the app was scoped and developed in Access 2000, which was pretty cool because with ART 2000  it could even run on machines that didn't have Office installed. The app is a basic split db with and MDE front end. As they began to use the application, requests for changes in functionality and schema came and went, and things went along swimingly.

Then one day, I get a call reporting that the application does not work on a certain user's computer. When I get on site I find that the environment had changed. This particular user had the latest and greatest OS and version of Office. Suprise!! My install package would no longer work. So I fixed the install and recommended and provided a bid to convert the app into a ASP.NET intranet app. Much more flexible, easier to update, no fuss, no muss... They were not interested, and wanted to leave things the way they were, as they were moving to a new product that was an ASP.NET web app (and more spendy than my bid mind you).

---FAST FORWARD TO TODAY---

So I get a call a few months ago reporting that the client is upgrading to a new file server and would like to move the DB backend, but the front end code was throwing a bug that wouldn't allow it without a lot of complaining. I know, I know... bad developer! BAD!! I apologize for having the short-sightedness that this app would have such a long lifespan.

The request was to get rid of the errors and make it easy for the end users to relink the front end to the backend if it were ever moved again. No problem, that was the easy part. The hard part, was getting an install that would recognize and install the app on mulitple environmental flavors of OS & Office combos -- mmm... combos...  ---- Where was I?? Oh, yeah, so I did my reasearch and got my list of flavors and tried to come up with an install that would do the job w/o my having to sink a bunch of time into it. Got that to a point where I felt fairly good about, so I crossed my fingers and lined up the upgrade.

Upgrade day came and things started out not too bad, but 2 years had passed since the last time I had been out there and things changed quite a bit. Now I know what you're thinking... "My it must have been a pleasant, orderly suprise"... Wrong! It was actually a little worse than what my research had turned up. Multiple versions of Window (XP, Vista, 7) with multiple versions of Office (2k, XP, 2K3, 2K7). As if that was not bad enough, there were a few users who actually changed their drive letter assignments (i.e. C:\ was no longer the system drive). All considered, everything went fairly well, except for the machines with the wierd drive letter assignments.

I will attribute success to two things, using a batch file to open the font end using the generic MSACCESS.EXE <FILE_NAME> command line option (http://support.microsoft.com/kb/209207) and the nuggut of gold that I like to call Access 2000 Runtime. That's right Microsoft may have discontinued it but, ART 2k is awesome and can often save you in a pinch! In the end, with the smoke clearing, the client is happy with a version of the app that they can move around as they see fit so it can be used for historical purposes, and although I may not have anything to do with this app again I'm sure they will contact me other special projects as they come along. Who knows maybe this thing will go another 8 years?!!

Tuesday, June 15, 2010

The Beginning of Something Beautiful... or Truely Horrible!

Well, here it is, my first trepidacious steps into the world of the web log (or blog for you hip types). I can't promise much, other than the fact that I will try to post as often as possible when relevant information is needed for the masses. My hope is to keep the focus within the IT realm and report on things I have come across and how I solved them. However, do not be suprised, dear reader, if you stumble across an entry or two about iron horses or the occasional pan fryer. Why? Well, let's just say I like to keep you guessing. Thanks for reading, and hope to see you again soon!