[ic] IC does not see 0.00 is as 0 for DECIMAL(6, 2) fields in MySQL

Mike Heins mike at perusion.com
Tue Jul 6 18:06:23 EDT 2004


Quoting John1 (list_subscriber at yahoo.co.uk):
> I am using MySQL with interchange and would like to format my sale_price
> column as DECIMAL(6,2), rather than the current CHAR(8).
> 
> However, I have noticed that if I do this, then [if-sql-param sale_price]
> always returns true, even if sale_price is nil.
> 
> I am guessing that this is because Interchange stores 0 as "0.00" for
> DECIMAL(6.2) and that consequently [if-sql-param] sees 0.00 as a string of 4
> characters, rather than a numeric zero.
> 
> Is there an efficient way around this problem?  I say, "efficient", because
> I use this [if-sql-param sale_price] within loops, so the tag may get called
> 100s of times, so I really don't want to hurt performace at all by adding
> extra overhead to the loop.  e.g.  I have thought of setting a scratch
> variable inside the loop as follows:

This is pretty efficient:

	[if-sql-param sale_price > 0]
		foo
	[else]
		bar
	[/else]
	[/if-sql-param]

It doesn't spawn a Perl interpreter like [calc] and [if ...] do.

-- 
Mike Heins
Perusion -- Expert Interchange Consulting    http://www.perusion.com/
phone +1.765.647.1295  tollfree 800-949-1889 <mike at perusion.com>

Friends don't let friends use Outlook. -- Bob Blaylock


More information about the interchange-users mailing list