I've had to do something like this in the past when working with a couple of products/technologies that didn't play together. I had to use columns that were called A B and C, though, but the solution might be similar.
You can create a view and rename the column names in the process mapping from the name to a number.
So, you'd do something like:
select firstname as [1], lastname as [2] from mytable;
If you do that, you'd be able to select by a numbered column system, but I'm not sure if this helps your particular situation.
Cheers.