OdbcStatementHandle.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Data / System / Data / Odbc / OdbcStatementHandle.cs / 1 / OdbcStatementHandle.cs

                            //------------------------------------------------------------------------------ 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
// [....]
//----------------------------------------------------------------------------- 
 
using System;
using System.Collections; 
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Diagnostics; 
using System.Globalization;
using System.Runtime.InteropServices; 
using System.Security; 
using System.Security.Permissions;
using System.Text; 
using System.Threading;

namespace System.Data.Odbc {
 
    internal struct SQLLEN {
#if WIN32 
        internal Int32 _value; 
#else
        internal Int64 _value; 
#endif

        internal SQLLEN(int value) {
            _value = value; 
        }
 
        internal SQLLEN(long value) { 
#if WIN32
            _value = checked((int)value); 
#else
            _value = value;
#endif
        } 

        internal SQLLEN(IntPtr value) { 
#if WIN32 
            _value = value.ToInt32();
#else 
            _value = value.ToInt64();
#endif
        }
 
        public static implicit operator SQLLEN (int value) { //
            return new SQLLEN(value); 
        } 

        public static explicit operator SQLLEN (long value) { 
            return new SQLLEN(value);
        }

        public unsafe static implicit operator int (SQLLEN  value) { // 
#if WIN32
            return (int)value._value; 
#else 
            long l = (long)value._value;
            return checked((int)l); 
#endif
        }

        public unsafe static explicit operator long (SQLLEN  value) { 
#if WIN32
            return (long)(int)value._value; 
#else 
            return (long)value._value;
#endif 
        }

        public unsafe long ToInt64() {
#if WIN32 
            return (long)(int)_value;
#else 
            return (long)_value; 
#endif
        } 
    }

    sealed internal class OdbcStatementHandle : OdbcHandle {
 
        internal OdbcStatementHandle(OdbcConnectionHandle connectionHandle) : base(ODBC32.SQL_HANDLE.STMT, connectionHandle) {
        } 
 
        internal ODBC32.RetCode BindColumn2(int columnNumber, ODBC32.SQL_C targetType, HandleRef buffer, IntPtr length, IntPtr srLen_or_Ind) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLBindCol(this, checked((ushort)columnNumber), targetType, buffer, length, srLen_or_Ind); 
            ODBC.TraceODBC(3, "SQLBindCol", retcode);
            return retcode;
        }
 
        internal ODBC32.RetCode BindColumn3(int columnNumber, ODBC32.SQL_C targetType,  IntPtr srLen_or_Ind) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLBindCol(this, checked((ushort)columnNumber), targetType, ADP.PtrZero, ADP.PtrZero, srLen_or_Ind); 
            ODBC.TraceODBC(3, "SQLBindCol", retcode); 
            return retcode;
        } 

        internal ODBC32.RetCode BindParameter(short ordinal, short parameterDirection, ODBC32.SQL_C sqlctype, ODBC32.SQL_TYPE sqltype, IntPtr cchSize, IntPtr scale, HandleRef buffer, IntPtr bufferLength, HandleRef intbuffer) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLBindParameter(this,
                                    checked((ushort)ordinal),   // Parameter Number 
                                    parameterDirection,         // InputOutputType
                                    sqlctype,                   // ValueType 
                                    checked((short)sqltype),    // ParameterType 
                                    cchSize,                    // ColumnSize
                                    scale,                      // DecimalDigits 
                                    buffer,                     // ParameterValuePtr
                                    bufferLength,               // BufferLength
                                    intbuffer);                 // StrLen_or_IndPtr
            ODBC.TraceODBC(3, "SQLBindParameter", retcode); 
            return retcode;
        } 
 
        internal ODBC32.RetCode Cancel() {
            // In ODBC3.0 ... a call to SQLCancel when no processing is done has no effect at all 
            // (ODBC Programmer's Reference ...)
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLCancel(this);
            ODBC.TraceODBC(3, "SQLCancel", retcode);
            return retcode; 
        }
 
        internal ODBC32.RetCode CloseCursor() { 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLCloseCursor(this);
            ODBC.TraceODBC(3, "SQLCloseCursor", retcode); 
            return retcode;
        }

        internal ODBC32.RetCode ColumnAttribute(int columnNumber, short fieldIdentifier, CNativeBuffer characterAttribute, out short stringLength, out SQLLEN numericAttribute) { 
            IntPtr result;
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLColAttributeW(this, checked((short)columnNumber), fieldIdentifier, characterAttribute, characterAttribute.ShortLength, out stringLength, out result); 
            numericAttribute = new SQLLEN(result); 
            ODBC.TraceODBC(3, "SQLColAttributeW", retcode);
            return retcode; 
        }

        internal ODBC32.RetCode Columns(string tableCatalog,
                                        string tableSchema, 
                                        string tableName,
                                        string columnName) { 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLColumnsW(this, 
                                                                     tableCatalog,
                                                                     ODBC.ShortStringLength(tableCatalog), 
                                                                     tableSchema,
                                                                     ODBC.ShortStringLength(tableSchema),
                                                                     tableName,
                                                                     ODBC.ShortStringLength(tableName), 
                                                                     columnName,
                                                                     ODBC.ShortStringLength(columnName)); 
 
            ODBC.TraceODBC(3, "SQLColumnsW", retcode);
            return retcode; 
        }

        internal ODBC32.RetCode Execute() {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLExecute(this); 
            ODBC.TraceODBC(3, "SQLExecute", retcode);
            return retcode; 
        } 

        internal ODBC32.RetCode ExecuteDirect(string commandText) { 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLExecDirectW(this, commandText, ODBC32.SQL_NTS);
            ODBC.TraceODBC(3, "SQLExecDirectW", retcode);
            return retcode;
        } 

        internal ODBC32.RetCode Fetch() { 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLFetch(this); 
            ODBC.TraceODBC(3, "SQLFetch", retcode);
            return retcode; 
        }

        internal ODBC32.RetCode FreeStatement(ODBC32.STMT stmt) {
            ODBC32.RetCode retcode =  UnsafeNativeMethods.SQLFreeStmt(this, stmt); 
            ODBC.TraceODBC(3, "SQLFreeStmt", retcode);
            return retcode; 
        } 

        internal ODBC32.RetCode GetData(int index, ODBC32.SQL_C sqlctype, CNativeBuffer buffer, int cb, out IntPtr cbActual) { 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLGetData(this,
                            checked((ushort)index),
                            sqlctype,
                            buffer, 
                            new IntPtr(cb),
                            out cbActual); 
            ODBC.TraceODBC(3, "SQLGetData", retcode); 
            return retcode;
        } 

        internal ODBC32.RetCode GetStatementAttribute(ODBC32.SQL_ATTR attribute, out IntPtr value, out int stringLength) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLGetStmtAttrW(this, attribute, out value, ADP.PtrSize, out stringLength);
            ODBC.TraceODBC(3, "SQLGetStmtAttrW", retcode); 
            return retcode;
        } 
 
        internal ODBC32.RetCode GetTypeInfo(Int16 fSqlType) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLGetTypeInfo(this, fSqlType); 
            ODBC.TraceODBC(3, "SQLGetTypeInfo", retcode);
            return retcode;
        }
 
        internal ODBC32.RetCode MoreResults() {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLMoreResults(this); 
            ODBC.TraceODBC(3, "SQLMoreResults", retcode); 
            return retcode;
        } 

        internal ODBC32.RetCode NumberOfResultColumns(out short columnsAffected) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLNumResultCols(this, out columnsAffected);
            ODBC.TraceODBC(3, "SQLNumResultCols", retcode); 
            return retcode;
        } 
 
        internal ODBC32.RetCode Prepare(string commandText) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLPrepareW(this, commandText, ODBC32.SQL_NTS); 
            ODBC.TraceODBC(3, "SQLPrepareW", retcode);
            return retcode;
        }
 
        internal ODBC32.RetCode PrimaryKeys(string catalogName, string schemaName, string tableName) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLPrimaryKeysW(this, 
                            catalogName, ODBC.ShortStringLength(catalogName),          // CatalogName 
                            schemaName, ODBC.ShortStringLength(schemaName),            // SchemaName
                            tableName, ODBC.ShortStringLength(tableName)              // TableName 
            );
            ODBC.TraceODBC(3, "SQLPrimaryKeysW", retcode);
            return retcode;
        } 

        internal ODBC32.RetCode Procedures(string procedureCatalog, 
                                           string procedureSchema, 
                                           string procedureName) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLProceduresW(this, 
                                                                        procedureCatalog,
                                                                        ODBC.ShortStringLength(procedureCatalog),
                                                                        procedureSchema,
                                                                        ODBC.ShortStringLength(procedureSchema), 
                                                                        procedureName,
                                                                        ODBC.ShortStringLength(procedureName)); 
 
            ODBC.TraceODBC(3, "SQLProceduresW", retcode);
            return retcode; 
        }

        internal ODBC32.RetCode ProcedureColumns(string procedureCatalog,
                                                 string procedureSchema, 
                                                 string procedureName,
                                                 string columnName) { 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLProcedureColumnsW(this, 
                                                                              procedureCatalog,
                                                                              ODBC.ShortStringLength(procedureCatalog), 
                                                                              procedureSchema,
                                                                              ODBC.ShortStringLength(procedureSchema),
                                                                              procedureName,
                                                                              ODBC.ShortStringLength(procedureName), 
                                                                              columnName,
                                                                              ODBC.ShortStringLength(columnName)); 
 
            ODBC.TraceODBC(3, "SQLProcedureColumnsW", retcode);
            return retcode; 
        }

        internal ODBC32.RetCode RowCount(out SQLLEN rowCount) {
            IntPtr result; 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLRowCount(this, out result);
            rowCount._value = new SQLLEN(result); 
            ODBC.TraceODBC(3, "SQLRowCount", retcode); 
            return retcode;
        } 

        internal ODBC32.RetCode SetStatementAttribute(ODBC32.SQL_ATTR attribute, IntPtr value, ODBC32.SQL_IS stringLength) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLSetStmtAttrW(this, (int)attribute, value, (int)stringLength);
            ODBC.TraceODBC(3, "SQLSetStmtAttrW", retcode); 
            return retcode;
        } 
 
        internal ODBC32.RetCode SpecialColumns(string quotedTable) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLSpecialColumnsW(this, 
            ODBC32.SQL_SPECIALCOLS.ROWVER, null, 0, null, 0,
            quotedTable, ODBC.ShortStringLength(quotedTable),
            ODBC32.SQL_SCOPE.SESSION, ODBC32.SQL_NULLABILITY.NO_NULLS);
            ODBC.TraceODBC(3, "SQLSpecialColumnsW", retcode); 
            return retcode;
        } 
 
        internal ODBC32.RetCode Statistics(string tableCatalog,
                                           string tableSchema, 
                                           string tableName,
                                           Int16 unique,
                                           Int16 accuracy) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLStatisticsW(this, 
                                                                        tableCatalog,
                                                                        ODBC.ShortStringLength(tableCatalog), 
                                                                        tableSchema, 
                                                                        ODBC.ShortStringLength(tableSchema),
                                                                        tableName, 
                                                                        ODBC.ShortStringLength(tableName),
                                                                        unique,
                                                                        accuracy);
 
            ODBC.TraceODBC(3, "SQLStatisticsW", retcode);
            return retcode; 
        } 

        internal ODBC32.RetCode Statistics(string tableName) { 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLStatisticsW(this,
            null, 0, null, 0,
            tableName, ODBC.ShortStringLength(tableName),
            (Int16) ODBC32.SQL_INDEX.UNIQUE, 
            (Int16) ODBC32.SQL_STATISTICS_RESERVED.ENSURE);
            ODBC.TraceODBC(3, "SQLStatisticsW", retcode); 
            return retcode; 
        }
 
        internal ODBC32.RetCode Tables(string tableCatalog,
                                       string tableSchema,
                                       string tableName,
                                       string tableType) { 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLTablesW(this,
                                                                    tableCatalog, 
                                                                    ODBC.ShortStringLength(tableCatalog), 
                                                                    tableSchema,
                                                                    ODBC.ShortStringLength(tableSchema), 
                                                                    tableName,
                                                                    ODBC.ShortStringLength(tableName),
                                                                    tableType,
                                                                    ODBC.ShortStringLength(tableType)); 

            ODBC.TraceODBC(3, "SQLTablesW", retcode); 
            return retcode; 
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
// [....]
//----------------------------------------------------------------------------- 
 
using System;
using System.Collections; 
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Diagnostics; 
using System.Globalization;
using System.Runtime.InteropServices; 
using System.Security; 
using System.Security.Permissions;
using System.Text; 
using System.Threading;

namespace System.Data.Odbc {
 
    internal struct SQLLEN {
#if WIN32 
        internal Int32 _value; 
#else
        internal Int64 _value; 
#endif

        internal SQLLEN(int value) {
            _value = value; 
        }
 
        internal SQLLEN(long value) { 
#if WIN32
            _value = checked((int)value); 
#else
            _value = value;
#endif
        } 

        internal SQLLEN(IntPtr value) { 
#if WIN32 
            _value = value.ToInt32();
#else 
            _value = value.ToInt64();
#endif
        }
 
        public static implicit operator SQLLEN (int value) { //
            return new SQLLEN(value); 
        } 

        public static explicit operator SQLLEN (long value) { 
            return new SQLLEN(value);
        }

        public unsafe static implicit operator int (SQLLEN  value) { // 
#if WIN32
            return (int)value._value; 
#else 
            long l = (long)value._value;
            return checked((int)l); 
#endif
        }

        public unsafe static explicit operator long (SQLLEN  value) { 
#if WIN32
            return (long)(int)value._value; 
#else 
            return (long)value._value;
#endif 
        }

        public unsafe long ToInt64() {
#if WIN32 
            return (long)(int)_value;
#else 
            return (long)_value; 
#endif
        } 
    }

    sealed internal class OdbcStatementHandle : OdbcHandle {
 
        internal OdbcStatementHandle(OdbcConnectionHandle connectionHandle) : base(ODBC32.SQL_HANDLE.STMT, connectionHandle) {
        } 
 
        internal ODBC32.RetCode BindColumn2(int columnNumber, ODBC32.SQL_C targetType, HandleRef buffer, IntPtr length, IntPtr srLen_or_Ind) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLBindCol(this, checked((ushort)columnNumber), targetType, buffer, length, srLen_or_Ind); 
            ODBC.TraceODBC(3, "SQLBindCol", retcode);
            return retcode;
        }
 
        internal ODBC32.RetCode BindColumn3(int columnNumber, ODBC32.SQL_C targetType,  IntPtr srLen_or_Ind) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLBindCol(this, checked((ushort)columnNumber), targetType, ADP.PtrZero, ADP.PtrZero, srLen_or_Ind); 
            ODBC.TraceODBC(3, "SQLBindCol", retcode); 
            return retcode;
        } 

        internal ODBC32.RetCode BindParameter(short ordinal, short parameterDirection, ODBC32.SQL_C sqlctype, ODBC32.SQL_TYPE sqltype, IntPtr cchSize, IntPtr scale, HandleRef buffer, IntPtr bufferLength, HandleRef intbuffer) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLBindParameter(this,
                                    checked((ushort)ordinal),   // Parameter Number 
                                    parameterDirection,         // InputOutputType
                                    sqlctype,                   // ValueType 
                                    checked((short)sqltype),    // ParameterType 
                                    cchSize,                    // ColumnSize
                                    scale,                      // DecimalDigits 
                                    buffer,                     // ParameterValuePtr
                                    bufferLength,               // BufferLength
                                    intbuffer);                 // StrLen_or_IndPtr
            ODBC.TraceODBC(3, "SQLBindParameter", retcode); 
            return retcode;
        } 
 
        internal ODBC32.RetCode Cancel() {
            // In ODBC3.0 ... a call to SQLCancel when no processing is done has no effect at all 
            // (ODBC Programmer's Reference ...)
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLCancel(this);
            ODBC.TraceODBC(3, "SQLCancel", retcode);
            return retcode; 
        }
 
        internal ODBC32.RetCode CloseCursor() { 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLCloseCursor(this);
            ODBC.TraceODBC(3, "SQLCloseCursor", retcode); 
            return retcode;
        }

        internal ODBC32.RetCode ColumnAttribute(int columnNumber, short fieldIdentifier, CNativeBuffer characterAttribute, out short stringLength, out SQLLEN numericAttribute) { 
            IntPtr result;
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLColAttributeW(this, checked((short)columnNumber), fieldIdentifier, characterAttribute, characterAttribute.ShortLength, out stringLength, out result); 
            numericAttribute = new SQLLEN(result); 
            ODBC.TraceODBC(3, "SQLColAttributeW", retcode);
            return retcode; 
        }

        internal ODBC32.RetCode Columns(string tableCatalog,
                                        string tableSchema, 
                                        string tableName,
                                        string columnName) { 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLColumnsW(this, 
                                                                     tableCatalog,
                                                                     ODBC.ShortStringLength(tableCatalog), 
                                                                     tableSchema,
                                                                     ODBC.ShortStringLength(tableSchema),
                                                                     tableName,
                                                                     ODBC.ShortStringLength(tableName), 
                                                                     columnName,
                                                                     ODBC.ShortStringLength(columnName)); 
 
            ODBC.TraceODBC(3, "SQLColumnsW", retcode);
            return retcode; 
        }

        internal ODBC32.RetCode Execute() {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLExecute(this); 
            ODBC.TraceODBC(3, "SQLExecute", retcode);
            return retcode; 
        } 

        internal ODBC32.RetCode ExecuteDirect(string commandText) { 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLExecDirectW(this, commandText, ODBC32.SQL_NTS);
            ODBC.TraceODBC(3, "SQLExecDirectW", retcode);
            return retcode;
        } 

        internal ODBC32.RetCode Fetch() { 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLFetch(this); 
            ODBC.TraceODBC(3, "SQLFetch", retcode);
            return retcode; 
        }

        internal ODBC32.RetCode FreeStatement(ODBC32.STMT stmt) {
            ODBC32.RetCode retcode =  UnsafeNativeMethods.SQLFreeStmt(this, stmt); 
            ODBC.TraceODBC(3, "SQLFreeStmt", retcode);
            return retcode; 
        } 

        internal ODBC32.RetCode GetData(int index, ODBC32.SQL_C sqlctype, CNativeBuffer buffer, int cb, out IntPtr cbActual) { 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLGetData(this,
                            checked((ushort)index),
                            sqlctype,
                            buffer, 
                            new IntPtr(cb),
                            out cbActual); 
            ODBC.TraceODBC(3, "SQLGetData", retcode); 
            return retcode;
        } 

        internal ODBC32.RetCode GetStatementAttribute(ODBC32.SQL_ATTR attribute, out IntPtr value, out int stringLength) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLGetStmtAttrW(this, attribute, out value, ADP.PtrSize, out stringLength);
            ODBC.TraceODBC(3, "SQLGetStmtAttrW", retcode); 
            return retcode;
        } 
 
        internal ODBC32.RetCode GetTypeInfo(Int16 fSqlType) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLGetTypeInfo(this, fSqlType); 
            ODBC.TraceODBC(3, "SQLGetTypeInfo", retcode);
            return retcode;
        }
 
        internal ODBC32.RetCode MoreResults() {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLMoreResults(this); 
            ODBC.TraceODBC(3, "SQLMoreResults", retcode); 
            return retcode;
        } 

        internal ODBC32.RetCode NumberOfResultColumns(out short columnsAffected) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLNumResultCols(this, out columnsAffected);
            ODBC.TraceODBC(3, "SQLNumResultCols", retcode); 
            return retcode;
        } 
 
        internal ODBC32.RetCode Prepare(string commandText) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLPrepareW(this, commandText, ODBC32.SQL_NTS); 
            ODBC.TraceODBC(3, "SQLPrepareW", retcode);
            return retcode;
        }
 
        internal ODBC32.RetCode PrimaryKeys(string catalogName, string schemaName, string tableName) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLPrimaryKeysW(this, 
                            catalogName, ODBC.ShortStringLength(catalogName),          // CatalogName 
                            schemaName, ODBC.ShortStringLength(schemaName),            // SchemaName
                            tableName, ODBC.ShortStringLength(tableName)              // TableName 
            );
            ODBC.TraceODBC(3, "SQLPrimaryKeysW", retcode);
            return retcode;
        } 

        internal ODBC32.RetCode Procedures(string procedureCatalog, 
                                           string procedureSchema, 
                                           string procedureName) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLProceduresW(this, 
                                                                        procedureCatalog,
                                                                        ODBC.ShortStringLength(procedureCatalog),
                                                                        procedureSchema,
                                                                        ODBC.ShortStringLength(procedureSchema), 
                                                                        procedureName,
                                                                        ODBC.ShortStringLength(procedureName)); 
 
            ODBC.TraceODBC(3, "SQLProceduresW", retcode);
            return retcode; 
        }

        internal ODBC32.RetCode ProcedureColumns(string procedureCatalog,
                                                 string procedureSchema, 
                                                 string procedureName,
                                                 string columnName) { 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLProcedureColumnsW(this, 
                                                                              procedureCatalog,
                                                                              ODBC.ShortStringLength(procedureCatalog), 
                                                                              procedureSchema,
                                                                              ODBC.ShortStringLength(procedureSchema),
                                                                              procedureName,
                                                                              ODBC.ShortStringLength(procedureName), 
                                                                              columnName,
                                                                              ODBC.ShortStringLength(columnName)); 
 
            ODBC.TraceODBC(3, "SQLProcedureColumnsW", retcode);
            return retcode; 
        }

        internal ODBC32.RetCode RowCount(out SQLLEN rowCount) {
            IntPtr result; 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLRowCount(this, out result);
            rowCount._value = new SQLLEN(result); 
            ODBC.TraceODBC(3, "SQLRowCount", retcode); 
            return retcode;
        } 

        internal ODBC32.RetCode SetStatementAttribute(ODBC32.SQL_ATTR attribute, IntPtr value, ODBC32.SQL_IS stringLength) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLSetStmtAttrW(this, (int)attribute, value, (int)stringLength);
            ODBC.TraceODBC(3, "SQLSetStmtAttrW", retcode); 
            return retcode;
        } 
 
        internal ODBC32.RetCode SpecialColumns(string quotedTable) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLSpecialColumnsW(this, 
            ODBC32.SQL_SPECIALCOLS.ROWVER, null, 0, null, 0,
            quotedTable, ODBC.ShortStringLength(quotedTable),
            ODBC32.SQL_SCOPE.SESSION, ODBC32.SQL_NULLABILITY.NO_NULLS);
            ODBC.TraceODBC(3, "SQLSpecialColumnsW", retcode); 
            return retcode;
        } 
 
        internal ODBC32.RetCode Statistics(string tableCatalog,
                                           string tableSchema, 
                                           string tableName,
                                           Int16 unique,
                                           Int16 accuracy) {
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLStatisticsW(this, 
                                                                        tableCatalog,
                                                                        ODBC.ShortStringLength(tableCatalog), 
                                                                        tableSchema, 
                                                                        ODBC.ShortStringLength(tableSchema),
                                                                        tableName, 
                                                                        ODBC.ShortStringLength(tableName),
                                                                        unique,
                                                                        accuracy);
 
            ODBC.TraceODBC(3, "SQLStatisticsW", retcode);
            return retcode; 
        } 

        internal ODBC32.RetCode Statistics(string tableName) { 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLStatisticsW(this,
            null, 0, null, 0,
            tableName, ODBC.ShortStringLength(tableName),
            (Int16) ODBC32.SQL_INDEX.UNIQUE, 
            (Int16) ODBC32.SQL_STATISTICS_RESERVED.ENSURE);
            ODBC.TraceODBC(3, "SQLStatisticsW", retcode); 
            return retcode; 
        }
 
        internal ODBC32.RetCode Tables(string tableCatalog,
                                       string tableSchema,
                                       string tableName,
                                       string tableType) { 
            ODBC32.RetCode retcode = UnsafeNativeMethods.SQLTablesW(this,
                                                                    tableCatalog, 
                                                                    ODBC.ShortStringLength(tableCatalog), 
                                                                    tableSchema,
                                                                    ODBC.ShortStringLength(tableSchema), 
                                                                    tableName,
                                                                    ODBC.ShortStringLength(tableName),
                                                                    tableType,
                                                                    ODBC.ShortStringLength(tableType)); 

            ODBC.TraceODBC(3, "SQLTablesW", retcode); 
            return retcode; 
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK