private static void TestCase_ManualEnlistment_Enlist() { SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(ConnectionString); builder.Enlist = false; ConnectionString = builder.ConnectionString; using (SqlConnection connection = new SqlConnection(ConnectionString)) { connection.Open(); using (TransactionScope txScope = new TransactionScope()) { connection.EnlistTransaction(Transactions.Transaction.Current); using (SqlCommand command = connection.CreateCommand()) { command.CommandText = $"INSERT INTO {TestTableName} VALUES ({InputCol1}, '{InputCol2}')"; command.ExecuteNonQuery(); } } } DataTable result = DataTestUtility.RunQuery(ConnectionString, $"select col2 from {TestTableName} where col1 = {InputCol1}"); Assert.True(result.Rows.Count == 0); }
private static bool GetMirroringInfo(string connectionString, out string mirroringStateDesc, out string failoverPartnerName) { mirroringStateDesc = null; failoverPartnerName = null; SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectionString); string dbname = builder.InitialCatalog; builder.ConnectTimeout = 5; connectionString = builder.ConnectionString; DataTable dt = DataTestUtility.RunQuery(connectionString, $"select mirroring_state_desc from sys.database_mirroring where database_id = DB_ID('{dbname}')"); mirroringStateDesc = dt.Rows[0][0].ToString(); bool isMirroring = !string.IsNullOrEmpty(mirroringStateDesc); if (isMirroring) { dt = DataTestUtility.RunQuery(connectionString, $"select mirroring_partner_name from sys.database_mirroring where database_id = DB_ID('{dbname}')"); failoverPartnerName = dt.Rows[0][0].ToString(); } return(isMirroring); }
private static void TestCase_AutoEnlistment_TxScopeComplete() { SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(ConnectionString); builder.Enlist = true; ConnectionString = builder.ConnectionString; using (TransactionScope txScope = new TransactionScope(TransactionScopeOption.Required, TimeSpan.MaxValue)) { using (SqlConnection connection = new SqlConnection(ConnectionString)) { connection.Open(); using (SqlCommand command = connection.CreateCommand()) { command.CommandText = $"INSERT INTO {TestTableName} VALUES ({InputCol1}, '{InputCol2}')"; command.ExecuteNonQuery(); } } txScope.Complete(); } DataTable result = DataTestUtility.RunQuery(ConnectionString, $"select col2 from {TestTableName} where col1 = {InputCol1}"); Assert.True(result.Rows.Count == 1); Assert.True(string.Equals(result.Rows[0][0], InputCol2)); }
private static SqlDecimal BulkCopySqlDecimalToTable(SqlDecimal decimalValue, int sourcePrecision, int sourceScale, int targetPrecision, int targetScale) { string tableName = DataTestUtility.GenerateTableName(); string connectionString = DataTestUtility.TcpConnStr; SqlDecimal resultValue; try { DataTestUtility.RunNonQuery(connectionString, $"create table {tableName} (target_column decimal({targetPrecision}, {targetScale}))"); SqlDecimal inputValue = SqlDecimal.ConvertToPrecScale(decimalValue, sourcePrecision, sourceScale); DataTable dt = new DataTable(); dt.Clear(); dt.Columns.Add("source_column", typeof(SqlDecimal)); DataRow row = dt.NewRow(); row["source_column"] = inputValue; dt.Rows.Add(row); using (SqlBulkCopy sbc = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.KeepIdentity)) { sbc.DestinationTableName = tableName; sbc.ColumnMappings.Add("source_column", "target_column"); sbc.WriteToServer(dt); } DataTable resultTable = DataTestUtility.RunQuery(connectionString, $"select * from {tableName}"); resultValue = new SqlDecimal((Decimal)resultTable.Rows[0][0]); } finally { DataTestUtility.RunNonQuery(connectionString, $"drop table {tableName}"); } return(resultValue); }