Skip to Content.
Sympa Menu

freetds - [freetds] [PATCH] VMS-style native command syntax for fisql, freebcp, and defncopy

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "Craig A. Berry" <craigberry AT mac.com>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: [freetds] [PATCH] VMS-style native command syntax for fisql, freebcp, and defncopy
  • Date: Wed, 26 May 2010 22:40:48 -0500

I apologize for the size of the attached patch (almost 1700 lines), but it does something critically important in my environment (which I'll explain below) and has no effect at all on non-VMS platforms. I'd really like to see it checked in and would be glad to do further work to make it acceptable if necessary. If the threatened commit bit turns up, I'm happy to do the grunt work and save James or Freddy the effort of getting this into the repository, but it seemed like it should be mentioned on-list in any case.


What does it do?

It provides a wrapper around fisql, freebcp, and defncopy so that VMS- style commands on the command line get translated into the Unix-style commands that the utilities expect. For example, instead of:

% fisql -Sserver -Uuser -Ppass

you say:

$ fisql/server_name="server"/user="user"/password="pass"


Why?

Once upon a time there were Sybase client utilities (not to mention Sybase servers) on VMS. Where I work we have a large number of command procedures (what other OS's call shell scripts) that use those client utilities to push data around among databases, run stored procedures remotely in coordination with various VMS-centric jobs, or extract data for further processing and shipping off to various banks, insurance companies, etc.

Over the years the databases changed from Sybase to SQL Server, and then higher versions of SQL Server. In the past year (since we upgrade our VMS hardware every 15 years whether it needs it or not) we replaced ancient Alpha hardware with shiny new Itanium hardware -- but there have never been Sybase clients on Itanium.

The only thing that has allowed us to survive all these transitions is FreeTDS. Obviously other things could have been done, but all of those things would have been much more difficult and expensive than coercing the FreeTDS clients into functioning as drop-in replacements for the old Sybase clients. So that's what we did. The patch here is a more complete, less intrusive and cleaned-up version of something we've been running in production for several years.

Some details about what's changed and new follow. I *think* I included all of the necessary copyright notices and Makefile.am changes.

% lsdiff -s vmscmd.patch
! freetds-0.83.dev.20100522/Makefile.am
! freetds-0.83.dev.20100522/src/apps/defncopy.c
! freetds-0.83.dev.20100522/src/apps/fisql/fisql.c
! freetds-0.83.dev.20100522/src/apps/freebcp.c
! freetds-0.83.dev.20100522/vms/Makefile.am
! freetds-0.83.dev.20100522/vms/config_h.vms
! freetds-0.83.dev.20100522/vms/descrip_mms.template
+ freetds-0.83.dev.20100522/vms/vargdefs.h
+ freetds-0.83.dev.20100522/vms/vmsarg_command_bcp.cld
+ freetds-0.83.dev.20100522/vms/vmsarg_command_defncopy.cld
+ freetds-0.83.dev.20100522/vms/vmsarg_command_isql.cld
+ freetds-0.83.dev.20100522/vms/vmsarg_mapping_bcp.c
+ freetds-0.83.dev.20100522/vms/vmsarg_mapping_defncopy.c
+ freetds-0.83.dev.20100522/vms/vmsarg_mapping_isql.c
+ freetds-0.83.dev.20100522/vms/vmsarg_parse.c


________________________________________
Craig A. Berry
mailto:craigberry AT mac.com

"... getting out of a sonnet is much more
difficult than getting in."
Brad Leithauser

Attachment: vmscmd.patch
Description: Binary data



  • [freetds] [PATCH] VMS-style native command syntax for fisql, freebcp, and defncopy, Craig A. Berry, 05/26/2010

Archive powered by MHonArc 2.6.24.

Top of Page