Page 1 of 1

BeginTransaction

Posted: Tue 20 Mar 2012 00:19
by bclayshannon
This page:

http://www.devart.com/dotconnect/oracle ... tions.html

shows this code:

Code: Select all

ot = oc.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);
..but my code:

Code: Select all

OracleTransaction ot;
                ot = oc.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);
                // Assign transaction object for a pending local transaction 
                oc.Transaction = ot;
...gives this err msg.

'Devart.Data.Oracle.OracleCommand' does not contain a definition for 'BeginTransaction' and no extension method 'BeginTransaction' accepting a first argument of type 'Devart.Data.Oracle.OracleCommand' could be found (are you missing a using directive or an assembly reference?)

Why?

Help file unavailable

Posted: Tue 20 Mar 2012 15:48
by bclayshannon
In connection with my Transaction dilemma, I downloaded the .chm file from the bottom of this page:

http://www.devart.com/dotconnect/oracle/features.html

...but it contains only a structure, no content (or the content is unavailable, at any rate).

Can anybody point me to a dotConnect Transaction tutorial or some such?

Eureka!

Posted: Tue 20 Mar 2012 15:59
by bclayshannon
Oh, I see - I was trying to call .BeginTransaction() on an OracleCommand component when I should have been calling it on OracleConnection. Here's my updated and working code:

Code: Select all

        private void UpdateRecord(string ATicketID, string ATicketSource, string AAboutLLSID, string ACategoryID, string AContactID)
        {
            oracleConnection1.Open();
            OracleCommand ocmd = new OracleCommand();
            OracleTransaction ot;
            // Start a local transaction 
            ot = oracleConnection1.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);
            // Assign transaction object for a pending local transaction 
            ocmd.Transaction = ot;
            ocmd.Connection = oracleConnection1;
            try
            {
                ocmd.CommandText = @"UPDATE LLS.INTERPRETERTICKETS 
                                     SET TICKETSOURCE = :p_TICKETSOURCE, 
                                     ABOUTLLSID = :p_ABOUTLLSID, 
                                     CATEGORYID = :p_CATEGORYID, 
                                     CONTACTEMAIL = :p_CONTACTEMAIL 
                                     WHERE TICKETID = :p_TICKETID";
                ocmd.Parameters.Add("p_TICKETSOURCE", ATicketSource);
                ocmd.Parameters.Add("p_ABOUTLLSID", Convert.ToInt32(AAboutLLSID));
                ocmd.Parameters.Add("p_CATEGORYID", Convert.ToInt32(ACategoryID));
                ocmd.Parameters.Add("p_CONTACTEMAIL", AContactID);
                ocmd.Parameters.Add("p_TICKETID", ATicketID);
                ocmd.ExecuteNonQuery();
                ot.Commit();
                Popul8TheGrid();
            }
            catch (Exception e)
            {
                ot.Rollback();
                throw;
            }
            finally
            {
                oracleConnection1.Close();
            }
        }

Posted: Wed 21 Mar 2012 11:34
by Pinturiccio
bclayshannon wrote:Oh, I see - I was trying to call .BeginTransaction() on an OracleCommand component when I should have been calling it on OracleConnection.
Yes, you are right. BeginTransaction() is a method of OracleConnection.
bclayshannon wrote:In connection with my Transaction dilemma, I downloaded the .chm file
...but it contains only a structure, no content (or the content is unavailable, at any rate).
Looks like your system blocks downloaded chm files because of security reasons. You may unblock the downloaded
chm file in the following way:

Right-click the file and select Properties from the shortcut menu, then click the Unblock button in the Properties dialog box.

You may read more about this issue here: http://blog.crowe.co.nz/archive/2007/04/13/719.aspx

Dan Blocker

Posted: Wed 21 Mar 2012 15:33
by bclayshannon
The "Unblock" worked - thanks!