I can take a look.  I do not know NHibernate code base well, but with
your point in right direction I am happy to check it out.

On Jul 6, 11:52 am, Fabio Maulo <[email protected]> wrote:
> ahhh you are using DB2400Dialect well probably there is something missed in
> the DB2400Driver where the prepare_sql should be managed.If you have time
> take a look to SqlClientDriver and implement a solution for DB2400Driver.
> When the work is done and if you want share the solution create a new JIRA
> ticket with the patch for DB2400Driver.cs .
> Thanks.
>
> 2009/7/6 Fabio Maulo <[email protected]>
>
>
>
>
>
> > NH version ?
>
> > 2009/7/6 Eyston <[email protected]>
>
> >> No change :(
>
> >> I'm not sure if what the line does so I just added it to my
> >> configuration and tried again with those property options you
> >> specified.  If it was a hint to find more detail I did not look
> >> further.
>
> >>    <property name="ExtendedSalesDollars" column="SXUUA1"
> >> precision="10" scale="2" />
>
> >>    cfg.SetProperty("prepare_sql", "true");
>
> >>    cfg.SetProperty("dialect", "NHibernate.Dialect.DB2400Dialect");
>
> >>    NHibernate: 2.1.0.2002
>
> >> When I made a IUserType with:
>
> >>        public void NullSafeSet(System.Data.IDbCommand cmd, object
> >> value, int index)
> >>        {
> >>            decimal d = value == null ? 0.0M : ((decimal)value);
>
> >>            string s = d.ToString("#.00");
>
> >>            NHibernateUtil.String.NullSafeSet(cmd, s, index);
> >>        }
>
> >> It works okay (it is a pretty lazy implementation and not
> >> configurable, but works in these cases to get a fix out quick and lets
> >> me spend time learning the true problem).
>
> >> Log shows (using log4net NHibernate.SQL logger) :
>
> >> p17 = 1612.0000000 // prepare_sql = true, precision = "10", scale =
> >> "2"
>
> >> p17 = '1612.00' // custom IUserType ... db doesn't complain about
> >> quotes when saving to int/decimal
>
> >> I'm not sure where the bug lays.  I am more than willing to do more
> >> tests, but am afraid of using your time.  Do you think it might be an
> >> NH bug?
>
> >> Thanks again.
>
> >> On Jul 6, 9:51 am, Fabio Maulo <[email protected]> wrote:
> >> > prepare_sql=true
>
> >> > 2009/7/6 Eyston <[email protected]>
>
> >> > > I tried all of those (I moved to 2.1 vs. 2.0.1) and the query still
> >> > > shows up in the logs (using sql appender) as:
>
> >> > > 30895.0000000
>
> >> > > Instead of 30895.00
>
> >> > > The thing is I'm not sure if that is what is being actually sent as a
> >> > > parameter to the database or not, I just know that is what is showing
> >> > > up in the logs.
>
> >> > > I'm going to try and write a customer UserType to control the
> >> > > formatting from decimal to a string.  It is probably the wrong idea,
> >> > > but I feel comfortable that I know what to do here.
>
> >> > > It is a frustrating bug from my database driver I think.  The fact
> >> > > that INSERTS work and the first UPDATE works before giving back an
> >> > > ambiguous error on the second UPDATE is annoying...
>
> >> > > Thanks for your help.
>
> >> > > On Jul 2, 6:33 pm, Fabio Maulo <[email protected]> wrote:
> >> > > > <property name="ExtendedSalesDollars" precision="10" scale="2"/>
> >> > > > or<property name="ExtendedSalesDollars" type="decimal(10,2)"/>
> >> > > > or
> >> > > > <property name="ExtendedSalesDollars" type="Currency"/>
> >> > > > or for mssql
> >> > > > <property name="ExtendedSalesDollars" type="Currency(10,2)"/>
>
> >> > > > 2009/7/2 Eyston <[email protected]>
>
> >> > > > > So the table is 10,2 precision.
>
> >> > > > > If I do:
>
> >> > > > >    <property name="ExtendedSalesDollars">
> >> > > > >      <column name="SXUUA1" sql-type="decimal(10,2)"/>
> >> > > > >    </property>
>
> >> > > > > the parameter still shows more precision and it fails:
>
> >> > > > > p17 = '121600.0000000' // first update -- succeed
> >> > > > > p17 = '30895.0000000' // second update -- fail
>
> >> > > > > I think if I can get it to try '30895.00' and '121600.00' it
> >> should
> >> > > > > work?
>
> >> > > > > On Jul 2, 4:25 pm, Eyston <[email protected]> wrote:
> >> > > > > > Hmm... if I set the value to 0.0 it updates correctly.
>
> >> > > > > > I think the error message is just mistaken and I need to specify
> >> > > > > > precision on this property?
>
> >> > > > > > On Jul 2, 4:13 pm, Eyston <[email protected]> wrote:
>
> >> > > > > > > Hello,
>
> >> > > > > > > I need a tip on finding a problem in my code.  I am having
> >> queries
> >> > > > > > > fail with IBM error 07002: Wrong number of parameters.  When I
> >> do
> >> > > > > > > show_sql and look at the logs, the number of parameters is
> >> correct.
> >> > > > > > > In fact I have 15 of the same type of entity being updated and
> >> the
> >> > > > > > > first one works and the next one fails... so NHibernate is
> >> > > generating
> >> > > > > > > a correct UPDATE for the first entity (or I guess my database
> >> is
> >> > > > > > > accepting the first... could be db bug?).
>
> >> > > > > > > If I comment out one of my properties the update is working
> >> fine (I
> >> > > > > > > add update=false):
>
> >> > > > > > > <property name="ExtendedSalesDollars" column="SXUUA1"
> >> > > update="false"/>
>
> >> > > > > > > If I remove update="false" the first UPDATE works on a flush
> >> and
> >> > > the
> >> > > > > > > second one fails.
>
> >> > > > > > > Basically... how do I see exactly what query is being sent to
> >> the
> >> > > > > > > database or what the parameter array is like?
>
> >> > > > > > > Thanks.
>
> >> > > > > > > ps.  Here is the log output (second one fails, P17 is the
> >> property
> >> > > I
> >> > > > > > > can set update=false to make it work...)
>
> >> > > > > > > 2009-07-02 16:02:58,288 DEBUG UPDATE AMFLIBT.COPSHX01 SET
> >> SXTYPE =
> >> > > ?,
> >> > > > > > > SXNUMB = ?, SXHDTY = ?, SXKTSQ = ?, SXORDN = ?, SXLISQ = ?,
> >> SXRLNO
> >> > > > > > > = ?, SXCRID = ?, SXUU40 = ?, SXSNO1 = ?, SXUUD2 = ?, SXUUD1 =
> >> ?,
> >> > > > > > > SXWKD1 = ?, SXWKSA = ?, SXWKSB = ?, SXUUSA = ?, SXWKQ1 = ?,
> >> SXUUA1
> >> > > > > > > = ?, SXCRDT = ?, SXCRTM = ?, SXCRUS = ?, SXCRPG = ?, SXCHDT =
> >> ?,
> >> > > > > > > SXCHTM = ?, SXCHUS = ?, SXCHPG = ?, SXTRK1 = ?, SXTRK2 = ?,
> >> SXTRK3
> >> > > > > > > = ?, SXTRK4 = ?, SXTRK5 = ? WHERE SXGPID = ? AND SXNOSQ = ?;
> >> p0 =
> >> > > > > > > '04', p1 = '86286', p2 = '1', p3 = '0', p4 = '1029270', p5 =
> >> '100',
> >> > > p6
> >> > > > > > > = '1', p7 = 'FED X', p8 = '', p9 = '', p10 = '1090702', p11 =
> >> > > > > > > '1090619', p12 = '1090626', p13 = '0', p14 = '0', p15 = '0',
> >> p16 =
> >> > > > > > > '1029000', p17 = '121600.0000000', p18 = '1090702', p19 =
> >> '144705',
> >> > > > > > > p20 = 'EYSTON', p21 = 'WEBSHIP', p22 = '1090702', p23 =
> >> '160256',
> >> > > p24
> >> > > > > > > = 'EYSTON', p25 = 'WEBSHIP', p26 = '123456789', p27 = '', p28
> >> = '',
> >> > > > > > > p29 = '', p30 = '', p31 = '86286', p32 = '1'
>
> >> > > > > > > 2009-07-02 16:02:58,382 DEBUG UPDATE AMFLIBT.COPSHX01 SET
> >> SXTYPE =
> >> > > ?,
> >> > > > > > > SXNUMB = ?, SXHDTY = ?, SXKTSQ = ?, SXORDN = ?, SXLISQ = ?,
> >> SXRLNO
> >> > > > > > > = ?, SXCRID = ?, SXUU40 = ?, SXSNO1 = ?, SXUUD2 = ?, SXUUD1 =
> >> ?,
> >> > > > > > > SXWKD1 = ?, SXWKSA = ?, SXWKSB = ?, SXUUSA = ?, SXWKQ1 = ?,
> >> SXUUA1
> >> > > > > > > = ?, SXCRDT = ?, SXCRTM = ?, SXCRUS = ?, SXCRPG = ?, SXCHDT =
> >> ?,
> >> > > > > > > SXCHTM = ?, SXCHUS = ?, SXCHPG = ?, SXTRK1 = ?, SXTRK2 = ?,
> >> SXTRK3
> >> > > > > > > = ?, SXTRK4 = ?, SXTRK5 = ? WHERE SXGPID = ? AND SXNOSQ = ?;
> >> p0 =
> >> > > > > > > '04', p1 = '86286', p2 = '1', p3 = '0', p4 = '1029270', p5 =
> >> '200',
> >> > > p6
> >> > > > > > > = '1', p7 = 'FED X', p8 = '', p9 = '', p10 = '1090702', p11 =
> >> > > > > > > '1090619', p12 = '1090626', p13 = '0', p14 = '0', p15 = '0',
> >> p16 =
> >> > > > > > > '1029000', p17 = '30895.0000000', p18 = '1090702', p19 =
> >> '144705',
> >> > > p20
> >> > > > > > > = 'EYSTON', p21 = 'WEBSHIP', p22 = '1090702', p23 = '160256',
> >> p24 =
> >> > > > > > > 'EYSTON', p25 = 'WEBSHIP', p26 = '123456789', p27 = '', p28 =
> >> '',
> >> > > p29
> >> > > > > > > = '', p30 = '', p31 = '86286', p32 = '2'
>
> >> > > > --
> >> > > > Fabio Maulo
>
> >> > --
> >> > Fabio Maulo
>
> > --
> > Fabio Maulo
>
> --
> Fabio Maulo
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to