in reply to Re^5: Avoiding Strange Win32::ODBC Return Values for Integers
in thread Avoiding Strange Win32::ODBC Return Values for Integers (NUL)

Yes, thanks - this must be it!
I will try it asap (after the weekend when I come back to my script) and also take the concise cleaning with regex approach :)

Some questions still remain though:
Is MSSQL, the ODBC Driver or Win32::ODBC introducing the NUL values?
Is it a bug or a feature?

Thanks again,
jonix
  • Comment on Re^6: Avoiding Strange Win32::ODBC Return Values for Integers

Replies are listed 'Best First'.
Re^7: Avoiding Strange Win32::ODBC Return Values for Integers
by thor (Priest) on Oct 28, 2005 at 23:10 UTC
    Is MSSQL, the ODBC Driver or Win32::ODBC introducing the NUL values?
    I don't know, but MS-SQL you say? Is there any reason not to use DBI with DBD::ODBC? I don't know anything about Win32::ODBC, but I do know that I've used DBI with MS-SQL to great effect. If it's feasible, you might give this a shot. All things considered, having to clean the data is somewhat undesirable (though I'm sure someone will chime in with the fact that data from the database is marked as tainted, etc). Numbers should come back as numbers, not numbers with a NUL appended...

    thor

    Feel the white light, the light within
    Be your own disciple, fan the sparks of will
    For all of us waiting, your kingdom will come

      Is there any reason not to use DBI with DBD::ODBC?
      No real reason for not using it, though I did not like the way of preparing SQL with questionmark placeholders at first sight:
      $sth = $dbh->prepare("SELECT foo, bar FROM table WHERE baz=?");
      SQL is just text, Perl can manipulate it fairly well like in "... where baz=$baz"!
      Skipping once more through the DBI docs, I understood now that it is for the benefit of preparing the SQL string once while substituting the variables as often as you like?!

      Win32::ODBC looked much simpler, cleaner and easier for me, without the preparation overhead...

      But before you start more effort now to convince me to use the much more powerful and popular DBI instead, I promise I will try it - at least to have a look if it returns NUL terminated integers as well in my case ;)

      Cheers,
      jonix