2,828 changes: 1,414 additions & 1,414 deletions etc/c/odbc/sql.d

Large diffs are not rendered by default.

4,308 changes: 2,154 additions & 2,154 deletions etc/c/odbc/sqlext.d

Large diffs are not rendered by default.

368 changes: 184 additions & 184 deletions etc/c/odbc/sqltypes.d
Original file line number Diff line number Diff line change
@@ -1,184 +1,184 @@
/**
Declarations for interfacing with the ODBC library.
Adapted with minimal changes from the work of David L. Davis
(refer to the $(WEB
forum.dlang.org/thread/cfk7ql$(DOLLAR)1p4n$(DOLLAR)1@digitaldaemon.com#post-cfk7ql:241p4n:241:40digitaldaemon.com,
original announcement)).
`etc.c.odbc.sqlext.d` corresponds to the `sqlext.h` C header file.
See_Also: $(LUCKY ODBC API Reference on MSN Online)
*/
module etc.c.odbc.sqltypes;

extern (Windows):

// * API declaration data types *
//alias void *HANDLE;

//alias ubyte SQLCHAR;
alias char SQLCHAR;
alias byte SQLSCHAR;
alias ubyte SQLDATE;
alias ubyte SQLDECIMAL;
alias double SQLDOUBLE;
alias double SQLFLOAT;
alias int SQLINTEGER;
alias ushort SQLUINTEGER;
alias ubyte SQLNUMERIC;
alias float SQLREAL;
alias ubyte SQLTIME;
alias ubyte SQLTIMESTAMP;
alias ubyte SQLVARCHAR;
alias void * SQLPOINTER;
alias short SQLSMALLINT;
alias ushort SQLUSMALLINT;

// * function return type *
alias SQLSMALLINT SQLRETURN;

// * generic data structures *
alias void * SQLHANDLE;
alias SQLHANDLE SQLHENV;
alias SQLHANDLE SQLHDBC;
alias SQLHANDLE SQLHSTMT;
alias SQLHANDLE SQLHDESC;

// * SQL portable types for C *
//alias ubyte UCHAR; // std.c.windows.windows has this alias
//alias char UCHAR;
alias byte SCHAR;
//alias SCHAR SQLSCHAR;
alias uint DWORD;
alias int SDWORD;
alias short SWORD;
alias uint UDWORD;
alias ushort UWORD;
alias short WORD;
//alias UDWORD SQLUINTEGER;
alias long SLONG;
alias short SSHORT;
alias ulong ULONG;
alias ushort USHORT;
alias double SDOUBLE;
alias double LDOUBLE;
alias float SFLOAT;
alias void* PTR;
alias void* HENV;
alias void* HDBC;
alias void* HSTMT;
alias short RETCODE;
alias SQLPOINTER HWND;
alias HWND SQLHWND;

// * transfer types for DATE, TIME, TIMESTAMP *
struct DATE_STRUCT
{
SQLSMALLINT year;
SQLUSMALLINT month;
SQLUSMALLINT day;
};

alias DATE_STRUCT SQL_DATE_STRUCT;

struct TIME_STRUCT
{
SQLUSMALLINT hour;
SQLUSMALLINT minute;
SQLUSMALLINT second;
};

alias TIME_STRUCT SQL_TIME_STRUCT;

struct TIMESTAMP_STRUCT
{
SQLSMALLINT year;
SQLUSMALLINT month;
SQLUSMALLINT day;
SQLUSMALLINT hour;
SQLUSMALLINT minute;
SQLUSMALLINT second;
SQLUINTEGER fraction;
};

alias TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT;

/+
' enumerations for DATETIME_INTERVAL_SUBCODE values for interval data types
' these values are from SQL-92
+/
enum SQLINTERVAL
{
SQL_IS_YEAR = 1,
SQL_IS_MONTH = 2,
SQL_IS_DAY = 3,
SQL_IS_HOUR = 4,
SQL_IS_MINUTE = 5,
SQL_IS_SECOND = 6,
SQL_IS_YEAR_TO_MONTH = 7,
SQL_IS_DAY_TO_HOUR = 8,
SQL_IS_DAY_TO_MINUTE = 9,
SQL_IS_DAY_TO_SECOND = 10,
SQL_IS_HOUR_TO_MINUTE = 11,
SQL_IS_HOUR_TO_SECOND = 12,
SQL_IS_MINUTE_TO_SECOND = 13
}

struct SQL_YEAR_MONTH_STRUCT
{
SQLUINTEGER year;
SQLUINTEGER month;
};

struct SQL_DAY_SECOND_STRUCT
{
SQLUINTEGER day;
SQLUINTEGER hour;
SQLUINTEGER minute;
SQLUINTEGER second;
SQLUINTEGER fraction;
};

struct SQL_INTERVAL_STRUCT
{
SQLINTERVAL interval_type;
SQLSMALLINT interval_sign;

union intval {
SQL_YEAR_MONTH_STRUCT year_month;
SQL_DAY_SECOND_STRUCT day_second;
};
};

// * internal representation of numeric data type *
const int SQL_MAX_NUMERIC_LEN = 16;
struct SQL_NUMERIC_STRUCT
{
SQLCHAR precision;
SQLSCHAR scale;
SQLCHAR sign; /* 1 if positive, 0 if negative */
SQLCHAR[ SQL_MAX_NUMERIC_LEN ] val;
};

/* size is 16 */
struct SQLGUID
{
DWORD Data1;
WORD Data2;
WORD Data3;
ubyte[ 8 ] Data4;
};

alias SQLGUID GUID;
alias uint BOOKMARK;
alias ushort SQLWCHAR;

version( UNICODE )
{
alias SQLWCHAR SQLTCHAR;
}
else
{
alias SQLCHAR SQLTCHAR;
} // end version( UNICODE )
/**
Declarations for interfacing with the ODBC library.
Adapted with minimal changes from the work of David L. Davis
(refer to the $(WEB
forum.dlang.org/thread/cfk7ql$(DOLLAR)1p4n$(DOLLAR)1@digitaldaemon.com#post-cfk7ql:241p4n:241:40digitaldaemon.com,
original announcement)).
`etc.c.odbc.sqlext.d` corresponds to the `sqlext.h` C header file.
See_Also: $(LUCKY ODBC API Reference on MSN Online)
*/
module etc.c.odbc.sqltypes;

extern (Windows):

// * API declaration data types *
//alias void *HANDLE;

//alias ubyte SQLCHAR;
alias char SQLCHAR;
alias byte SQLSCHAR;
alias ubyte SQLDATE;
alias ubyte SQLDECIMAL;
alias double SQLDOUBLE;
alias double SQLFLOAT;
alias int SQLINTEGER;
alias ushort SQLUINTEGER;
alias ubyte SQLNUMERIC;
alias float SQLREAL;
alias ubyte SQLTIME;
alias ubyte SQLTIMESTAMP;
alias ubyte SQLVARCHAR;
alias void * SQLPOINTER;
alias short SQLSMALLINT;
alias ushort SQLUSMALLINT;

// * function return type *
alias SQLSMALLINT SQLRETURN;

// * generic data structures *
alias void * SQLHANDLE;
alias SQLHANDLE SQLHENV;
alias SQLHANDLE SQLHDBC;
alias SQLHANDLE SQLHSTMT;
alias SQLHANDLE SQLHDESC;

// * SQL portable types for C *
//alias ubyte UCHAR; // std.c.windows.windows has this alias
//alias char UCHAR;
alias byte SCHAR;
//alias SCHAR SQLSCHAR;
alias uint DWORD;
alias int SDWORD;
alias short SWORD;
alias uint UDWORD;
alias ushort UWORD;
alias short WORD;
//alias UDWORD SQLUINTEGER;
alias long SLONG;
alias short SSHORT;
alias ulong ULONG;
alias ushort USHORT;
alias double SDOUBLE;
alias double LDOUBLE;
alias float SFLOAT;
alias void* PTR;
alias void* HENV;
alias void* HDBC;
alias void* HSTMT;
alias short RETCODE;
alias SQLPOINTER HWND;
alias HWND SQLHWND;

// * transfer types for DATE, TIME, TIMESTAMP *
struct DATE_STRUCT
{
SQLSMALLINT year;
SQLUSMALLINT month;
SQLUSMALLINT day;
};

alias DATE_STRUCT SQL_DATE_STRUCT;

struct TIME_STRUCT
{
SQLUSMALLINT hour;
SQLUSMALLINT minute;
SQLUSMALLINT second;
};

alias TIME_STRUCT SQL_TIME_STRUCT;

struct TIMESTAMP_STRUCT
{
SQLSMALLINT year;
SQLUSMALLINT month;
SQLUSMALLINT day;
SQLUSMALLINT hour;
SQLUSMALLINT minute;
SQLUSMALLINT second;
SQLUINTEGER fraction;
};

alias TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT;

/+
' enumerations for DATETIME_INTERVAL_SUBCODE values for interval data types
' these values are from SQL-92
+/
enum SQLINTERVAL
{
SQL_IS_YEAR = 1,
SQL_IS_MONTH = 2,
SQL_IS_DAY = 3,
SQL_IS_HOUR = 4,
SQL_IS_MINUTE = 5,
SQL_IS_SECOND = 6,
SQL_IS_YEAR_TO_MONTH = 7,
SQL_IS_DAY_TO_HOUR = 8,
SQL_IS_DAY_TO_MINUTE = 9,
SQL_IS_DAY_TO_SECOND = 10,
SQL_IS_HOUR_TO_MINUTE = 11,
SQL_IS_HOUR_TO_SECOND = 12,
SQL_IS_MINUTE_TO_SECOND = 13
}

struct SQL_YEAR_MONTH_STRUCT
{
SQLUINTEGER year;
SQLUINTEGER month;
};

struct SQL_DAY_SECOND_STRUCT
{
SQLUINTEGER day;
SQLUINTEGER hour;
SQLUINTEGER minute;
SQLUINTEGER second;
SQLUINTEGER fraction;
};

struct SQL_INTERVAL_STRUCT
{
SQLINTERVAL interval_type;
SQLSMALLINT interval_sign;

union intval {
SQL_YEAR_MONTH_STRUCT year_month;
SQL_DAY_SECOND_STRUCT day_second;
};
};

// * internal representation of numeric data type *
const int SQL_MAX_NUMERIC_LEN = 16;
struct SQL_NUMERIC_STRUCT
{
SQLCHAR precision;
SQLSCHAR scale;
SQLCHAR sign; /* 1 if positive, 0 if negative */
SQLCHAR[ SQL_MAX_NUMERIC_LEN ] val;
};

/* size is 16 */
struct SQLGUID
{
DWORD Data1;
WORD Data2;
WORD Data3;
ubyte[ 8 ] Data4;
};

alias SQLGUID GUID;
alias uint BOOKMARK;
alias ushort SQLWCHAR;

version( UNICODE )
{
alias SQLWCHAR SQLTCHAR;
}
else
{
alias SQLCHAR SQLTCHAR;
} // end version( UNICODE )
944 changes: 472 additions & 472 deletions etc/c/odbc/sqlucode.d

Large diffs are not rendered by default.