While working on some ASP today, someone reported that a page used for editing contact details was generating the following error:
Microsoft Cursor Engine error '80040e21'
Multiple-step operation generated errors. Check each status value.
I googled it and found some possible causes how none of them seemed to match what I was looking for. When I checked PostgreSQL for that particular item, I found that there was a date field which had the value ‘0000-12-24’ in it. I would have thought that PostgreSQL would have errored when someone tried to insert that date, however it would appear it didn’t.
The solution was simple, change the year field back to what it should have been and it was all fine. Just goes to show that you should never trust what a user enters into the system; more checking is required even on a simple thing like a date.