OleDbStruct.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / OleDb / OleDbStruct.cs / 1305376 / OleDbStruct.cs

                            //------------------------------------------------------------------------------ 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
// [....]
//----------------------------------------------------------------------------- 
 
namespace System.Data.OleDb {
 
    using System;
    using System.Runtime.InteropServices;

#if DEBUG 
    using System.Diagnostics;
    using System.Globalization; 
    using System.Text; 
#endif
 
    internal enum DBBindStatus {
        OK = 0,
        BADORDINAL = 1,
        UNSUPPORTEDCONVERSION = 2, 
        BADBINDINFO = 3,
        BADSTORAGEFLAGS = 4, 
        NOINTERFACE = 5, 
        MULTIPLESTORAGE = 6
    } 

#if false
    typedef struct tagDBPARAMBINDINFO {
        LPOLESTR pwszDataSourceType; 
        LPOLESTR pwszName;
        DBLENGTH ulParamSize; 
        DBPARAMFLAGS dwFlags; 
        BYTE bPrecision;
        BYTE bScale; 
    }
#endif

#if WIN32 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 2)]
#else 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 8)] 
#endif
    internal struct tagDBPARAMBINDINFO { 
        internal IntPtr pwszDataSourceType;
        internal IntPtr pwszName;
        internal IntPtr ulParamSize;
        internal Int32 dwFlags; 
        internal Byte bPrecision;
        internal Byte bScale; 
 
#if DEBUG
        public override string ToString() { 
            StringBuilder builder = new StringBuilder();
            builder.Append("tagDBPARAMBINDINFO").Append(Environment.NewLine);
            if (IntPtr.Zero != pwszDataSourceType) {
                builder.Append("pwszDataSourceType =").Append(Marshal.PtrToStringUni(pwszDataSourceType)).Append(Environment.NewLine); 
            }
            builder.Append("\tulParamSize  =" + ulParamSize.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\tdwFlags     =0x" + dwFlags.ToString("X4", CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\tPrecision   =" + bPrecision.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\tScale       =" + bScale.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            return builder.ToString();
        }
#endif
    } 

#if false 
    typedef struct tagDBBINDING { 
        DBORDINAL iOrdinal;
        DBBYTEOFFSET obValue; 
        DBBYTEOFFSET obLength;
        DBBYTEOFFSET obStatus;
        ITypeInfo *pTypeInfo;
        DBOBJECT *pObject; 
        DBBINDEXT *pBindExt;
        DBPART dwPart; 
        DBMEMOWNER dwMemOwner; 
        DBPARAMIO eParamIO;
        DBLENGTH cbMaxLen; 
        DWORD dwFlags;
        DBTYPE wType;
        BYTE bPrecision;
        BYTE bScale; 
    }
#endif 
 
#if WIN32
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 2)] 
#else
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 8)]
#endif
    internal sealed class tagDBBINDING { 

        internal IntPtr iOrdinal; 
        internal IntPtr obValue; 
        internal IntPtr obLength;
        internal IntPtr obStatus; 

        internal IntPtr pTypeInfo;
        internal IntPtr pObject;
        internal IntPtr pBindExt; 

        internal Int32 dwPart; 
        internal Int32 dwMemOwner; 
        internal Int32 eParamIO;
 
        internal IntPtr cbMaxLen;

        internal Int32 dwFlags;
        internal Int16 wType; 
        internal byte  bPrecision;
        internal byte  bScale; 
 
        internal tagDBBINDING() {
        } 

#if DEBUG
        public override string ToString() {
            StringBuilder builder = new StringBuilder(); 
            builder.Append("tagDBBINDING").Append(Environment.NewLine);
            builder.Append("\tOrdinal     =" + iOrdinal.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\tValueOffset =" + obValue.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\tLengthOffset=" + obLength.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\tStatusOffset=" + obStatus.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\tMaxLength   =" + cbMaxLen.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\tDB_Type     =" + ODB.WLookup(wType)).Append(Environment.NewLine);
            builder.Append("\tPrecision   =" + bPrecision.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\tScale       =" + bScale.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            return builder.ToString();
        } 
#endif 
    }
 
#if false
    typedef struct tagDBCOLUMNACCESS {
        void *pData;
        DBID columnid; 
        DBLENGTH cbDataLen;
        DBSTATUS dwStatus; 
        DBLENGTH cbMaxLen; 
        DB_DWRESERVE dwReserved;
        DBTYPE wType; 
        BYTE bPrecision;
        BYTE bScale;
    }
#endif 

#if WIN32 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 2)] 
#else
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 8)] 
#endif
    internal struct tagDBCOLUMNACCESS {

        internal IntPtr pData; 
        internal tagDBIDX columnid;
        internal IntPtr cbDataLen; 
        internal Int32 dwStatus; 
        internal IntPtr cbMaxLen;
        internal IntPtr dwReserved; 
        internal Int16 wType;
        internal Byte bPrecision;
        internal Byte bScale;
    } 

#if false 
    typedef struct tagDBID { 
    /* [switch_is][switch_type] */ union {
        /* [case()] */ GUID guid; 
        /* [case()] */ GUID *pguid;
        /* [default] */  /* Empty union arm */
        }   uGuid;
    DBKIND eKind; 
    /* [switch_is][switch_type] */ union  {
        /* [case()] */ LPOLESTR pwszName; 
        /* [case()] */ ULONG ulPropid; 
        /* [default] */  /* Empty union arm */
        }   uName; 
    }
#endif

#if WIN32 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 2)]
#else 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 8)] 
#endif
    internal struct tagDBIDX { 
        internal Guid uGuid;
        internal Int32 eKind;
        internal IntPtr ulPropid;
    } 

#if WIN32 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 2)] 
#else
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 8)] 
#endif
    internal sealed class tagDBID {
        internal Guid uGuid;
        internal Int32 eKind; 
        internal IntPtr ulPropid;
    } 
 
#if false
    typedef struct tagDBLITERALINFO { 
        LPOLESTR pwszLiteralValue;
        LPOLESTR pwszInvalidChars;
        LPOLESTR pwszInvalidStartingChars;
        DBLITERAL lt; 
        BOOL fSupported;
        ULONG cchMaxLen; 
    } 
#endif
#if WIN32 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 2)]
#else
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 8)]
#endif 
    sealed internal class tagDBLITERALINFO {
 
        [MarshalAs(UnmanagedType.LPWStr)] 
        internal String pwszLiteralValue = null;
 
        [MarshalAs(UnmanagedType.LPWStr)]
        internal String pwszInvalidChars = null;

        [MarshalAs(UnmanagedType.LPWStr)] 
        internal String pwszInvalidStartingChars = null;
 
        internal Int32 it; 

        internal Int32 fSupported; 

        internal Int32 cchMaxLen;

        internal tagDBLITERALINFO() { 
        }
    } 
 
#if false
    typedef struct tagDBPROPSET { 
        /* [size_is] */ DBPROP *rgProperties;
        ULONG cProperties;
        GUID guidPropertySet;
    } 
#endif
#if WIN32 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 2)] 
#else
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 8)] 
#endif
    sealed internal class tagDBPROPSET {
        internal IntPtr rgProperties;
        internal Int32 cProperties; 
        internal Guid guidPropertySet;
 
        internal tagDBPROPSET() { 
        }
 
        internal tagDBPROPSET(int propertyCount, Guid propertySet) {
            cProperties = propertyCount;
            guidPropertySet = propertySet;
        } 
    }
 
#if false 
    typedef struct tagDBPROP {
        DBPROPID dwPropertyID; 
        DBPROPOPTIONS dwOptions;
        DBPROPSTATUS dwStatus;
        DBID colid;
        VARIANT vValue; 
    }
#endif 
#if WIN32 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 2)]
#else 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 8)]
#endif
    sealed internal class tagDBPROP {
        internal Int32 dwPropertyID; 
        internal Int32 dwOptions;
        internal OleDbPropertyStatus dwStatus; 
 
        internal tagDBIDX columnid;
 
        // Variant
        [MarshalAs(UnmanagedType.Struct)] internal object vValue;

        internal tagDBPROP() { 
        }
 
        internal tagDBPROP(int propertyID, bool required, object value) { 
            dwPropertyID = propertyID;
            dwOptions = ((required) ? ODB.DBPROPOPTIONS_REQUIRED : ODB.DBPROPOPTIONS_OPTIONAL); 
            vValue = value;
        }
    }
 
#if false
    typedef struct tagDBPARAMS { 
        void *pData; 
        DB_UPARAMS cParamSets;
        HACCESSOR hAccessor; 
    }
#endif
#if WIN32
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 2)] 
#else
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 8)] 
#endif 
    sealed internal class tagDBPARAMS {
        internal IntPtr pData; 
        internal Int32 cParamSets;
        internal IntPtr hAccessor;

        internal tagDBPARAMS() { 
        }
    } 
 
#if false
    typedef struct tagDBCOLUMNINFO { 
        LPOLESTR pwszName;
        ITypeInfo *pTypeInfo;
        DBORDINAL iOrdinal;
        DBCOLUMNFLAGS dwFlags; 
        DBLENGTH ulColumnSize;
        DBTYPE wType; 
        BYTE bPrecision; 
        BYTE bScale;
        DBID columnid; 
    }
#endif
#if WIN32
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 2)] 
#else
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 8)] 
#endif 
    sealed internal class tagDBCOLUMNINFO {
 
        [MarshalAs(UnmanagedType.LPWStr)]
        internal String pwszName = null;

        //[MarshalAs(UnmanagedType.Interface)] 
        internal IntPtr pTypeInfo = (IntPtr) 0;
 
        internal IntPtr iOrdinal = (IntPtr) 0; 

        internal Int32 dwFlags = 0; 

        internal IntPtr ulColumnSize = (IntPtr) 0;

        internal Int16 wType = 0; 

        internal Byte bPrecision = 0; 
 
        internal Byte bScale = 0;
 
        internal tagDBIDX columnid;

        internal tagDBCOLUMNINFO() {
        } 
#if DEBUG
        public override string ToString() { 
            StringBuilder builder = new StringBuilder(); 
            builder.Append("tagDBCOLUMNINFO: " + Convert.ToString(pwszName, CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\t" + iOrdinal.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\t" + "0x" + dwFlags.ToString("X8", CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\t" + ulColumnSize.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\t" + "0x" + wType.ToString("X2", CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\t" + bPrecision.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\t" + bScale.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\t" + columnid.eKind.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            return builder.ToString(); 
        }
#endif 
    }

#if false
    typedef struct tagDBPROPINFOSET { 
        /* [size_is] */ PDBPROPINFO rgPropertyInfos;
        ULONG cPropertyInfos; 
        GUID guidPropertySet; 
    }
#endif 
#if WIN32
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 2)]
#else
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 8)] 
#endif
    sealed internal class tagDBPROPINFOSET { 
 
        internal IntPtr rgPropertyInfos;
        internal Int32 cPropertyInfos; 
        internal Guid guidPropertySet;

        internal tagDBPROPINFOSET() {
        } 
    }
 
#if false 
    typedef struct tagDBPROPINFO {
        LPOLESTR pwszDescription; 
        DBPROPID dwPropertyID;
        DBPROPFLAGS dwFlags;
        VARTYPE vtType;
        VARIANT vValues; 
    }
#endif 
#if WIN32 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 2)]
#else 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 8)]
#endif
    sealed internal class tagDBPROPINFO {
 
        [MarshalAs(UnmanagedType.LPWStr)] internal string pwszDescription;
 
        internal Int32 dwPropertyID; 
        internal Int32 dwFlags;
 
        internal Int16 vtType;

        [MarshalAs(UnmanagedType.Struct)] internal object vValue;
 
        internal tagDBPROPINFO() {
        } 
    } 

#if false 
    typedef struct tagDBPROPIDSET {
        /* [size_is] */ DBPROPID *rgPropertyIDs;
        ULONG cPropertyIDs;
        GUID guidPropertySet; 
    }
#endif 
#if WIN32 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 2)]
#else 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack = 8)]
#endif
    internal struct tagDBPROPIDSET {
        internal IntPtr rgPropertyIDs; 
        internal Int32 cPropertyIDs;
        internal Guid guidPropertySet; 
    } 
}
 

// 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