Hi All,

I am posting here an issue that i observed with NHibernate. Sorry to
post here if this is already (if so please redirect me to the same).

Details of my project:
NHibernate version used - 1.2
Underlying database - Oracle 11g.
.NET language - C#, .NET Framework - 3.5

Issue:

Code:
Attempted to read or write protected memory. This is often an
indication that other memory is corrupt.

The inner exception is:
An exception of type 'NHibernate.ADOException' occurred in method
'DoList' of class 'Loader'

The stack trace given is:
   at NHibernate.Loader.Loader.DoList(ISessionImplementor session,
QueryParameters queryParameters) in C:\Documents and Settings\test
\Desktop\NHibernate-1.2.1.GA-src\src\NHibernate\Loader\Loader.cs:line
1803
   at
NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor
session, QueryParameters queryParameters) in C:\Documents and Settings
\test\Desktop\NHibernate-1.2.1.GA-src\src\NHibernate\Loader
\Loader.cs:line 1745
   at NHibernate.Loader.Loader.List(ISessionImplementor session,
QueryParameters queryParameters, ISet querySpaces, IType[]
resultTypes) in C:\Documents and Settings\test\Desktop
\NHibernate-1.2.1.GA-src\src\NHibernate\Loader\Loader.cs:line 1733
   at NHibernate.Impl.SessionImpl.Find(CriteriaImpl criteria, IList
results) in C:\Documents and Settings\test\Desktop\NHibernate-1.2.1.GA-
src\src\NHibernate\Impl\SessionImpl.cs:line 4963
   at NHibernate.Impl.SessionImpl.Find[T](CriteriaImpl criteria) in C:
\Documents and Settings\test\Desktop\NHibernate-1.2.1.GA-src\src
\NHibernate\Impl\SessionImpl.cs:line 4914
   at NHibernate.Impl.CriteriaImpl.List[T]() in C:\Documents and
Settings\test\Desktop\NHibernate-1.2.1.GA-src\src\NHibernate\Impl
\CriteriaImpl.cs:line 323

The inner exception is:
An exception of type 'System.AccessViolationException' occurred in
method 'Read' of class 'OpsDac'

The stack trace given is:
   at Oracle.DataAccess.Client.OpsDac.Read(IntPtr opsConCtx, IntPtr
opsErrCtx, IntPtr opsSqlCtx, IntPtr& opsDacCtx, OpoSqlValCtx*
pOpoSqlValCtx, OpoMetValCtx* pOpoMetValCtx, OpoDacValCtx*
pOpoDacValCtx)
   at Oracle.DataAccess.Client.OracleDataReader.Read()
   at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session,
QueryParameters queryParameters, Boolean returnProxies) in C:
\Documents and Settings\test\Desktop\NHibernate-1.2.1.GA-src\src
\NHibernate\Loader\Loader.cs:line 440
   at
NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor
session, QueryParameters queryParameters, Boolean returnProxies) in C:
\Documents and Settings\test\Desktop\NHibernate-1.2.1.GA-src\src
\NHibernate\Loader\Loader.cs:line 181
   at NHibernate.Loader.Loader.DoList(ISessionImplementor session,
QueryParameters queryParameters) in C:\Documents and Settings\test
\Desktop\NHibernate-1.2.1.GA-src\src\NHibernate\Loader\Loader.cs:line
1793


Code Accessing NHibernate:
I save an object say 'OBJ1' in database using ADO.NET, and then i try
to load it from NHibernate, but at this time i get the above reported
exception.

Below is the sample code.

Code:
public void Main()
{
    //Placeholder for saving ID of new record that is saved through
ADO.
    decimal static ADOSavedObjectID;

    ADONewTestRecord obj = new ADONewTestRecord();

    //ADO.NET code to save this returns saved object db ID.
    ADOSavedObjectID = SaveThroughADO(obj);

    //Fetch the Saved record through NHibernate.
    TestNewRecordFromNHibernate =
GetTestRecordThroughNHibernate(ADOSavedObjectID)

    public decimal SaveThroughADO(ADONewTestRecord obj)
    {
    //ADO code.
    }

    public TestNewRecordFromNHibernate
GetTestRecordThroughNHibernate(decimal ADOSavedObjectID)
    {
        return LoadNHibernateObject(ADOSavedObjectID);
    }

    public TestNewRecordFromNHibernate LoadNHibernateObject(decimal
ADOSavedObjectID)
    {
        //NHibernate session is already opened, i am not providing
details.
        Session.Clear();
        IList<TestNewRecordFromNHibernate> results;
        ICriteria criteria = Session.CreateCriteria(typeof
(TestNewRecordFromNHibernate));
                criteria.Add(Expression.Eq("ID", ADOSavedObjectID));
        //In this line i get the reported exception see above.
        results = criteria.List<TestNewRecordFromNHibernate>();
        return results[0];
    }
}

-- 
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