使用ODBC訪問資料庫(二)

來源:互聯網
上載者:User

        使用C/C++語言開發,那麼必定會在與ODBC語言間存在資料的轉換的問題,因為ODBC所存在的一些資料類型在C語言中是不存在的。所以在ODBC的開發過程中不要使用int,float之類的C語言的實際類型來定義變數而應該使用ODBC定義的資料類型來定義變數,如SQLINTEGER,SQLFLOAT。在ODBC以宏定義的方式定義了C語言和ODBC中使用的資料類型:

C type identifier 

ODBC C typedef 

C type

SQL_C_CHAR

SQLCHAR *

unsigned char *

SQL_C_SSHORT

SQLSMALLINT

short int

SQL_C_USHORT

SQLUSMALLINT

unsigned short int

SQL_C_SLONG

SQLINTEGER long int

SQL_C_ULONG

SQLUINTEGER

unsigned long int
SQL_C_FLOAT

SQLREAL

float

SQL_C_DOUBLE

SQLDOUBLE, SQLFLOAT

double

SQL_C_BIT

SQLCHAR

unsigned char
SQL_C_STINYINT

SQLSCHAR

signed char

SQL_C_UTINYINT

SQLCHAR

unsigned char

SQL_C_SBIGINT

SQLBIGINT

_int64

SQL_C_UBIGINT

SQLUBIGINT

unsigned _int64

SQL_C_BINARY

SQLCHAR *

unsigned char *

SQL_C_XML

SQLCHAR *

unsigned char *
SQL_C_BOOKMARK BOOKMARK

unsigned long int

SQL_C_VARBOOKMARK

SQLCHAR *

unsigned char *

SQL_C_TYPE_DATE

SQL_DATE_STRUCT

struct tagDATE_STRUCT
{
        SQLSMALLINT        year; 
        SQLUSMALLINT     month; 
        SQLUSMALLINT     day;
} DATE_STRUCT;

SQL_C_TYPE_TIME

SQL_TIME_STRUCT

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

SQL_C_TYPE_TIMESTAMP

SQL_TIMESTAMP_STRUCT

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

SQL_C_NUMERIC

SQL_NUMERIC_STRUCT

struct tagSQL_NUMERIC_STRUCT
{
         SQLCHAR     precision;
         SQLSCHAR   scale;
         SQLCHAR     sign;
         SQLCHAR     val[SQL_MAX_NUMERIC_LEN];
} SQL_NUMERIC_STRUCT;

SQL_C_GUID

SQLGUID

struct tagSQLGUID {
        DWORD  Data1;
        WORD     Data2;
        WORD     Data3;
        BYTE        Data4[8];
} SQLGUID;

All C interval data types

SQL_INTERVAL_STRUCT

See the "C Interval Structure" section, later in this appendix.



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.