当前位置: 首页>>代码示例>>C#>>正文


C# OdbcConnection.BeginTransaction方法代码示例

本文整理汇总了C#中System.Data.Odbc.OdbcConnection.BeginTransaction方法的典型用法代码示例。如果您正苦于以下问题:C# OdbcConnection.BeginTransaction方法的具体用法?C# OdbcConnection.BeginTransaction怎么用?C# OdbcConnection.BeginTransaction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Data.Odbc.OdbcConnection的用法示例。


在下文中一共展示了OdbcConnection.BeginTransaction方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Test_Transaction

    /// <summary>
    /// Test OdbcTransaction class
    /// </summary>
    public static void Test_Transaction()
    {
        using (OdbcConnection conn = new OdbcConnection())
        {
            OdbcTransaction transaction = null;
            conn.ConnectionString = TestCases.connString;
            conn.Open();

            TestCases.ExecuteSQL("drop table if exists t", conn);

            transaction = conn.BeginTransaction();

            string sql = "create table t(idx integer)";
            using (OdbcCommand command = new OdbcCommand(sql, conn))
            {
                command.Transaction = transaction;
                command.ExecuteNonQuery();
            }

            int tablesCount = GetTablesCount("t", conn, transaction);
            Assert.IsTrue(tablesCount == 1);

            transaction.Rollback();

            //Verify the table does not exist
            tablesCount = GetTablesCount("t", conn, transaction);
            Assert.IsTrue(tablesCount == 0);

            transaction = conn.BeginTransaction();

            sql = "create table t(idx integer)";
            using (OdbcCommand command = new OdbcCommand(sql, conn))
            {
                command.Transaction = transaction;
                command.ExecuteNonQuery();
            }

            tablesCount = GetTablesCount("t", conn, transaction);
            Assert.IsTrue(tablesCount == 1);

            transaction.Commit();

            tablesCount = GetTablesCount("t", conn, transaction);
            Assert.IsTrue(tablesCount == 1);

            transaction = conn.BeginTransaction();

            TestCases.ExecuteSQL("drop table t", conn, transaction);

            transaction.Commit();

            tablesCount = GetTablesCount("t", conn);
            Assert.IsTrue(tablesCount == 0);
        }
    }
开发者ID:CUBRID,项目名称:cubrid-odbc,代码行数:58,代码来源:TestTransaction.cs

示例2: Execute

        public override IEnumerable<Row> Execute(IEnumerable<Row> rows)
        {
            string s = ConfigurationManager.ConnectionStrings[ConnectionStringName].ConnectionString;
            OdbcConnection myConnection = new OdbcConnection(s);
            myConnection.Open();
            OdbcTransaction tran = myConnection.BeginTransaction();
            string command = "SELECT * FROM WREV.PEDTFRM WHERE FRM_NUMCLIEN = '00930481'";

            //Strange behaviour - low values are properly transformed only if this constructor is used
            //If one of parameter are added later, connection, transaction it won't work properly
            OdbcCommand cmd = new OdbcCommand(command, myConnection, tran);

            List<Row> result = new List<Row>();
            OdbcDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                Row row = new Row();
                for (int i = 0; i < reader.FieldCount; i++)
                {
                    row[reader.GetName(i)] = reader.GetValue(i);
                }
                result.Add(row);
            }
            reader.Close();
            tran.Commit();
            myConnection.Close();

            return result;
        }
开发者ID:Zawulon,项目名称:ETL,代码行数:29,代码来源:LowValuesProcess.cs

示例3: bntGuardar_Click

 private void bntGuardar_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
         System.Data.Odbc.OdbcConnection myConn = new System.Data.Odbc.OdbcConnection();
         myConn.ConnectionString = ((Menu)this.Owner).sConexion;
         myConn.Open();
         //Elimina
         string myNonQuery = "DELETE FROM HHc_Version Where CODIGO_AGENCIA = ? AND VERSION = ? ";
         OdbcCommand myCommand = new OdbcCommand(myNonQuery, myConn);
         myCommand.Parameters.Add("CODIGO_AGENCIA", OdbcType.Int).Value = Int32.Parse((string)cmbAgencia.SelectedValue);
         myCommand.Parameters.Add("VERSION", OdbcType.VarChar).Value = (string)cmbVersion.SelectedValue;
         myCommand.ExecuteNonQuery();
         OdbcTransaction myTrans = myConn.BeginTransaction(IsolationLevel.ReadCommitted);
         try
         {
             //Insertar
             for (int i = 0; i < lstAgregados.Items.Count; i++)
             {
                 myNonQuery = "INSERT INTO HHc_Version VALUES (?, ?, ?)";
                 myCommand = new OdbcCommand(myNonQuery, myConn);
                 myCommand.Transaction = myTrans;
                 myCommand.Parameters.Add("CODIGO_AGENCIA", OdbcType.Int).Value = Int32.Parse((string)cmbAgencia.SelectedValue);
                 myCommand.Parameters.Add("ID_RUTA", OdbcType.VarChar).Value = (string)((ListBoxItem)lstAgregados.Items.GetItemAt(i)).Content;
                 myCommand.Parameters.Add("VERSION", OdbcType.VarChar).Value = (string)cmbVersion.SelectedValue;
                 myCommand.ExecuteNonQuery();
             }
             myTrans.Commit();
         }
         catch (Exception ex)
         {
             ITCMessageBox.Show((Window)this, ex.Message, "Error!");
             myTrans.Rollback();
         }
         ITCMessageBox.Show(this, "Modificacion de rutas exitosa", "Mensaje!");
         myConn.Close();
         System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
     }
     catch (Exception ex)
     {
         ITCMessageBox.Show(this, "Error al intentar ligar las rutas", "Error!");
         System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
     }
 }
开发者ID:rtintor,项目名称:Test2,代码行数:45,代码来源:Rutas.xaml.cs

示例4: Enviar

        private void Enviar()
        {
            System.Data.Odbc.OdbcConnection myConn = new System.Data.Odbc.OdbcConnection();

            string sVer = (string)txtVersion.Text;
            string sAge = (string)txtAgencia.Text;
            string sDis = (string)cmbDispo.SelectedValue;

            int iEsImpar = 0;

            string sArchivo = string.Empty;

            // VALIDA QUE NO EXISTAN REGISTROS CON ESA AGENCIA, VERSION Y RUTA
            System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
            try
            {
                myConn.ConnectionString = sConexion;
                myConn.Open();
                OdbcTransaction myTrans = myConn.BeginTransaction();
                string myNonQuery2 = "set textsize 2147483647";
                OdbcCommand myCommand2 = new OdbcCommand(myNonQuery2, myConn);
                myCommand2.Transaction = myTrans;
                i = myCommand2.ExecuteNonQuery();

                string myQuery = "SELECT ORDEN FROM HHc_ArchivosVersion WHERE CODIGO_AGENCIA = ? AND VERSION = ? AND TIPO_DISPOSITIVO = ?";
                OdbcCommand myOdbcCommand = new OdbcCommand(myQuery);
                myOdbcCommand.Connection = myConn;
                myOdbcCommand.Parameters.Add("CODIGO_AGENCIA", OdbcType.Int).Value = Int32.Parse(sAge);
                myOdbcCommand.Parameters.Add("VERSION", OdbcType.VarChar).Value = sVer;
                myOdbcCommand.Parameters.Add("TIPO_DISPOSITIVO", OdbcType.VarChar).Value = sDis;
                myOdbcCommand.Transaction = myTrans;
                OdbcDataReader myReader = myOdbcCommand.ExecuteReader(CommandBehavior.CloseConnection);
                if (myReader.Read())
                {
                    string sMensaje = "ERROR!!! \nLa Agencia \"" + sAge + "\" \nLa Version \"" + sVer + "\"\nY el Dispositivo \"" + (string)cmbDispo.SelectedValue + "\" \nLA VVERSION YA EXISTE EN LA BD";
                    ITCMessageBox.Show((Window)this, sMensaje, "Error!");
                    return;
                }

                //INSERTA LA VERSION
                int orden = 1;
                foreach (Archivo aFile in lArchivos)
                {
                    byte[] bFile = null;

                    System.IO.FileStream fLoad = null;
                    string sFname = System.IO.Path.GetFileName(aFile.sName);
                    if ((sFname != "") && (System.IO.Path.GetExtension(sFname) != ""))
                    {
                        fLoad = System.IO.File.Open(aFile.sName, FileMode.Open, FileAccess.Read);
                        bFile = new byte[fLoad.Length];
                        fLoad.Read(bFile, 0, (int)fLoad.Length);
                        fLoad.Close();

                        sArchivo = BitConverter.ToString(bFile);
                        sArchivo = sArchivo.Replace("-", "");
                        sArchivo = "0x" + sArchivo;

                        if ((bFile.Length % 2) == 1)
                        {
                            sArchivo += "00";
                            iEsImpar = 1;
                        }
                    }
                    else
                    {
                        sArchivo = "NULL";
                    }

                    string myNonQuery = "INSERT INTO HHc_ArchivosVersion VALUES (?, ?, ?, ?, ?, ?, ?, &, ?)";
                    myNonQuery = myNonQuery.Replace("&", sArchivo);
                    OdbcCommand myCommand = new OdbcCommand(myNonQuery, myConn);
                    myCommand.Parameters.Add("CODIGO_AGENCIA", OdbcType.Int).Value = Int32.Parse(sAge);
                    myCommand.Parameters.Add("VERSION", OdbcType.VarChar).Value = sVer;
                    myCommand.Parameters.Add("TIPO_DISPOSITIVO", OdbcType.VarChar).Value = sDis;
                    myCommand.Parameters.Add("ORDEN", OdbcType.Int).Value = orden;
                    myCommand.Parameters.Add("NOMBRE", OdbcType.VarChar).Value = aFile.sShort;
                    myCommand.Parameters.Add("PATH_DESTINO", OdbcType.VarChar).Value = aFile.sDestino;
                    myCommand.Parameters.Add("ACCION", OdbcType.Int).Value = aFile.option;
                    //myCommand.Parameters.Add("CONTENIDO", OdbcType.Binary).Value = bFile;
                    myCommand.Parameters.Add("ESIMPAR", OdbcType.Int).Value = iEsImpar;
                    myCommand.Transaction = myTrans;
                    i = myCommand.ExecuteNonQuery();
                    orden++;
                }
                myTrans.Commit();
                myConn.Close();
                i = 1;
                System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
            }
            catch (Exception ex)
            {
                string m = ex.Message;
                i = 0;
                System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
            }
        }
开发者ID:rtintor,项目名称:Test2,代码行数:97,代码来源:Agregar.xaml.cs

示例5: RunOdbcTest

	static void RunOdbcTest ()
	{
		if (Environment.GetEnvironmentVariable ("MONO_TESTS_ODBC") == null)
			return;

		OdbcConnection conn = new OdbcConnection (CreateOdbcConnectionString ());
		conn.Open ();

		OdbcCommand cmd = new OdbcCommand (drop_table, conn);
		cmd.ExecuteNonQuery ();

		try {
			using (OdbcTransaction trans = conn.BeginTransaction ()) {
				cmd = new OdbcCommand (create_table, conn, trans);
				cmd.ExecuteNonQuery ();

				trans.Commit ();

				Assert.IsNull (trans.Connection, "Connection");

				try {
					trans.Commit ();
					Assert.Fail ("#A1");
				} catch (InvalidOperationException ex) {
					Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
					Assert.IsNull (ex.InnerException, "#A3");
					Assert.IsNotNull (ex.Message, "#A4");
					Assert.AreEqual ("This OdbcTransaction has completed; it is no longer usable.", ex.Message, "#A5");
				}

				try {
					trans.Rollback ();
					Assert.Fail ("#B1");
				} catch (InvalidOperationException ex) {
					Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
					Assert.IsNull (ex.InnerException, "#B3");
					Assert.IsNotNull (ex.Message, "#B4");
					Assert.AreEqual ("This OdbcTransaction has completed; it is no longer usable.", ex.Message, "#B5");
				}

				try {
					Assert.Fail ("#C1: " + trans.IsolationLevel);
				} catch (InvalidOperationException ex) {
					Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
					Assert.IsNull (ex.InnerException, "#C3");
					Assert.IsNotNull (ex.Message, "#C4");
					Assert.AreEqual ("This OdbcTransaction has completed; it is no longer usable.", ex.Message, "#C5");
				}
			}

			cmd = new OdbcCommand (insert_data, conn, null);
			cmd.ExecuteNonQuery ();
		} finally {
			cmd = new OdbcCommand (drop_table, conn);
			cmd.ExecuteNonQuery ();
		}

		try {
			using (OdbcTransaction trans = conn.BeginTransaction ()) {
				cmd = new OdbcCommand (create_table, conn, trans);
				cmd.ExecuteNonQuery ();

				trans.Rollback ();

				Assert.IsNull (trans.Connection, "Connection");

				try {
					trans.Rollback ();
					Assert.Fail ("#D1");
				} catch (InvalidOperationException ex) {
					Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#D2");
					Assert.IsNull (ex.InnerException, "#D3");
					Assert.IsNotNull (ex.Message, "#D4");
					Assert.AreEqual ("This OdbcTransaction has completed; it is no longer usable.", ex.Message, "#D5");
				}

				try {
					trans.Commit ();
					Assert.Fail ("#E1");
				} catch (InvalidOperationException ex) {
					Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
					Assert.IsNull (ex.InnerException, "#E3");
					Assert.IsNotNull (ex.Message, "#E4");
					Assert.AreEqual ("This OdbcTransaction has completed; it is no longer usable.", ex.Message, "#E5");
				}

				try {
					Assert.Fail ("#F1: " + trans.IsolationLevel);
				} catch (InvalidOperationException ex) {
					Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#F2");
					Assert.IsNull (ex.InnerException, "#F3");
					Assert.IsNotNull (ex.Message, "#F4");
					Assert.AreEqual ("This OdbcTransaction has completed; it is no longer usable.", ex.Message, "#F5");
				}
			}

			cmd = new OdbcCommand (create_table, conn, null);
			cmd.ExecuteNonQuery ();
		} finally {
			cmd = new OdbcCommand (drop_table, conn);
//.........这里部分代码省略.........
开发者ID:mono,项目名称:gert,代码行数:101,代码来源:test.cs

示例6: AddUsersToRoles

    //
    // System.Web.Security.RoleProvider methods.
    //
    //
    // RoleProvider.AddUsersToRoles
    //
    public override void AddUsersToRoles(string[] usernames, string[] rolenames)
    {
        foreach (string rolename in rolenames)
            {
                if (!RoleExists(rolename))
                {
                    throw new ProviderException("Role name not found.");
                }
            }

            foreach (string username in usernames)
            {
                if (username.Contains(","))
                {
                    throw new ArgumentException("User names cannot contain commas.");
                }

                foreach (string rolename in rolenames)
                {
                    if (IsUserInRole(username, rolename))
                    {
                        throw new ProviderException("User is already in role.");
                    }
                }
            }

            OdbcConnection conn = new OdbcConnection(connectionString);
            OdbcCommand cmd = new OdbcCommand("INSERT INTO UsersInRoles " +
                    " (Username, Rolename, ApplicationName) " +
                    " Values(?, ?, ?)", conn);

            OdbcParameter userParm = cmd.Parameters.Add("@Username", OdbcType.VarChar, 255);
            OdbcParameter roleParm = cmd.Parameters.Add("@Rolename", OdbcType.VarChar, 255);
            cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName;

            OdbcTransaction tran = null;

            try
            {
                conn.Open();
                tran = conn.BeginTransaction();
                cmd.Transaction = tran;

                foreach (string username in usernames)
                {
                    foreach (string rolename in rolenames)
                    {
                        userParm.Value = username;
                        roleParm.Value = rolename;
                        cmd.ExecuteNonQuery();
                    }
                }

                tran.Commit();
            }
            catch (OdbcException e)
            {
                try
                {
                    tran.Rollback();
                }
                catch { }

                if (WriteExceptionsToEventLog)
                {
                    WriteToEventLog(e, "AddUsersToRoles");
                }
                else
                {
                    throw e;
                }
            }
            finally
            {
                conn.Close();
            }
    }
开发者ID:WFPVAM,项目名称:GRASPReporting,代码行数:83,代码来源:CustomRoleProvider.cs

示例7: DeleteRole

    //
    // RoleProvider.DeleteRole
    //
    public override bool DeleteRole(string rolename, bool throwOnPopulatedRole)
    {
        if (!RoleExists(rolename))
            {
                throw new ProviderException("Role does not exist.");
            }

            if (throwOnPopulatedRole && GetUsersInRole(rolename).Length > 0)
            {
                throw new ProviderException("Cannot delete a populated role.");
            }

            OdbcConnection conn = new OdbcConnection(connectionString);
            OdbcCommand cmd = new OdbcCommand("DELETE FROM Roles " +
                    " WHERE Rolename = ? AND ApplicationName = ?", conn);

            cmd.Parameters.Add("@Rolename", OdbcType.VarChar, 255).Value = rolename;
            cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName;

            OdbcCommand cmd2 = new OdbcCommand("DELETE FROM UsersInRoles " +
                    " WHERE Rolename = ? AND ApplicationName = ?", conn);

            cmd2.Parameters.Add("@Rolename", OdbcType.VarChar, 255).Value = rolename;
            cmd2.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName;

            OdbcTransaction tran = null;

            try
            {
                conn.Open();
                tran = conn.BeginTransaction();
                cmd.Transaction = tran;
                cmd2.Transaction = tran;

                cmd2.ExecuteNonQuery();
                cmd.ExecuteNonQuery();

                tran.Commit();
            }
            catch (OdbcException e)
            {
                try
                {
                    tran.Rollback();
                }
                catch { }

                if (WriteExceptionsToEventLog)
                {
                    WriteToEventLog(e, "DeleteRole");

                    return false;
                }
                else
                {
                    throw e;
                }
            }
            finally
            {
                conn.Close();
            }

            return true;
    }
开发者ID:WFPVAM,项目名称:GRASPReporting,代码行数:68,代码来源:CustomRoleProvider.cs

示例8: btnAgregar_Click

        private void btnAgregar_Click(object sender, RoutedEventArgs e)
        {
            int iTotal = lstArchivos.Items.Count;
            int iSelec = lstArchivos.SelectedIndex + 1;
            int iEsImpar = 0;

            Archivos view = new Archivos();
            view.Owner = this;
            view.bMain = true;
            view.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
            view.ShowDialog();

            if (!bArchivos)
            {
                ITCMessageBox.Show(this,"No agregaste Archivos","Error!");
                return;
            }
            int iTadd = lArchivos.Count;
            OdbcTransaction myTrans = null;

            this.IsEnabled = false;
            System.Threading.Thread t = new System.Threading.Thread(Sending);
            t.SetApartmentState(System.Threading.ApartmentState.STA);
            t.Start(getBase());

            try
            {
                System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
                System.Data.Odbc.OdbcConnection myConn = new System.Data.Odbc.OdbcConnection();
                string sVer = (string)cmbVersion.SelectedValue;
                string sAge = (string)cmbAgencia.SelectedValue;
                string sDis = (string)cmbDispo.SelectedValue;
                string sArchivo = string.Empty;
                myConn.ConnectionString = ((Menu)this.Owner).sConexion;
                myConn.Open();
                string myNonQuery;
                OdbcCommand myCommand;
                myTrans = myConn.BeginTransaction();
                for (int i = iTotal; i >= iSelec; i--)
                {
                    myNonQuery = "UPDATE HHc_ArchivosVersion SET ORDEN = ? WHERE CODIGO_AGENCIA = ? AND VERSION = ? AND TIPO_DISPOSITIVO = ? AND ORDEN = ?";
                    myCommand = new OdbcCommand(myNonQuery, myConn);
                    myCommand.Parameters.Add("ORDEN", OdbcType.Int).Value = i + iTadd;
                    myCommand.Parameters.Add("CODIGO_AGENCIA", OdbcType.Int).Value = Int32.Parse(sAge);
                    myCommand.Parameters.Add("VERSION", OdbcType.VarChar).Value = sVer;
                    myCommand.Parameters.Add("TIPO_DISPOSITIVO", OdbcType.VarChar).Value = sDis;
                    myCommand.Parameters.Add("ORDEN", OdbcType.Int).Value = i;
                    myCommand.Transaction = myTrans;
                    myCommand.ExecuteNonQuery();
                }
                int orden = iSelec;
                foreach (Archivo aFile in lArchivos)
                {
                    byte[] bFile = null;

                    System.IO.FileStream fLoad = null;
                    string sFname = System.IO.Path.GetFileName(aFile.sName);
                    if ((sFname != "") && (System.IO.Path.GetExtension(sFname) != ""))
                    {
                        fLoad = System.IO.File.Open(aFile.sName, FileMode.Open, FileAccess.Read);
                        bFile = new byte[fLoad.Length];
                        fLoad.Read(bFile, 0, (int)fLoad.Length);
                        fLoad.Close();

                        sArchivo = BitConverter.ToString(bFile);
                        sArchivo = sArchivo.Replace("-", "");
                        sArchivo = "0x" + sArchivo;

                        if ((bFile.Length % 2) == 1)
                        {
                            sArchivo += "00";
                            iEsImpar = 1;
                        }
                    }
                    else
                    {
                        sArchivo = "NULL";
                    }

                    myNonQuery = "INSERT INTO HHc_ArchivosVersion VALUES (?, ?, ?, ?, ?, ?, ?, &, ?)";
                    myNonQuery = myNonQuery.Replace("&", sArchivo);
                    myCommand = new OdbcCommand(myNonQuery, myConn);
                    myCommand.Parameters.Add("CODIGO_AGENCIA", OdbcType.Int).Value = Int32.Parse(sAge);
                    myCommand.Parameters.Add("VERSION", OdbcType.VarChar).Value = sVer;
                    myCommand.Parameters.Add("TIPO_DISPOSITIVO", OdbcType.VarChar).Value = (string)cmbDispo.SelectedValue;
                    myCommand.Parameters.Add("ORDEN", OdbcType.Int).Value = orden;
                    myCommand.Parameters.Add("NOMBRE", OdbcType.VarChar).Value = aFile.sShort;
                    myCommand.Parameters.Add("PATH_DESTINO", OdbcType.VarChar).Value = aFile.sDestino;
                    myCommand.Parameters.Add("ACCION", OdbcType.Int).Value = aFile.option;
                    //myCommand.Parameters.Add("CONTENIDO", OdbcType.Binary).Value = bFile;
                    myCommand.Parameters.Add("ESIMPAR", OdbcType.Int).Value = iEsImpar;
                    myCommand.Transaction = myTrans;
                    myCommand.ExecuteNonQuery();
                    lstArchivos.Items.Insert(orden - 1, aFile);
                    orden++;
                }
                myTrans.Commit();
                myConn.Close();
                t.Abort();
                ITCMessageBox.Show(this, "Archivos modificados", "Mensaje!");
//.........这里部分代码省略.........
开发者ID:rtintor,项目名称:Test2,代码行数:101,代码来源:Administra.xaml.cs

示例9: Transaction

 /// <summary>
 /// 事务
 /// </summary>
 /// <param name="transt">事务SQL语句和参数对应建构体</param>
 /// <param name="conn">SQL连接</param>
 /// <returns></returns>
 public bool Transaction(List<OdbcTransCollection> transt, OdbcConnection conn)
 {
     OdbcTransaction tran = conn.BeginTransaction();
     int count = 0;
     try
     {
         foreach (OdbcTransCollection tc in transt)
         {
             using (OdbcCommand comm = conn.CreateCommand())
             {
                 comm.CommandText = tc.StrSQL;
                 comm.CommandTimeout = this.CommandTimeout;
                 comm.Transaction = tran;
                 foreach (OdbcParameter parameter in tc.Parameters)
                 {
                     comm.Parameters.Add(parameter);
                 }
                 count += comm.ExecuteNonQuery();
             }
         }
         tran.Commit();
         return count > 0 ? true : false;
     }
     catch (Exception err)
     {
         tran.Rollback();
         throw err;
     }
 }
开发者ID:wcgcw,项目名称:Finder,代码行数:35,代码来源:Odbccommand.cs

示例10: ExecuteSqlTranWithIndentity

 /// <summary>
 /// 执行多条SQL语句,实现数据库事务。
 /// </summary>
 /// <param name="SQLStringList">SQL语句的哈希表(key为sql语句,value是该语句的OdbcParameter[])</param>
 public static void ExecuteSqlTranWithIndentity(Hashtable SQLStringList)
 {
     using (OdbcConnection conn = new OdbcConnection(connectionString))
     {
         conn.Open();
         using (OdbcTransaction trans = conn.BeginTransaction())
         {
             OdbcCommand cmd = new OdbcCommand();
             try
             {
                 int indentity = 0;
                 //循环
                 foreach (DictionaryEntry myDE in SQLStringList)
                 {
                     string cmdText = myDE.Key.ToString();
                     OdbcParameter[] cmdParms = (OdbcParameter[])myDE.Value;
                     foreach (OdbcParameter q in cmdParms)
                     {
                         if (q.Direction == ParameterDirection.InputOutput)
                         {
                             q.Value = indentity;
                         }
                     }
                     PrepareCommand(cmd, conn, trans, cmdText, cmdParms);
                     int val = cmd.ExecuteNonQuery();
                     foreach (OdbcParameter q in cmdParms)
                     {
                         if (q.Direction == ParameterDirection.Output)
                         {
                             indentity = Convert.ToInt32(q.Value);
                         }
                     }
                     cmd.Parameters.Clear();
                 }
                 trans.Commit();
             }
             catch
             {
                 trans.Rollback();
                 throw;
             }
         }
     }
 }
开发者ID:superliujian,项目名称:AliasDB,代码行数:48,代码来源:DbHelperODBC.cs

示例11: ExecuteSqlTran

 /// <summary>
 /// 执行多条SQL语句,实现数据库事务。
 /// </summary>
 /// <param name="SQLStringList">多条SQL语句</param>  
 public  void ExecuteSqlTran(ArrayList SQLStringList)
 {
  //using (SqlConnection conn = new SqlConnection(connectionString))
  using (OdbcConnection conn = new OdbcConnection(connectionString))
  {
   conn.Open();
   //SqlCommand cmd = new SqlCommand();
   OdbcCommand cmd = new OdbcCommand();
   cmd.Connection=conn;
   //SqlTransaction tx=conn.BeginTransaction();
   OdbcTransaction tx = conn.BeginTransaction();
   cmd.Transaction=tx;    
   try
   {     
    for(int n=0;n<SQLStringList.Count;n++)
    {
     string strsql=SQLStringList[n].ToString();
     if (strsql.Trim().Length>1)
     {
      cmd.CommandText=strsql;
      cmd.ExecuteNonQuery();
     }
    }          
    tx.Commit();     
   }
   catch(System.Data.SqlClient.SqlException E)
   {  
    tx.Rollback();
    throw new Exception(E.Message);
   }
  }
 }
开发者ID:tianweidut,项目名称:3DMap,代码行数:36,代码来源:SqlHelperExample.cs

示例12: InsertSociosDBISAM

        /// <summary>
        /// Inserta el socio en BD DBISAM.
        /// </summary>
        /// <param name="id"></param>
        /// <param name="nombre"></param>
        public static void InsertSociosDBISAM(string id, string nombre)
        {
            OdbcTransaction transaction = null;
            string errorMsg = "";

            string connectionString = "";

            bool activo = true;
            int zero = 0;

            string parameterChar = "";
            string queryStringCliente = "";
            string queryStringProveedor = "";

            string queryCliente = "";
            string queryProveedor = "";


            try
            {
                connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["A2DBISAM"].ConnectionString;

                parameterChar = System.Configuration.ConfigurationManager.AppSettings["A2DBISAM_ParameterChar"];
                queryStringCliente = System.Configuration.ConfigurationManager.AppSettings["A2DBISAM_InsertarCliente"];
                queryStringProveedor = System.Configuration.ConfigurationManager.AppSettings["A2DBISAM_InsertarProveedor"];

                queryCliente = string.Format(queryStringCliente, parameterChar);
                queryProveedor = string.Format(queryStringProveedor, parameterChar);
            }
            catch (Exception ex)
            {
                errorMsg = string.Format("Error al preparar conexion con DBISAM. ConnectionString: {0} - SQLInsertCliente: {1} - SQLInsertProveedor: {2}", connectionString, queryCliente, queryProveedor);
                log.Error(errorMsg, ex);
                return;
            }

            try
            {
                using (OdbcConnection connection = new OdbcConnection(connectionString))
                {
                    OdbcCommand myCommandCliente = new OdbcCommand(queryCliente, connection);
                    myCommandCliente.Parameters.Clear();
                    myCommandCliente.Parameters.Add(new OdbcParameter { Value = id, DbType = DbType.String, Direction = ParameterDirection.Input });
                    myCommandCliente.Parameters.Add(new OdbcParameter { Value = nombre, DbType = DbType.String, Direction = ParameterDirection.Input });
                    myCommandCliente.Parameters.Add(new OdbcParameter { Value = activo, DbType = DbType.Boolean, Direction = ParameterDirection.Input });
                    myCommandCliente.Parameters.Add(new OdbcParameter { Value = zero, DbType = DbType.String, Direction = ParameterDirection.Input });
                    myCommandCliente.Parameters.Add(new OdbcParameter { Value = id, DbType = DbType.String, Direction = ParameterDirection.Input });
                    myCommandCliente.Parameters.Add(new OdbcParameter { Value = id, DbType = DbType.String, Direction = ParameterDirection.Input });


                    OdbcCommand myCommandProveedor = new OdbcCommand(queryProveedor, connection);
                    myCommandProveedor.Parameters.Clear();
                    myCommandProveedor.Parameters.Add(new OdbcParameter { Value = id, DbType = DbType.String, Direction = ParameterDirection.Input });
                    myCommandProveedor.Parameters.Add(new OdbcParameter { Value = nombre, DbType = DbType.String, Direction = ParameterDirection.Input });
                    myCommandProveedor.Parameters.Add(new OdbcParameter { Value = activo, DbType = DbType.Boolean, Direction = ParameterDirection.Input });
                    myCommandProveedor.Parameters.Add(new OdbcParameter { Value = zero, DbType = DbType.String, Direction = ParameterDirection.Input });
                    myCommandProveedor.Parameters.Add(new OdbcParameter { Value = id, DbType = DbType.String, Direction = ParameterDirection.Input });
                    myCommandProveedor.Parameters.Add(new OdbcParameter { Value = id, DbType = DbType.String, Direction = ParameterDirection.Input });

                    connection.Open();
                    transaction = connection.BeginTransaction();

                    myCommandCliente.Transaction = transaction;
                    myCommandProveedor.Transaction = transaction;

                    myCommandCliente.ExecuteNonQuery();
                    myCommandProveedor.ExecuteNonQuery();

                    transaction.Commit();
                }
            }
            catch (Exception ex)
            {
                if (transaction != null)
                    transaction.Rollback();

                errorMsg = string.Format("Error al obtener socios desde DBISAM. ConnectionString: {0} - SQLInsertCliente: {1} - SQLInsertProveedor: {2}", connectionString, queryCliente, queryProveedor);
                log.Error(errorMsg, ex);
            }
        }
开发者ID:xapiz,项目名称:COCASJOL,代码行数:85,代码来源:SociosLogic.cs

示例13: SaveQuote

        public static void SaveQuote(BusinessObjects.Quote q)
        {
            string sql=string.Empty;

            if (q.ID <= 0)
            {
                sql = @"Insert into QUOTES_DAT ([SHIPPER_NAME],[SHIPPER],[SHIPPER_CONTACT],[SHIPPER_PHONE],[SHIPPER_FAX]
                                            ,[P_O_NUMBER],[PLR],[SUPPLIER_STATE],[SUPPLIER_ZIP_CODE],[POL],[POD]
                                            ,[FinalDestino],[CONSIGNEE_ZIP_CODE],[CONSIGNEE_COUNTRY],[MOVE_TYPE],[PAYMENT],[BUS_LINE],[Incoterms]
                                            ,[INCOTermsLocation],[EFFECTIVE_DATE],[EXPIRATION_DATE],[QuotedBy],[CONTROLLER],[CARRIER]
                                            ,[Voyage],[Vessel],[ContainerHandeling])
                                            values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
            }
            else
            {
                sql = string.Format(@"Update QUOTES_DAT SET [SHIPPER_NAME]=?,[SHIPPER]=?,[SHIPPER_CONTACT]=?,[SHIPPER_PHONE]=?,[SHIPPER_FAX]=?
                                        ,[P_O_NUMBER]=?,[PLR]=?,[SUPPLIER_STATE]=?,[SUPPLIER_ZIP_CODE]=?,[POL]=?,[POD]=?
                                        ,[FinalDestino]=?,[CONSIGNEE_ZIP_CODE]=?,[CONSIGNEE_COUNTRY]=?,[MOVE_TYPE]=?,[PAYMENT]=?,[BUS_LINE]=?,[INCOTerms]=?
                                        ,[INCOTermsLocation]=?,[EFFECTIVE_DATE]=?,[EXPIRATION_DATE]=?,[QuotedBy]=?,[CONTROLLER]=?,[CARRIER]=?
                                        ,[Voyage]=?,[Vessel]=?,[ContainerHandeling]=?
                        Where ID={0}", q.ID);
            }

            using (OdbcConnection conn = new OdbcConnection(Properties.Settings.Default.IESDBConn))
            {
                OdbcCommand cmd = new OdbcCommand(sql,conn);
                cmd.Parameters.Add(new OdbcParameter("@Customer", q.Customer));
                cmd.Parameters.Add(new OdbcParameter("@CustomerCode", q.CustomerCode));
                cmd.Parameters.Add(new OdbcParameter("@CustomerContact", q.CustomerContact));
                cmd.Parameters.Add(new OdbcParameter("@CustomerPhone", q.CustomerPhone));
                cmd.Parameters.Add(new OdbcParameter("@CustomerFax", q.CustomerFax));
                cmd.Parameters.Add(new OdbcParameter("@CustomerReferenceNo", q.CustomerReferenceNo));
                cmd.Parameters.Add(new OdbcParameter("@PickupCity", q.PickupCity));
                cmd.Parameters.Add(new OdbcParameter("@CustomerState", q.CustomerState));
                cmd.Parameters.Add(new OdbcParameter("@CustomerZip", q.CustomerZip));
                cmd.Parameters.Add(new OdbcParameter("@PortOfLoad", q.PortOfLoad));
                cmd.Parameters.Add(new OdbcParameter("@PortOfDispatch", q.PortOfDispatch));
                cmd.Parameters.Add(new OdbcParameter("@FinalDestination", q.FinalDestination));
                cmd.Parameters.Add(new OdbcParameter("@DestinationZip", q.DestinationZip));
                cmd.Parameters.Add(new OdbcParameter("@DestinationCounty", q.DestinationCountry));
                cmd.Parameters.Add(new OdbcParameter("@TypeOfMove", q.TypeOfMove));
                cmd.Parameters.Add(new OdbcParameter("@Division", q.Division));
                cmd.Parameters.Add(new OdbcParameter("@Businessline", q.Businessline));
                cmd.Parameters.Add(new OdbcParameter("@INCOTerms", q.INCOTerms));
                cmd.Parameters.Add(new OdbcParameter("@INCOTermsLocation", q.INCOTermsLocation));
                cmd.Parameters.Add(new OdbcParameter("@Effectivdate", q.Effectivdate));
                cmd.Parameters.Add(new OdbcParameter("@ExpirationDate", q.ExpirationDate));
                cmd.Parameters.Add(new OdbcParameter("@QuotedBy", q.QuotedBy));
                cmd.Parameters.Add(new OdbcParameter("@SalesRep", q.SalesRep));
                cmd.Parameters.Add(new OdbcParameter("@PreferredCarrier", q.PreferredCarrier));
                cmd.Parameters.Add(new OdbcParameter("@Voyage", q.Voyage));
                cmd.Parameters.Add(new OdbcParameter("@Vessel", q.Vessel));
                cmd.Parameters.Add(new OdbcParameter("@ContainerHandling", q.ContainerHandling));

                conn.Open();
                OdbcTransaction trans = conn.BeginTransaction();
                cmd.Transaction = trans;
                try
                {
                cmd.ExecuteNonQuery();

                foreach (BusinessObjects.Container c in q.Containers)
                {
                    SaveContainer(cmd, c, q.QuoteNumber);
                }
                trans.Commit();
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    throw ex;
                }
            }
        }
开发者ID:Truplaya53,项目名称:CompassNet,代码行数:74,代码来源:DB.cs

示例14: SaveClient

        public static void SaveClient(BusinessObjects.Client c)
        {
            string sql = string.Empty;

            using (OdbcConnection conn = new OdbcConnection(Properties.Settings.Default.IESDBConn))
            {
                sql = string.Format(@"select 1 from Client_DAT where ID='{0}'", c.ClientID);
                OdbcCommand cmd = new OdbcCommand(sql, conn);
                conn.Open();
                if (cmd.ExecuteScalar()!=null)
                {
                    sql = string.Format(@"Update QUOTES_DAT SET [ID]=?,[Type]=?,[Name]=?,[Contact]=?,[Phone]=?,[Fax]=?,[ReferenceNo]=?
                            Where ID={0}", c.ClientID);
                }
                else
                {
                    sql = @"Insert into Client_DAT ([ID],[Type],[Name],[Contact],[Phone],[Fax],[ReferenceNo])
                                                values (?,?,?,?,?,?,?)";
                }
                cmd.CommandText = sql;
                cmd.Parameters.Add(new OdbcParameter("@ID", c.ClientID));
                cmd.Parameters.Add(new OdbcParameter("@Type", c.Type));
                cmd.Parameters.Add(new OdbcParameter("@Name", c.Name));
                cmd.Parameters.Add(new OdbcParameter("@Contact", c.Contact));
                cmd.Parameters.Add(new OdbcParameter("@Phone", c.Phone));
                cmd.Parameters.Add(new OdbcParameter("@Fax", c.Fax));
                cmd.Parameters.Add(new OdbcParameter("@ReferenceNo", c.ReferenceNo));

                OdbcTransaction trans = conn.BeginTransaction();
                cmd.Transaction = trans;
                try
                {
                    cmd.ExecuteNonQuery();

                    trans.Commit();
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    throw ex;
                }
            }
        }
开发者ID:Truplaya53,项目名称:CompassNet,代码行数:43,代码来源:DB.cs

示例15: Main

	static int Main ()
	{
		if (Environment.GetEnvironmentVariable ("MONO_TESTS_ODBC") == null)
			return 0;

		OdbcConnection conn = new OdbcConnection (CreateConnectionString ());
		conn.Open ();

#if !MONO
		IsolationLevel level = GetIsolationLevel (conn, null);
		Assert.AreEqual (IsolationLevel.ReadCommitted, level, "#A");
#endif

		ChangeIsolationLevel (conn, null, "SERIALIZABLE");

#if !MONO
		level = GetIsolationLevel (conn, null);
		Assert.AreEqual (IsolationLevel.Serializable, level, "#B");
#endif

		OdbcTransaction trans = conn.BeginTransaction ();
#if !MONO
		level = GetIsolationLevel (conn, trans);
#if NET_2_0
		Assert.AreEqual (IsolationLevel.Serializable, level, "#C1");
#else
		Assert.AreEqual (IsolationLevel.ReadCommitted, level, "#C1");
#endif
#endif
		Assert.AreEqual (IsolationLevel.ReadCommitted, trans.IsolationLevel, "#C2");
		ChangeIsolationLevel (conn, trans, "REPEATABLE READ");
#if !MONO
		level = GetIsolationLevel (conn, trans);
		Assert.AreEqual (IsolationLevel.RepeatableRead, level, "#C3");
#endif
		Assert.AreEqual (IsolationLevel.ReadCommitted, trans.IsolationLevel, "#C4");
		trans.Rollback ();

#if !MONO
		level = GetIsolationLevel (conn, null);
		Assert.AreEqual (IsolationLevel.RepeatableRead, level, "#D");
#endif

		trans = conn.BeginTransaction (IsolationLevel.Unspecified);
#if !MONO
		level = GetIsolationLevel (conn, trans);
		Assert.AreEqual (IsolationLevel.RepeatableRead, level, "#E1");
#endif
		Assert.AreEqual (IsolationLevel.ReadCommitted, trans.IsolationLevel, "#E2");
		ChangeIsolationLevel (conn, trans, "SERIALIZABLE");
#if !MONO
		level = GetIsolationLevel (conn, trans);
		Assert.AreEqual (IsolationLevel.Serializable, level, "#E3");
#endif
		Assert.AreEqual (IsolationLevel.ReadCommitted, trans.IsolationLevel, "#E4");
		trans.Rollback ();

		ChangeIsolationLevel (conn, null, "REPEATABLE READ");

		trans = conn.BeginTransaction (IsolationLevel.Unspecified);
#if !MONO
		level = GetIsolationLevel (conn, trans);
		Assert.AreEqual (IsolationLevel.RepeatableRead, level, "#F1");
#endif
		ChangeIsolationLevel (conn, trans, "READ UNCOMMITTED");
#if !MONO
		level = GetIsolationLevel (conn, trans);
		Assert.AreEqual (IsolationLevel.ReadUncommitted, level, "#F3");
#endif
		Assert.AreEqual (IsolationLevel.ReadCommitted, trans.IsolationLevel, "#F4");
		trans.Rollback ();

#if !MONO
		level = GetIsolationLevel (conn, null);
		Assert.AreEqual (IsolationLevel.ReadUncommitted, level, "#G");
#endif

		trans = conn.BeginTransaction (IsolationLevel.RepeatableRead);
#if !MONO
		level = GetIsolationLevel (conn, trans);
		Assert.AreEqual (IsolationLevel.RepeatableRead, level, "#H1");
#endif
		Assert.AreEqual (IsolationLevel.RepeatableRead, trans.IsolationLevel, "#H2");
		ChangeIsolationLevel (conn, trans, "SERIALIZABLE");
#if !MONO
		level = GetIsolationLevel (conn, trans);
		Assert.AreEqual (IsolationLevel.Serializable, level, "#H3");
#endif
		Assert.AreEqual (IsolationLevel.RepeatableRead, trans.IsolationLevel, "#H4");
		trans.Rollback ();

#if !MONO
		level = GetIsolationLevel (conn, null);
		Assert.AreEqual (IsolationLevel.Serializable, level, "#I");
#endif

		// Snapshot is badly broken on MS.NET 2.0:
		//https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=305736
#if NET_2_0 && MONO
		trans = conn.BeginTransaction (IsolationLevel.Snapshot);
//.........这里部分代码省略.........
开发者ID:mono,项目名称:gert,代码行数:101,代码来源:test.cs


注:本文中的System.Data.Odbc.OdbcConnection.BeginTransaction方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。