Skip to Content.
Sympa Menu

freetds - [freetds] MONEY fields

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Daniel Kasak <dkasak AT nusconsulting.com.au>
  • To: freetds AT lists.ibiblio.org
  • Subject: [freetds] MONEY fields
  • Date: Thu, 29 Mar 2007 10:22:17 +1000

Greetings.

I've just hit a bug which I'm pretty sure I've encountered before. I even think I posted a message about it, but now I can't find it in the archives, so maybe I'm mistaken.

Anyway, it seems impossible to update MONEY fields in SQL Server 7 from FreeTDS. I'm using DBD::ODBC ==> UnixODBC ==> FreeTDS ( latest versions of each ). I'm using a statement with placeholders ( for ALL values I'm updating, including the 2 fields it's complaining about below ), and when I try to prepare() it, I get:

[unixODBC][FreeTDS][SQL Server]Statement(s) could not be prepared. (SQL-42000)
[unixODBC][FreeTDS][SQL Server]Disallowed implicit conversion from data type varchar to data type money, table 'NUSsql.dbo.Recommendations', column 'Estimate'. Use the CONVERT function to run this query. (SQL-42000)
[unixODBC][FreeTDS][SQL Server]Disallowed implicit conversion from data type varchar to data type money, table 'NUSsql.dbo.Recommendations', column 'ConfirmAmount'. Use the CONVERT function to run this query. (SQL-42000)(DBD: st_prepare/SQLPrepare err=-1) at /usr/lib/perl5/site_perl/5.8.8/Gtk2/Ex/DBI.pm line 1267.

I'm pretty sure last time I found this, I convered my fields to DECIMAL, and everything worked. But for completeness, it would be good if MONEY types were supported.

I can't ( easily ) use the convert function as suggested here, as I'm using a generic recordset handler to construct my SQL statements, and it doesn't know about SQL Server's field types and CONVERT requirements either. Admittedly, I could hack something into it which inspected SQL Server field types somehow and automatically wrapped stuff in CONVERT, but I'd prefer not to add such dodgy hacks unless I really have to. Is there a better way?

--
Daniel Kasak
IT Developer
NUS Consulting Group
Level 5, 77 Pacific Highway
North Sydney, NSW, Australia 2060
T: (+61) 2 9922-7676 / F: (+61) 2 9922 7989
email: dkasak AT nusconsulting.com.au
website: http://www.nusconsulting.com.au




Archive powered by MHonArc 2.6.24.

Top of Page