static void SqlDatabaseEventHandler_ExecScalarUDFEvent(SqlDatabaseExternalEventArgs e, out SqlDatabaseDataType OutColumnDataType, out object OutColumnValue) { //if (!ShowEventResults) //{ // OutColumnDataType = SqlDatabaseDataType.Integer; // OutColumnValue = 11234; // return; //} // Default value assigned, not to break the code OutColumnDataType = SqlDatabaseDataType.Null; OutColumnValue = null; //Console.WriteLine(e.SQLText); Console.WriteLine($"{e.ArgumentsValue[0].ToString()} - {e.RowId} - {e.IsTransactionOpen} - {e.NoOfChanges} - {e.ArgumentsCount}"); Console.WriteLine(); if (e.ArgumentsCount > 0) { // Usingn Exec1 as first parameter // to differentiate between multiple calls if (e.ArgumentsValue[0].Equals("Exec1")) { OutColumnDataType = SqlDatabaseDataType.Integer; OutColumnValue = iudfincrement++; // A integer value } if (e.ArgumentsValue[0].Equals("Exec2") && e.ArgumentsCount >= 5) { //Simply join all the arguments string columnoutput = string.Join(",", new object[] { e.ArgumentsValue[1], e.ArgumentsValue[2], e.ArgumentsValue[3], e.ArgumentsValue[4] }); OutColumnDataType = SqlDatabaseDataType.Text; OutColumnValue = columnoutput; } } }
private static void SqlDatabaseExternalEventHandler_InsertStatementEvent(SqlDatabaseExternalEventArgs e) { if (ShowEventResults) { Console.WriteLine(string.Format("{0} : IsTrans:{1} - {2}", "EVENT INSERT", e.IsTransactionOpen, e.SQLText)); } }
private static void SqlDatabaseExternalEventHandler_DataChangeNotificationEvent(int ChangeType, SqlDatabaseExternalEventArgs e) { if (ShowEventResults) { Console.WriteLine(string.Format("EVENT DataChange {0} : IsTrans:{1} - {2}", ChangeType, e.IsTransactionOpen, e.SQLText)); } }