|
|
@@ -15,7 +15,7 @@ using System.Runtime.InteropServices;
|
|
|
|
|
|
namespace System.Data.Odbc
|
|
|
{
|
|
|
- internal enum OdbcHandleType : ushort {
|
|
|
+ internal enum OdbcHandleType : short {
|
|
|
Env = 1,
|
|
|
Dbc = 2,
|
|
|
Stmt = 3,
|
|
|
@@ -38,103 +38,155 @@ namespace System.Data.Odbc
|
|
|
CPMatch = 202
|
|
|
}
|
|
|
|
|
|
+ internal enum OdbcConnectionAttribute : int
|
|
|
+ {
|
|
|
+ AutoCommit=102,
|
|
|
+ TransactionIsolation=108
|
|
|
+ }
|
|
|
+
|
|
|
+ internal enum OdbcInputOutputDirection : short
|
|
|
+ {
|
|
|
+ Input=1,
|
|
|
+ InputOutput=2,
|
|
|
+ ResultCol=3,
|
|
|
+ Output=4,
|
|
|
+ ReturnValue=5
|
|
|
+ }
|
|
|
+
|
|
|
[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;
|
|
|
+ internal short year;
|
|
|
+ internal ushort month;
|
|
|
+ internal ushort day;
|
|
|
+ internal ushort hour;
|
|
|
+ internal ushort minute;
|
|
|
+ internal ushort second;
|
|
|
+ internal ulong fraction;
|
|
|
}
|
|
|
|
|
|
|
|
|
// sealed internal class libodbc
|
|
|
internal class libodbc
|
|
|
{
|
|
|
+ internal static OdbcInputOutputDirection ConvertParameterDirection(
|
|
|
+ ParameterDirection dir)
|
|
|
+ {
|
|
|
+ switch (dir)
|
|
|
+ {
|
|
|
+ case ParameterDirection.Input:
|
|
|
+ return OdbcInputOutputDirection.Input;
|
|
|
+ case ParameterDirection.InputOutput:
|
|
|
+ return OdbcInputOutputDirection.InputOutput;
|
|
|
+ case ParameterDirection.Output:
|
|
|
+ return OdbcInputOutputDirection.Output;
|
|
|
+ case ParameterDirection.ReturnValue:
|
|
|
+ return OdbcInputOutputDirection.ReturnValue;
|
|
|
+ default:
|
|
|
+ return OdbcInputOutputDirection.Input;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
[DllImport("odbc32.dll")]
|
|
|
- public static extern OdbcReturn SQLAllocHandle (OdbcHandleType HandleType, IntPtr InputHandle, ref IntPtr OutputHandlePtr);
|
|
|
+ internal 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);
|
|
|
+ internal 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);
|
|
|
+ internal 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);
|
|
|
+ internal 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);
|
|
|
+ internal static extern OdbcReturn SQLExecDirect (IntPtr StatementHandle, string StatementText, int TextLength);
|
|
|
|
|
|
[DllImport("odbc32.dll")]
|
|
|
- public static extern OdbcReturn SQLRowCount (IntPtr StatementHandle, ref int RowCount);
|
|
|
+ internal static extern OdbcReturn SQLRowCount (IntPtr StatementHandle, ref int RowCount);
|
|
|
|
|
|
[DllImport("odbc32.dll")]
|
|
|
- public static extern OdbcReturn SQLNumResultCols (IntPtr StatementHandle, ref short ColumnCount);
|
|
|
+ internal static extern OdbcReturn SQLNumResultCols (IntPtr StatementHandle, ref short ColumnCount);
|
|
|
|
|
|
[DllImport("odbc32.dll")]
|
|
|
- public static extern OdbcReturn SQLFetch (IntPtr StatementHandle);
|
|
|
+ internal 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);
|
|
|
+ internal 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);
|
|
|
+ internal 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);
|
|
|
+ internal 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);
|
|
|
+ internal 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);
|
|
|
+ internal 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);
|
|
|
+ internal 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);
|
|
|
+ internal 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);
|
|
|
+ internal 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 short DataType, ref short ColumnSize, ref short DecimalDigits, ref short Nullable);
|
|
|
+ internal static extern OdbcReturn SQLDescribeCol(IntPtr StatementHandle, ushort ColumnNumber, byte[] ColumnName, short BufferLength, ref short NameLength, ref short DataType, ref short ColumnSize, ref short DecimalDigits, ref short Nullable);
|
|
|
|
|
|
[DllImport("odbc32.dll")]
|
|
|
- public static extern OdbcReturn SQLFreeHandle(ushort HandleType, IntPtr SqlHandle);
|
|
|
+ internal static extern OdbcReturn SQLFreeHandle(ushort HandleType, IntPtr SqlHandle);
|
|
|
|
|
|
[DllImport("odbc32.dll")]
|
|
|
- public static extern OdbcReturn SQLDisconnect(IntPtr ConnectionHandle);
|
|
|
+ internal static extern OdbcReturn SQLDisconnect(IntPtr ConnectionHandle);
|
|
|
|
|
|
[DllImport("odbc32.dll")]
|
|
|
- public static extern OdbcReturn SQLPrepare(IntPtr StatementHandle, string Statement, int TextLength);
|
|
|
+ internal static extern OdbcReturn SQLPrepare(IntPtr StatementHandle, string Statement, int TextLength);
|
|
|
|
|
|
[DllImport("odbc32.dll")]
|
|
|
- public static extern OdbcReturn SQLExecute(IntPtr StatementHandle);
|
|
|
+ internal static extern OdbcReturn SQLExecute(IntPtr StatementHandle);
|
|
|
|
|
|
[DllImport("odbc32.dll")]
|
|
|
- public static extern OdbcReturn SQLSetConnectAttr(IntPtr ConnectionHandle, int Attribute, uint Value, int Length);
|
|
|
+ internal static extern OdbcReturn SQLSetConnectAttr(IntPtr ConnectionHandle, OdbcConnectionAttribute Attribute, IntPtr Value, int Length);
|
|
|
|
|
|
[DllImport("odbc32.dll")]
|
|
|
- public static extern OdbcReturn SQLEndTran(int HandleType, IntPtr Handle, short CompletionType);
|
|
|
+ internal 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);
|
|
|
+ internal static extern OdbcReturn SQLBindParameter(IntPtr StatementHandle, ushort ParamNum,
|
|
|
+ short InputOutputType, short ValueType, short ParamType, uint ColSize,
|
|
|
+ short DecimalDigits, byte[] ParamValue, int BufLen, 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);
|
|
|
+ internal static extern OdbcReturn SQLBindParameter(IntPtr StatementHandle, ushort ParamNum,
|
|
|
+ short InputOutputType, short ValueType, short ParamType, uint ColSize,
|
|
|
+ short DecimalDigits, ref int ParamValue, int BufLen, int StrLen);
|
|
|
|
|
|
[DllImport("odbc32.dll")]
|
|
|
- public static extern OdbcReturn SQLCancel(IntPtr StatementHandle);
|
|
|
+ internal static extern OdbcReturn SQLCancel(IntPtr StatementHandle);
|
|
|
|
|
|
[DllImport("odbc32.dll")]
|
|
|
- public static extern OdbcReturn SQLCloseCursor(IntPtr StatementHandle);
|
|
|
+ internal static extern OdbcReturn SQLCloseCursor(IntPtr StatementHandle);
|
|
|
+
|
|
|
+ [DllImport("odbc32.dll")]
|
|
|
+ internal static extern OdbcReturn SQLError(IntPtr EnvironmentHandle,
|
|
|
+ IntPtr ConnectionHandle, IntPtr StatementHandle,
|
|
|
+ byte[] Sqlstate, ref int NativeError,
|
|
|
+ byte[] MessageText, short BufferLength,
|
|
|
+ ref short TextLength);
|
|
|
+
|
|
|
+ [DllImport("odbc32.dll")]
|
|
|
+ internal static extern OdbcReturn SQLGetStmtAttr(IntPtr StatementHandle,
|
|
|
+ int Attribute, ref IntPtr Value, int BufLen, int StrLen);
|
|
|
+
|
|
|
+ [DllImport("odbc32.dll")]
|
|
|
+ internal static extern OdbcReturn SQLSetDescField(IntPtr DescriptorHandle,
|
|
|
+ short RecNumber, short FieldIdentifier, byte[] Value, int BufLen);
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
}
|