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


C# OdbcConnection.CreateOdbcException方法代码示例

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


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

示例1: GetIsolationLevel

		private static IsolationLevel GetIsolationLevel (OdbcConnection conn)
		{
			int lev;
			int length;
			OdbcReturn ret = libodbc.SQLGetConnectAttr (conn.hDbc,
				OdbcConnectionAttribute.TransactionIsolation,
				out lev, 0, out length);
			if (ret != OdbcReturn.Success && ret != OdbcReturn.SuccessWithInfo)
				throw conn.CreateOdbcException (OdbcHandleType.Dbc, conn.hDbc);
			return MapOdbcIsolationLevel ((OdbcIsolationLevel) lev);
		}
开发者ID:chriswebb,项目名称:mono,代码行数:11,代码来源:OdbcTransaction.cs

示例2: OdbcTransaction

		internal OdbcTransaction (OdbcConnection conn, IsolationLevel isolationlevel)
		{
			// Set Auto-commit (102) to false
			SetAutoCommit (conn, false);
			// Handle isolation level
			OdbcIsolationLevel lev = OdbcIsolationLevel.ReadCommitted;
			OdbcConnectionAttribute attr = OdbcConnectionAttribute.TransactionIsolation;
			switch (isolationlevel) {
			case IsolationLevel.ReadUncommitted:
				lev = OdbcIsolationLevel.ReadUncommitted;
				break;
			case IsolationLevel.ReadCommitted:
				lev = OdbcIsolationLevel.ReadCommitted;
				break;
			case IsolationLevel.RepeatableRead:
				lev = OdbcIsolationLevel.RepeatableRead;
				break;
			case IsolationLevel.Serializable:
				lev = OdbcIsolationLevel.Serializable;
				break;
			case IsolationLevel.Snapshot:
				// badly broken on MS:
				// https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=305736
				lev = OdbcIsolationLevel.Snapshot;

				// SQL_ATTR_TXN_ISOLATION can be used to set all other isolation
				// levels except for SQL_TXN_SS_SNAPSHOT. If you want to use snapshot
				// isolation, you must set SQL_TXN_SS_SNAPSHOT through
				// SQL_COPT_SS_TXN_ISOLATION. However, you can retrieve the
				// isolation level by using either SQL_ATTR_TXN_ISOLATION or
				// SQL_COPT_SS_TXN_ISOLATION.
				// Source:
				// http://msdn2.microsoft.com/en-us/library/ms131709.aspx
				attr = OdbcConnectionAttribute.CoptTransactionIsolation;
				break;
			case IsolationLevel.Unspecified:
				// when isolationlevel is not specified, then use
				// default isolation level of the driver and
				// lazy initialize it in the IsolationLevel property
				break;
			case IsolationLevel.Chaos:
				throw new ArgumentOutOfRangeException ("IsolationLevel",
					string.Format (CultureInfo.CurrentCulture,
						"The IsolationLevel enumeration " +
						"value, {0}, is not supported by " +
						"the .Net Framework Odbc Data " +
						"Provider.", (int) isolationlevel));
			default:
				throw new ArgumentOutOfRangeException ("IsolationLevel",
					string.Format (CultureInfo.CurrentCulture,
						"The IsolationLevel enumeration value, {0}, is invalid.",
						(int) isolationlevel));
			}

			// only change isolation level if it was explictly set
			if (isolationlevel != IsolationLevel.Unspecified) {
				// mbd: Getting the return code of the second call to SQLSetConnectAttr is missing from original code!
				OdbcReturn ret = libodbc.SQLSetConnectAttr (conn.hDbc,
					attr, (IntPtr) lev, 0);
				if (ret != OdbcReturn.Success && ret != OdbcReturn.SuccessWithInfo)
					throw conn.CreateOdbcException (OdbcHandleType.Dbc, conn.hDbc);
			}
			this.isolationlevel = isolationlevel;
			connection = conn;
			isOpen = true;
		}
开发者ID:chriswebb,项目名称:mono,代码行数:66,代码来源:OdbcTransaction.cs

示例3: SetAutoCommit

		// Set Auto-commit (102) connection attribute
		// [MonoTODO]: nice to have before svn: define libodbc.SQL_IS_UINTEGER = -5
		private static void SetAutoCommit (OdbcConnection conn, bool isAuto)
		{
			OdbcReturn ret = libodbc.SQLSetConnectAttr (conn.hDbc,
				OdbcConnectionAttribute.AutoCommit,
				(IntPtr) (isAuto ? 1 : 0), -5);
			if (ret != OdbcReturn.Success && ret != OdbcReturn.SuccessWithInfo)
				throw conn.CreateOdbcException (OdbcHandleType.Dbc, conn.hDbc);
		}
开发者ID:chriswebb,项目名称:mono,代码行数:10,代码来源:OdbcTransaction.cs


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