ibatis-user-cs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilles Bayon" <ibatis....@gmail.com>
Subject Re: System.InvalidProgramException: Common Language Runtime detected an invalid program on a QueryForObject
Date Tue, 26 Sep 2006 06:52:30 GMT
This will be corrected today.

On 9/26/06, Louwris, Wessel <wessel.louwris@satama.com> wrote:
> Thanks a lot, Don. This was the solution.
>
> I've been searching on the list before to solve this,
> but that was before your post :)
>
> Should have been using the properties immediately of course...
>
> Thank again. Wessel
>
> Don Dwoske wrote:
> > This is the bug I found last week (I believe).  Look back in the
> > board for my message about using public fields.
> >
> > I included source code for the change which you would have to make in
> > your own local copy (I compiled the source on my own to debug and
> > find
> > this) - I'm too busy to submit a bug report with a test case and
> > patch right now...maybe someone else with free time can look at my
> > message and do that to get this change incorporated into the code
> > base.  I'm a newbie with C# and also generated code, so I'm not
> > confident what I did is even makes sense - but it works - so that's
> > all I care about.
> >
> > To fix your code so that it works with the existing code base - use
> > properties with getters and setters and not public fields.
> >
> > -Don
> >
> >
> > On 9/24/06, I wrote:
> >> Hi,
> >>
> >> I'm trying to to get ibatis for .Net 1.1 to work with a
> >> QueryForObject. A QueryForObject which returns a int (select(count))
> >> works An Insert works, but the QueryForObject which should return
> >> the object gives the following error message:
> >>
> >>
> >> Exception Details: System.InvalidProgramException: Common Language
> >> Runtime detected an invalid program.
> >>
> >> Source Error:
> >>
> >> An unhandled exception was generated during the execution of the
> >> current web request. Information regarding the origin and location of
> >> the exception can be identified using the exception stack trace
> >> below.
> >>
> >> Stack Trace:
> >>
> >>
> >> [InvalidProgramException: Common Language Runtime detected an
> >>    invalid program.] SetForxsell.XsellRespondent2campaign.Set(Object
> >> , Object ) +0
> >>
> >>
> IBatisNet.Common.Utilities.Objects.Members.EmitFieldSetAccessor.Set(Ob
> >> je ct target, Object value) +28
> >>
> >>
> IBatisNet.DataMapper.DataExchange.DotNetObjectDataExchange.SetData(Obj
> >> ec t& target, ResultProperty mapping, Object dataBaseValue) +111
> >>
> >>
> IBatisNet.DataMapper.MappedStatements.PropertyStrategy.DefaultStrategy
> >> .S et(RequestScope request, ResultMap resultMap, ResultProperty
> >> mapping, Object& target, IDataReader reader, Object keys) +332
> >>
> >>
> IBatisNet.DataMapper.MappedStatements.ResultStrategy.ResultMapStrategy
> >> .P rocess(RequestScope request, IDataReader& reader, Object
> >> resultObject) +306
> >>
> >>
> IBatisNet.DataMapper.MappedStatements.MappedStatement.RunQueryForObjec
> >> t( RequestScope request, IDalSession session, Object
> >> parameterObject, Object resultObject) +136
> >>
> >>
> IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForO
> >> bj ect(IDalSession session, Object parameterObject, Object
> >> resultObject) +88
> >>
> >>
> IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForO
> >> bj ect(IDalSession session, Object parameterObject) +10
> >>    IBatisNet.DataMapper.SqlMapper.QueryForObject(String
> >>    statementName, Object parameterObject) +146
> >> xsell.wwwroot.form.Page_Load(Object sender, EventArgs e) in
> >>    c:\projects\vod\xsell\wwwroot\form.aspx.cs:133
> >>    System.Web.UI.Control.OnLoad(EventArgs e) +67
> >>    System.Web.UI.Control.LoadRecursive() +35
> >> System.Web.UI.Page.ProcessRequestMain() +750
> >>
> >>
> >>
> >>
> >> My XsellRespondent2 class is like:
> >> public class XsellRespondent2
> >>         {
> >>                 public string cust_id;
> >>                 public string campaign;
> >>                 public XsellRespondent2() {}
> >>         }
> >>
> >> with the table:
> >> create table xsell_respondents2 (
> >> campaign varchar(100),
> >> cust_id varchar(100)
> >> )
> >>
> >>
> >> And the statement is:
> >>         <resultMaps>
> >>                 <resultMap id="rSelectRespondent"
> >> class="xsell.XsellRespondent2" >
> >>                         <result property="campaign"
> >>                         column="campaign" /> <result
> >>         property="cust_id" column="cust_id" />
> >> </resultMap> </resultMaps>
> >>
> >>   <statements>
> >>
> >>     <select id="GetByCustId" resultMap="rSelectRespondent"
> >>                 parameterClass="string" > select campaign,cust_id
> >>         from xsell_respondents where cust_id=#cust_id# </select>
> >>
> >>   </statements>
> >>
> >>
> >>
> >> I have no clue how te debug this thing. I guess some sort of
> >> generated piece of code gives problems.But I hope somebody can help
> >> me out here.
> >>
> >> btw: the NPetshop.Web seems to work so apparently it can be done, and
> >> I am doing something wrong. But I dunno what.
> >> btw2: this is running on XP but a Server 2003 machine gives the same
> >> results (mssql 2000). Thanks a lot for any help.
> >>
> >> Wessel
>
>


-- 
Cheers,
Gilles

<a href="http://www.amazon.com/gp/registry/6JCP7AORB0LE">Wish List</a>

Mime
View raw message