| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- //
- // System.Data.Odbc.libodbc
- //
- // Authors:
- // Brian Ritchie ([email protected])
- //
- //
- // Copyright (C) Brian Ritchie, 2002
- //
- //
- using System.Data;
- using System.Data.Common;
- using System.Runtime.InteropServices;
- namespace System.Data.Odbc
- {
- internal enum OdbcHandleType : ushort {
- Env = 1,
- Dbc = 2,
- Stmt = 3,
- Desc = 4
- };
- internal enum OdbcReturn : short {
- Error = -1,
- InvalidHandle = -2,
- StillExecuting = 2,
- NeedData = 99,
- Success = 0,
- SuccessWithInfo = 1,
- NoData=100
- }
- internal enum OdbcEnv : ushort {
- OdbcVersion = 200,
- ConnectionPooling = 201,
- CPMatch = 202
- }
- [StructLayout(LayoutKind.Sequential)]
- internal struct OdbcTimestamp
- {
- public short year;
- public ushort month;
- public ushort day;
- public ushort hour;
- public ushort minute;
- public ushort second;
- public ulong fraction;
- }
-
- // sealed internal class libodbc
- internal class libodbc
- {
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLAllocHandle (OdbcHandleType HandleType, IntPtr InputHandle, ref IntPtr OutputHandlePtr);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLSetEnvAttr (IntPtr EnvHandle, OdbcEnv Attribute, IntPtr Value, int StringLength);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLConnect (IntPtr ConnectionHandle, string ServerName, short NameLength1, string UserName, short NameLength2, string Authentication, short NameLength3);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLDriverConnect(IntPtr ConnectionHandle, IntPtr WindowHandle, string InConnectionString, short StringLength1, string OutConnectionString, short BufferLength, ref short StringLength2Ptr, ushort DriverCompletion);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLExecDirect (IntPtr StatementHandle, string StatementText, int TextLength);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLRowCount (IntPtr StatementHandle, ref int RowCount);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLNumResultCols (IntPtr StatementHandle, ref short ColumnCount);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLFetch (IntPtr StatementHandle);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLGetData (IntPtr StatementHandle, ushort ColumnNumber, OdbcType TargetType, ref bool TargetPtr, int BufferLen, ref int Len);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLGetData (IntPtr StatementHandle, ushort ColumnNumber, OdbcType TargetType, ref double TargetPtr, int BufferLen, ref int Len);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLGetData (IntPtr StatementHandle, ushort ColumnNumber, OdbcType TargetType, ref long TargetPtr, int BufferLen, ref int Len);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLGetData (IntPtr StatementHandle, ushort ColumnNumber, OdbcType TargetType, ref short TargetPtr, int BufferLen, ref int Len);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLGetData (IntPtr StatementHandle, ushort ColumnNumber, OdbcType TargetType, ref float TargetPtr, int BufferLen, ref int Len);
-
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLGetData (IntPtr StatementHandle, ushort ColumnNumber, OdbcType TargetType, ref OdbcTimestamp TargetPtr, int BufferLen, ref int Len);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLGetData (IntPtr StatementHandle, ushort ColumnNumber, OdbcType TargetType, ref int TargetPtr, int BufferLen, ref int Len);
-
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLGetData (IntPtr StatementHandle, ushort ColumnNumber, OdbcType TargetType, byte[] TargetPtr, int BufferLen, ref int Len);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLDescribeCol(IntPtr StatementHandle, ushort ColumnNumber, byte[] ColumnName, short BufferLength, ref short NameLength, ref OdbcType DataType, ref short ColumnSize, ref short DecimalDigits, ref short Nullable);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLFreeHandle(ushort HandleType, IntPtr SqlHandle);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLDisconnect(IntPtr ConnectionHandle);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLPrepare(IntPtr StatementHandle, string Statement, int TextLength);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLExecute(IntPtr StatementHandle);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLSetConnectAttr(IntPtr ConnectionHandle, int Attribute, uint Value, int Length);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLEndTran(int HandleType, IntPtr Handle, short CompletionType);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLBindParam(IntPtr StatementHandle, short ParamNum, short ValueType,
- short ParamType, int LenPrecision, short ParamScale, ref int ParamValue, int StrLen);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLBindParam(IntPtr StatementHandle, short ParamNum, short ValueType,
- short ParamType, int LenPrecision, short ParamScale, byte[] ParamValue, int StrLen);
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLCancel(IntPtr StatementHandle);
-
- [DllImport("odbc32.dll")]
- public static extern OdbcReturn SQLCloseCursor(IntPtr StatementHandle);
- }
- }
|