| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- //
- // 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 {
- Env = 1,
- Dbc = 2,
- Stmt = 3,
- Desc = 4
- };
- internal enum OdbcReturn {
- Error = -1,
- InvalidHandle = -2,
- StillExecuting = 2,
- NeedData = 99,
- Success = 0,
- SuccessWithInfo = 1
- }
- internal enum OdbcEnv {
- OdbcVersion = 200,
- ConnectionPooling = 201,
- CPMatch = 202
- }
- [StructLayout(LayoutKind.Sequential)]
- public 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
- {
- public static void DisplayError(string Msg, OdbcReturn Ret)
- {
- if ((Ret!=OdbcReturn.Success) && (Ret!=OdbcReturn.SuccessWithInfo)) {
- Console.WriteLine("ERROR: {0}: <{1}>",Msg,Ret);
- }
- }
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLAllocHandle (ushort HandleType, int
- InputHandle, ref int OutputHandlePtr);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLSetEnvAttr (int EnvHandle, ushort
- Attribute, IntPtr Value, int StringLength);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLConnect (int ConnectionHandle, string
- ServerName, short NameLength1, string UserName, short NameLength2, string
- Authentication, short NameLength3);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLExecDirect (int StatementHandle, string
- StatementText, int TextLength);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLRowCount (int StatementHandle, ref int
- RowCount);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLNumResultCols (int StatementHandle, ref
- short ColumnCount);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLFetch (int StatementHandle);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLGetData (int StatementHandle, ushort
- ColumnNumber, short TargetType, ref int TargetPtr, int BufferLen, ref int
- Len);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLGetData (int StatementHandle, ushort
- ColumnNumber, short TargetType, byte[] TargetPtr, int BufferLen, ref int
- Len);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLGetData (int StatementHandle, ushort
- ColumnNumber, short TargetType, ref float TargetPtr, int BufferLen, ref int
- Len);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLGetData (int StatementHandle, ushort
- ColumnNumber, short TargetType, ref OdbcTimestamp TargetPtr, int BufferLen,
- ref int Len);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLDescribeCol(int StatmentHandle, ushort
- ColumnNumber, byte[] ColumnName, short BufferLength, ref short NameLength,
- ref short DataType, ref short ColumnSize, ref short DecimalDigits, ref short
- Nullable);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLFreeHandle(ushort HandleType, int
- SqlHandle);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLDisconnect(int ConnectionHandle);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLPrepare(int StatementHandle, string
- Statement, int TextLength);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLExecute(int StatementHandle);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLSetConnectAttr(int ConnectionHandle,
- int Attribute, uint Value, int Length);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLEndTran(int HandleType, int Handle,
- short CompletionType);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLBindParam(int StatementHandle, short
- ParamNum, short ValueType,
- short ParamType, int LenPrecision, short ParamScale, ref int ParamValue,
- int StrLen);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLBindParam(int StatementHandle, short
- ParamNum, short ValueType,
- short ParamType, int LenPrecision, short ParamScale, byte[] ParamValue,
- int StrLen);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLCancel(int StatementHandle);
- [DllImport("libodbc")]
- public static extern OdbcReturn SQLCloseCursor(int StatementHandle);
- }
- }
|