Search found 10 matches

by hudgeo
Wed 29 Jun 2011 14:23
Forum: dbForge for Oracle
Topic: Not working on x64
Replies: 1
Views: 1968

Not working on x64

I'm on Windows 7 x64 and when the app begins to connect for the Schema Mapping section I get the below error:

Unable to load c:\app\hudgeo\product\11.2.0\client_2\oci.dll. Please check that you use the 64x version of Oracle Client with the 64x application
by hudgeo
Thu 07 Apr 2011 13:17
Forum: Entity Developer
Topic: Cannot drag and drop table
Replies: 6
Views: 3067

Oh gheesh. Haha. Thanks. I didn't even realize DevArt had two Database Explorers and not sure why you guys would and if so why they'd be named the same. In any event that was the problem and hopefully future builds won't have this confusion as much.
by hudgeo
Wed 06 Apr 2011 17:21
Forum: Entity Developer
Topic: Cannot drag and drop table
Replies: 6
Views: 3067

One thing I noticed is that if I open up the edml externally in the Entity Developer app, it does let me drag and drop from database explorer. It just will not let me from inside visual studio.

I tried disabling some extensions thinking maybe there is some incompatibility there but so far that hasn't helped either.

On a hunch I attached another instance of visual studio and got the below exception when attempting the drag and drop from database explorer:

System.InvalidCastException occurred
Message=Specified cast is not valid.
Source=mscorlib
StackTrace:
at System.Runtime.InteropServices.Marshal.GetIDispatchForObjectNative(Object o, Boolean onlyInContext)
at System.Runtime.InteropServices.Marshal.GetIDispatchForObject(Object o)
InnerException:
by hudgeo
Tue 05 Apr 2011 20:29
Forum: Entity Developer
Topic: Cannot drag and drop table
Replies: 6
Views: 3067

Issue remains

Unfortunately the issue remains after upgrading to the latest
by hudgeo
Thu 31 Mar 2011 12:46
Forum: Entity Developer
Topic: Cannot drag and drop table
Replies: 6
Views: 3067

Cannot drag and drop table

For some reason I can no longer drag and drop a table from the devart database explorer onto the designer. I have my edml file checked out, have the appropriate permissions on the db table and the table doesn't already exist in the model. I can't seem to drag anything over anymore.

The only change I can think of recently was installing visual studio 2010 sp1 and a new oracle client (11.2 release 3). Looks like v 2.80.136.0 ver of entity developer.

Any ideas? Screencast at http://dl.dropbox.com/u/235508/DevArtEd ... agDrop.avi
by hudgeo
Tue 16 Feb 2010 20:44
Forum: dotConnect for Oracle
Topic: OracleConnection.ClientId?
Replies: 7
Views: 11112

Workaround for missing ClientId

I was able to get around this issue by directly invoking oracle's DBMS_SESSION.SET_IDENTIFIER. However it would be nice if a ClientId property were added to mimic the real OracleConnection and to prevent having to dive down under the hood to do this manually.


Code: Select all

// This file is intended to be edited manually

using System.Data;
using System.Data.EntityClient;
using System.Diagnostics;
using Devart.Data.Oracle;

namespace TWData
{
    partial class TWDataEntities : ITWDataEntities
    {
        // Place your implementation of partial extension methods here

        public static string ClientId { get; set; }

        partial void OnContextCreated()
        {
            if (null == this.Connection) return;

            this.Connection.StateChange += Connection_StateChange;
        }

        private EntityConnection EntityConnection
        {
            [DebuggerStepThrough]
            get { return this.Connection as EntityConnection; }
        }

        private OracleConnection OracleConnection
        {
            [DebuggerStepThrough]
            get { return this.EntityConnection.StoreConnection as OracleConnection; }
        }

        private void Connection_StateChange(object sender, StateChangeEventArgs e)
        {
            Debug.WriteLine(e.CurrentState.ToString());
            //if (e.CurrentState != ConnectionState.Connecting) return;
            if (e.CurrentState != ConnectionState.Open) return;
            
            Debug.WriteLine(this.Connection.ConnectionString);

            var oracleConn = this.OracleConnection;
            if (null == oracleConn) return;

            // there is no ClientId on OracleConnection b/c it is Devart.OracleConnection not Oracle.DataAccess.OracleConnection
            var cmd = oracleConn.CreateCommand();
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "DBMS_SESSION.SET_IDENTIFIER";
            cmd.Parameters.Add(new OracleParameter {ParameterName = "client_id", Value = TWDataEntities.ClientId});
            cmd.ExecuteNonQuery();
            
            return;
        }

        protected override void Dispose(bool disposing)
        {
            if (null != this.Connection)
                this.Connection.StateChange -= Connection_StateChange;

            base.Dispose(disposing);
        }
    }
}
by hudgeo
Tue 16 Feb 2010 16:39
Forum: dotConnect for Oracle
Topic: OracleConnection.ClientId?
Replies: 7
Views: 11112

OracleConnection.ClientId?

My entity framework ObjectContext partial looks like below. I have a need that for every new oracle connection DevArt makes to get the ClientId property set (different than User Id which is our app account). We use an app user account and we need to continue passing in the actual user as client id so we can extract it on the DB side in our triggers for CreatedBy / EditedBy audit fields to get the real end user.

The problem is Devart.Data.Oracle.OracleConnection does not expose a ClientId property like Oracle.DataAccess.Client.OracleConnection does. How can I accomplish this with Devart? This is essential for our auditing.

Code: Select all

// This file is intended to be edited manually

using System.Data;
using System.Data.EntityClient;
using System.Diagnostics;
using System.Security.Principal;
using Devart.Data.Oracle;

namespace TWData
{
    partial class TWDataEntities : ITWDataEntities
    {

        // Place your implementation of partial extension methods here

        partial void OnContextCreated()
        {
            if (null == this.Connection) return;

            this.Connection.StateChange += Connection_StateChange;
        }

        private EntityConnection EntityConnection
        {
            [DebuggerStepThrough]
            get { return this.Connection as EntityConnection; }
        }

        private OracleConnection OracleConnection
        {
            [DebuggerStepThrough]
            get { return this.EntityConnection.StoreConnection as OracleConnection; }
        }

        private void Connection_StateChange(object sender, StateChangeEventArgs e)
        {
Debug.WriteLine(e.CurrentState.ToString());
            //if (e.CurrentState != ConnectionState.Connecting) return;
            if (e.CurrentState != ConnectionState.Open) return;
            
            Debug.WriteLine(this.Connection.ConnectionString);

            var oracleConn = this.OracleConnection;
            if (null == oracleConn) return;

            //var user = new WindowsPrincipal(WindowsIdentity.GetCurrent());
            //var clientId = user.Identity.Name;

            //oracleConn.ConnectionString += ""
            
            //oracleConn.ConnectionString
            // there is no ClientId on OracleConnection b/c it is Devart.OracleConnection not OracleConnection
            //oracleConn.ClientId
            return;
        }

        protected override void Dispose(bool disposing)
        {
            if (null != this.Connection)
                this.Connection.StateChange -= Connection_StateChange;

            base.Dispose(disposing);
        }
    }
}
by hudgeo
Thu 04 Feb 2010 13:35
Forum: dotConnect for Oracle
Topic: Get SQL without DbMonitor?
Replies: 5
Views: 2466

Perfect, thanks much
by hudgeo
Wed 03 Feb 2010 14:07
Forum: dotConnect for Oracle
Topic: Get SQL without DbMonitor?
Replies: 5
Views: 2466

Thanks, although I am not sure any of these 3 will help as:

1) This solution only addresses half of the problem as I did not want to use dbMonitor or OracleMonitor and this still uses OracleMonitor and requires it be active. Part of the problem with that is there are hidden performance problems with many exceptions being generated and catched when dbMonitor is not running. See http://www.devart.com/forums/viewtopic. ... c20343527d

2) We are using Entity Framework and not linq so I'm dealing with an ObjectContext not a DataContext so there is no Log property.

3) ObjectQuery : this may work but all the examples I see are building a string to be executed so it seems pointless. Not sure how to get an IQueryable linq expression into an ObjectQuery to use the ToTraceString() method.
by hudgeo
Tue 02 Feb 2010 21:26
Forum: dotConnect for Oracle
Topic: Get SQL without DbMonitor?
Replies: 5
Views: 2466

Get SQL without DbMonitor?

Is there a way I can retrieve the SQL being generated and ran programmatically? In other words, without using OracleMonitor and the dbMonitor tool?

Thanks