Have you checked your DSN?
The reason I ask is when I run your code unmodified, everything's kosher. Could it be that you have more than one DNS environment on your box (e.g., version one, version two, test, etc.)? I've been bit by this before -- run code against one database expecting the data to show up in another?
FWIW, I'm running:
- ActiveState 5.8.0.806
- DBI 1.35
- DBD-ODBC 1.05
... and when I tried a couple of different things (e.g., five fields vs. eight, fields six through eight "not null", etc.) perl complains rather loudly.
Cē