日期:2014-05-16  浏览次数:20688 次

链接ODBC的链接库时出问题
我的代码如下:
#include   <stdio.h>
#include   <stdlib.h>
#include   <string.h>
#include   <sql.h>
#include   <sqlext.h>

void
check_return   (RETCODE   rc,
                            HENV   henv,
                            HDBC   hdbc,
                            HSTMT   hstmt   )
{
    UCHAR   state_str   [SQL_MAX_MESSAGE_LENGTH];
    SDWORD   native_error;
    UCHAR     error_msg   [SQL_MAX_MESSAGE_LENGTH];
    SWORD     error_msg_avail   =   SQL_MAX_MESSAGE_LENGTH   -   1;
    SWORD     error_msg_len;
    RETCODE   local_rc;

    if   (rc   !=   SQL_ERROR   &&   rc   !=   SQL_SUCCESS_WITH_INFO   )
    {
        return;
    }


    local_rc   =   SQL_Error   (henv,hdbc,hstmt,state_str,&native_error,error_msg,error_msg_avail,&error_msg_len);
    if   (local_rc   !=   SQL_SUCCESS   &&   rc   !=SQL_SUCCESS_WITH_INFO)
    {
        fprintf(stderr, "Uninterpretable   error;   exiting   \n ");
        exit   (EXIT_FAILURE);
    }

    if   (rc   ==   SQL_SUCCESS_WITH_INFO)
    {
        fprintf(stderr, "Fatal   Error   %s:   %s\n ",   state_str,error_msg);
        return;
    }

      fprintf(stderr, "Fatal   Error   %s:   %s\n ",state_str,error_msg);
      exit   (EXIT_FAILURE);
}

/*----------------------------------*/
int   main   (void)
{
        HENV   henv   =   SQL_NULL_HENV;
        HDBC   hdbc   =   SQL_NULL_HDBC;
        HSTMT   hstmt   =   SQL_NULL_HSTMT;
        RETCODE   rc;

        char   buf[257];
        short   buflen;

        printf   ( "Initialize   the   environment   structure.\n ");
        SQLAllocEnv   (&henv);

        printf   ( "Initialize   the   connection   structure.\n ");
        SQLAllocConnect   (henv,&hdbc);

        printf( "Load   the   ODBC   driver.\n ");
        rc   =   SQLDriverConnect   (hdbc,0, "DSN=pdmtest;UID=nate;PWD=nate ",SQL_NTS,(UCHAR*)   buf,sizeof   (buf),&buflen,SQL_DRIVER_COMPLETE);
        check_return   (rc,henv,hdbc,hstmt);

        printf   ( "Initialize   the   statement   structur