Received: by 10.224.27.14 with SMTP id g14mr304344qac.1.1348099061742; Wed, 19 Sep 2012 16:57:41 -0700 (PDT) Received: by 10.52.30.133 with SMTP id s5mr31147vdh.10.1348099061717; Wed, 19 Sep 2012 16:57:41 -0700 (PDT) Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!npeer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!i6no96118qas.0!news-out.google.com!t12ni1576015qak.0!nntp.google.com!i6no55976qas.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.databases.ms-sqlserver Date: Wed, 19 Sep 2012 16:57:41 -0700 (PDT) In-Reply-To: <94298aed-7cbb-41f8-a155-c4632fc9db35@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=92.40.76.98; posting-account=dELd-gkAAABehNzDMBP4sfQElk2tFztP NNTP-Posting-Host: 92.40.76.98 References: <94298aed-7cbb-41f8-a155-c4632fc9db35@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <6e3349a4-60ed-451d-b7bf-3365ff488a74@googlegroups.com> Subject: Re: Odbc and client library/drivers From: rja.carnegie@gmail.com Injection-Date: Wed, 19 Sep 2012 23:57:41 +0000 Content-Type: text/plain; charset=ISO-8859-1 X-Received-Bytes: 1928 Xref: csiph.com comp.databases.ms-sqlserver:1304 How about using views on the server on the same table - then you can stick to using "SELECT *" in queries, but you can use different column orders on the same table in different views. In MS SQL Server, I suppose probably in Oracle as well, you can also INSERT, UPDATE, and DELETE on a view. Also, if your elderly ODBC tool is upset by some modern data types, then you could use views so that those columns either don't appear, or are CONVERT-ed to something more digestible. For INSERT etc., in such a case, you may be able to define triggers on a view that intercept an action that makes excessively simple assumptions about the nature of a table where you have actually used a view, and, instead, the trigger performs complicated data operations that your client program doesn't need to control directly.