Looking for best solution - FastCGI, ODBC, FreeTDS, MSSQL



I'm looking for advice on how to best allow perl to interact with MS-SQL. The setup I have is the following:

1) I have an application that we have developed mostly for MySQL but we want to bring it to a wider ranges of database servers. MS-SQL is once place we are trying to bring this application.

2) Our application works well on Windows and Unix-like systems (Linux) but one area we are having problems in a Windows and Linux setup. We have the application installed on a Linux box and MS-SQL on Windows. To allow the application to connect to the MS-SQL database we are trying to use the FreeTDS (http://freetds.org/) library. Since our application currently is coded to the use DBI interface we seem to have one of two choices for DBI Drivers:
* DBD::ODBC
* DBD::Sybase


3) We first worked with the ODBC drivers since that is setup out-of-the box on Windows and in available via unixODBC on Unix. This has worked fairly well except two problems:
* On Linux is is dog slow compared to MySQL or MS-SQL with the app installed on Windows).
* We are having problems storing more than 32K worth of data in the "image" field type.
* When running our application under FastCGI we get random segmentation faults that we don't get when using MySQL or when running against MS-SQL with the app on Windows.


4) To get rid of these problems I decided to try DBD::Sybase. According to the FreeTDS site this actually the preferred driver. Since testing this I found out a major feature lacking in the FreeTDS library. It currently doesn't support placeholder-style statements (?). Most of the application uses placeholder style statements and changing it to straight SQL would be a bit of a pain. On the plus side I think I did get a speed boost (based on the few bits of functionality I could access) and from limited testing I didn't seem to get the segmetation faults.

Long story made short (too late) I was wondering what other perl developers were doing for this type of setup. With MS-SQL having a large market share, I have to believe that many people are in the same boat. What are they doing and how are they working around these problems. Is there something obvious that I am missing?

Eric
.



Relevant Pages

  • Re: free database server for desktop application with ado.net driv
    ... I've used MySQL on Windows since its 3.x days, ... So what if it is GNU and supports linux? ... You're missing the point - you do not have to compile it yourself. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: free database server for desktop application with ado.net driv
    ... > I've used MySQL on Windows since its 3.x days, ... If it works at all on linux, ... people who have problems compiling it post about it because they want their own optimizations. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Kann mysql dump nicht importieren: auto_increment Problem
    ... Auf 4.1 habe ich nur aktualisiert, weil ich hoffte, dass es mit Windows 2003 besser zusammenarbeitet - das funktioniert aber leider auch nicht. ... MySQL macht irgendwas mit der ipnat.sys, dass das restliche Problem Schwierigkeiten bekommt. ... Windows 2003 finde ich durchaus gelungen, erheblich besser als alle "Linux GUI Enterprise Server" die ich bisher gesehen habe. ... Die MySQL Software funktioniert nicht! ...
    (de.comp.datenbanken.mysql)
  • Re: Can I write an application using Windows and Linux?
    ... > If my perl application starts on a windows os and then accomplishes its ... > goal sending its output to a mysql server on a different machine. ... and the Linux machine will be able to retrieve this data once ... Use sockets to connect directly from perl on Windows machine to perl on ...
    (comp.lang.perl.misc)
  • Re: Oh dear god! Unix Unix Unix! DIE!!!!!!!!!!!
    ... I pretty much gave up on Unix. ... > MySQL and PHP even if you want to run in on Windows. ... > simplest of fucking tasks on your Shitty open source OS and software..... ...
    (comp.sys.mac.advocacy)