Inheritance: CLRScriptFramework.CLRScriptBase, ICLRScriptImplementation
コード例 #1
0
        private ACR_ServerMisc([In] ACR_ServerMisc Other)
        {
            InitScript(Other);
            Database = Other.Database;

            LoadScriptGlobals(Other.SaveScriptGlobals());
        }
コード例 #2
0
        /// <summary>
        /// Fetch a database rowset.
        /// </summary>
        /// <param name="ConnectionHandle">Supplies a database connection
        /// handle.</param>
        /// <param name="Script">Supplies the script object.</param>
        /// <returns>True if the operation succeeded.</returns>
        public static bool FetchDatabaseConnection(int ConnectionHandle, ACR_ServerMisc Script)
        {
            ScriptDatabaseConnection Connection;

            if (!ConnectionTable.TryGetValue(ConnectionHandle, out Connection))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                                                    "ScriptDatabaseConnection({0}): Invalid connection handle in FetchDatabaseConnection().", ConnectionHandle));
                return(false);
            }

            try
            {
                return(Connection.Database.ACR_SQLFetch());
            }
            catch (Exception e)
            {
                if (Connection.Flags.HasFlag(ScriptDatabaseConnectionFlags.StandardQueryLog))
                {
                    LogQuery("! ACR_SQLFetch failed.");
                }

                Logger.Log("ScriptDatabaseConnection.FetchDatabaseConnection: Exception: {0}", e);
                return(false);
            }
        }
コード例 #3
0
        /// <summary>
        /// GetEscape a string for subsequent safe use in a database query.
        /// </summary>
        /// <param name="ConnectionHandle">Supplies a database connection
        /// handle.</param>
        /// <param name="Str">Supplies the string to escape.</param>
        /// <param name="Script">Supplies the script object.</param>
        /// <returns>The escaped string if the operation succeeded, else null.
        /// </returns>
        public static string EscapeStringDatabaseConnection(int ConnectionHandle, string Str, ACR_ServerMisc Script)
        {
            ScriptDatabaseConnection Connection;

            if (!ConnectionTable.TryGetValue(ConnectionHandle, out Connection))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                    "ScriptDatabaseConnection({0}): Invalid connection handle in EscapeStringDatabaseConnection({1}).", ConnectionHandle, Str));
                return null;
            }

            return Connection.Database.ACR_SQLEncodeSpecialChars(Str);
        }
コード例 #4
0
        /// <summary>
        /// Get the affected row count from a database rowset.
        /// </summary>
        /// <param name="ConnectionHandle">Supplies a database connection
        /// handle.</param>
        /// <param name="Script">Supplies the script object.</param>
        /// <returns>The affected row count is returned.</returns>
        public static int GetAffectedRowCountDatabaseConnection(int ConnectionHandle, ACR_ServerMisc Script)
        {
            ScriptDatabaseConnection Connection;

            if (!ConnectionTable.TryGetValue(ConnectionHandle, out Connection))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                    "ScriptDatabaseConnection({0}): Invalid connection handle in GetAffectedRowCountDatabaseConnection().", ConnectionHandle));
                return 0;
            }

            try
            {
                return Connection.Database.ACR_SQLGetAffectedRows();
            }
            catch (Exception e)
            {
                if (Connection.Flags.HasFlag(ScriptDatabaseConnectionFlags.StandardQueryLog))
                    LogQuery("! ACR_SQLGetAffectedRows failed.");

                Logger.Log("ScriptDatabaseConnection.GetAffectedRowCountDatabaseConnection: Exception: {0}", e);
                return 0;
            }
        }
コード例 #5
0
        /// <summary>
        /// Get a column from a fetched a database rowset.
        /// </summary>
        /// <param name="ConnectionHandle">Supplies a database connection
        /// handle.</param>
        /// <param name="ColumnIndex">Supplies the column index.</param>
        /// <param name="Script">Supplies the script object.</param>
        /// <returns>True if the operation succeeded.</returns>
        public static string GetColumnDatabaseConnection(int ConnectionHandle, int ColumnIndex, ACR_ServerMisc Script)
        {
            ScriptDatabaseConnection Connection;

            if (!ConnectionTable.TryGetValue(ConnectionHandle, out Connection))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                    "ScriptDatabaseConnection({0}): Invalid connection handle in GetColumnDatabaseConnection({1}).", ConnectionHandle, ColumnIndex));
                return null;
            }

            string Data;
            bool Succeeded = true;

            try
            {
                Data = Connection.Database.ACR_SQLGetData(ColumnIndex);
            }
            catch (Exception e)
            {
                Logger.Log("ScriptDatabaseConnection.GetColumnDatabaseConnection: Exception: {0}", e);
                Data = "";
                Succeeded = false;
            }

            if (Connection.Flags.HasFlag(ScriptDatabaseConnectionFlags.Debug))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                    "ScriptDatabaseConnection({0}): Column {1} data: {2}", ConnectionHandle, ColumnIndex, Data));
            }

            if (Connection.Flags.HasFlag(ScriptDatabaseConnectionFlags.StandardQueryLog))
            {
                if (Succeeded)
                    LogQuery(String.Format("* Returning: {0} (column {1})", Data, ColumnIndex));
                else
                    LogQuery("! ACR_SQLGetData failed.");
            }

            return Data;
        }
コード例 #6
0
        /// <summary>
        /// Execute a database query.
        /// </summary>
        /// <param name="ConnectionHandle">Supplies a database connection
        /// handle.</param>
        /// <param name="Query">Supplies the query.</param>
        /// <param name="Script">Supplies the script object.</param>
        /// <returns>True if the operation succeeded.</returns>
        public static bool QueryDatabaseConnection(int ConnectionHandle, string Query, ACR_ServerMisc Script)
        {
            ScriptDatabaseConnection Connection;

            if (!ConnectionTable.TryGetValue(ConnectionHandle, out Connection))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                    "ScriptDatabaseConnection({0}): Invalid connection handle in QueryDatabaseConnection({1}).", ConnectionHandle, Query));
                return false;
            }

            if (Connection.Flags.HasFlag(ScriptDatabaseConnectionFlags.Debug))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                    "ScriptDatabaseConnection({0}): Executing query '{1}'", ConnectionHandle, Query));
            }

            if (Connection.Flags.HasFlag(ScriptDatabaseConnectionFlags.StandardQueryLog))
                LogQuery(String.Format("* Executing: {0}", Query));

            try
            {
                Connection.Database.ACR_SQLQuery(Query);
            }
            catch (Exception e)
            {
                Logger.Log("ScriptDatabaseConnection.QueryDatabaseConnection: Exception: {0}", e);

                if (Connection.Flags.HasFlag(ScriptDatabaseConnectionFlags.StandardQueryLog))
                    LogQuery("! ACR_SQLQuery failed.");

                return false;
            }

            return true;
        }
コード例 #7
0
        /// <summary>
        /// Execute a database query.
        /// </summary>
        /// <param name="ConnectionHandle">Supplies a database connection
        /// handle.</param>
        /// <param name="Query">Supplies the query.</param>
        /// <param name="Script">Supplies the script object.</param>
        /// <returns>True if the operation succeeded.</returns>
        public static bool QueryDatabaseConnection(int ConnectionHandle, string Query, ACR_ServerMisc Script)
        {
            ScriptDatabaseConnection Connection;

            if (!ConnectionTable.TryGetValue(ConnectionHandle, out Connection))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                    "ScriptDatabaseConnection({0}): Invalid connection handle in QueryDatabaseConnection({1}).", ConnectionHandle, Query));
                return false;
            }

            if (Connection.Flags.HasFlag(ScriptDatabaseConnectionFlags.Debug))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                    "ScriptDatabaseConnection({0}): Executing query '{1}'", ConnectionHandle, Query));
            }

            Connection.Database.ACR_SQLQuery(Query);
            return true;
        }
コード例 #8
0
        /// <summary>
        /// Get the affected row count from a database rowset.
        /// </summary>
        /// <param name="ConnectionHandle">Supplies a database connection
        /// handle.</param>
        /// <param name="Script">Supplies the script object.</param>
        /// <returns>The affected row count is returned.</returns>
        public static int GetAffectedRowCountDatabaseConnection(int ConnectionHandle, ACR_ServerMisc Script)
        {
            ScriptDatabaseConnection Connection;

            if (!ConnectionTable.TryGetValue(ConnectionHandle, out Connection))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                    "ScriptDatabaseConnection({0}): Invalid connection handle in GetAffectedRowCountDatabaseConnection().", ConnectionHandle));
                return 0;
            }

            return Connection.Database.ACR_SQLGetAffectedRows();
        }
コード例 #9
0
        /// <summary>
        /// Get a column from a fetched a database rowset.
        /// </summary>
        /// <param name="ConnectionHandle">Supplies a database connection
        /// handle.</param>
        /// <param name="ColumnIndex">Supplies the column index.</param>
        /// <param name="Script">Supplies the script object.</param>
        /// <returns>True if the operation succeeded.</returns>
        public static string GetColumnDatabaseConnection(int ConnectionHandle, int ColumnIndex, ACR_ServerMisc Script)
        {
            ScriptDatabaseConnection Connection;

            if (!ConnectionTable.TryGetValue(ConnectionHandle, out Connection))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                    "ScriptDatabaseConnection({0}): Invalid connection handle in GetColumnDatabaseConnection({1}).", ConnectionHandle, ColumnIndex));
                return null;
            }

            string Data = Connection.Database.ACR_SQLGetData(ColumnIndex);

            if (Connection.Flags.HasFlag(ScriptDatabaseConnectionFlags.Debug))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                    "ScriptDatabaseConnection({0}): Column {1} data: {2}", ConnectionHandle, ColumnIndex, Data));
            }

            return Data;
        }
コード例 #10
0
        /// <summary>
        /// Fetch a database rowset.
        /// </summary>
        /// <param name="ConnectionHandle">Supplies a database connection
        /// handle.</param>
        /// <param name="Script">Supplies the script object.</param>
        /// <returns>True if the operation succeeded.</returns>
        public static bool FetchDatabaseConnection(int ConnectionHandle, ACR_ServerMisc Script)
        {
            ScriptDatabaseConnection Connection;

            if (!ConnectionTable.TryGetValue(ConnectionHandle, out Connection))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                    "ScriptDatabaseConnection({0}): Invalid connection handle in FetchDatabaseConnection().", ConnectionHandle));
                return false;
            }

            Connection.Database.ACR_SQLFetch();
            return true;
        }
コード例 #11
0
        /// <summary>
        /// GetEscape a string for subsequent safe use in a database query.
        /// </summary>
        /// <param name="ConnectionHandle">Supplies a database connection
        /// handle.</param>
        /// <param name="Str">Supplies the string to escape.</param>
        /// <param name="Script">Supplies the script object.</param>
        /// <returns>The escaped string if the operation succeeded, else null.
        /// </returns>
        public static string EscapeStringDatabaseConnection(int ConnectionHandle, string Str, ACR_ServerMisc Script)
        {
            ScriptDatabaseConnection Connection;

            if (!ConnectionTable.TryGetValue(ConnectionHandle, out Connection))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                                                    "ScriptDatabaseConnection({0}): Invalid connection handle in EscapeStringDatabaseConnection({1}).", ConnectionHandle, Str));
                return(null);
            }

            return(Connection.Database.ACR_SQLEncodeSpecialChars(Str));
        }
コード例 #12
0
        /// <summary>
        /// Get a column from a fetched a database rowset.
        /// </summary>
        /// <param name="ConnectionHandle">Supplies a database connection
        /// handle.</param>
        /// <param name="ColumnIndex">Supplies the column index.</param>
        /// <param name="Script">Supplies the script object.</param>
        /// <returns>True if the operation succeeded.</returns>
        public static string GetColumnDatabaseConnection(int ConnectionHandle, int ColumnIndex, ACR_ServerMisc Script)
        {
            ScriptDatabaseConnection Connection;

            if (!ConnectionTable.TryGetValue(ConnectionHandle, out Connection))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                                                    "ScriptDatabaseConnection({0}): Invalid connection handle in GetColumnDatabaseConnection({1}).", ConnectionHandle, ColumnIndex));
                return(null);
            }

            string Data;
            bool   Succeeded = true;

            try
            {
                Data = Connection.Database.ACR_SQLGetData(ColumnIndex);
            }
            catch (Exception e)
            {
                Logger.Log("ScriptDatabaseConnection.GetColumnDatabaseConnection: Exception: {0}", e);
                Data      = "";
                Succeeded = false;
            }

            if (Connection.Flags.HasFlag(ScriptDatabaseConnectionFlags.Debug))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                                                    "ScriptDatabaseConnection({0}): Column {1} data: {2}", ConnectionHandle, ColumnIndex, Data));
            }

            if (Connection.Flags.HasFlag(ScriptDatabaseConnectionFlags.StandardQueryLog))
            {
                if (Succeeded)
                {
                    LogQuery(String.Format("* Returning: {0} (column {1})", Data, ColumnIndex));
                }
                else
                {
                    LogQuery("! ACR_SQLGetData failed.");
                }
            }

            return(Data);
        }
コード例 #13
0
        /// <summary>
        /// Execute a database query.
        /// </summary>
        /// <param name="ConnectionHandle">Supplies a database connection
        /// handle.</param>
        /// <param name="Query">Supplies the query.</param>
        /// <param name="Script">Supplies the script object.</param>
        /// <returns>True if the operation succeeded.</returns>
        public static bool QueryDatabaseConnection(int ConnectionHandle, string Query, ACR_ServerMisc Script)
        {
            ScriptDatabaseConnection Connection;

            if (!ConnectionTable.TryGetValue(ConnectionHandle, out Connection))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                                                    "ScriptDatabaseConnection({0}): Invalid connection handle in QueryDatabaseConnection({1}).", ConnectionHandle, Query));
                return(false);
            }

            if (Connection.Flags.HasFlag(ScriptDatabaseConnectionFlags.Debug))
            {
                Script.WriteTimestampedLogEntry(String.Format(
                                                    "ScriptDatabaseConnection({0}): Executing query '{1}'", ConnectionHandle, Query));
            }

            if (Connection.Flags.HasFlag(ScriptDatabaseConnectionFlags.StandardQueryLog))
            {
                LogQuery(String.Format("* Executing: {0}", Query));
            }

            try
            {
                Connection.Database.ACR_SQLQuery(Query);
            }
            catch (Exception e)
            {
                Logger.Log("ScriptDatabaseConnection.QueryDatabaseConnection: Exception: {0}", e);

                if (Connection.Flags.HasFlag(ScriptDatabaseConnectionFlags.StandardQueryLog))
                {
                    LogQuery("! ACR_SQLQuery failed.");
                }

                return(false);
            }

            return(true);
        }