Could not determine kind of name for C.SQL_C_WCHAR


(ravuri sai ram akhil) #1

Error:- api_unix.go:91:25: could not determine kind of name for C.SQL_C_WCHAR

MyCode:-

// +build !windows
// +build cgo

package api

// #cgo darwin LDFLAGS: -ldb2
// #cgo linux LDFLAGS: -ldb2
//#include<sqlcli.h>
import "C"

const (
        SQL_OV_ODBC3 = uintptr(C.SQL_OV_ODBC3)

        SQL_ATTR_ODBC_VERSION = C.SQL_ATTR_ODBC_VERSION

        SQL_DRIVER_NOPROMPT = C.SQL_DRIVER_NOPROMPT

        SQL_HANDLE_ENV  = C.SQL_HANDLE_ENV
        SQL_HANDLE_DBC  = C.SQL_HANDLE_DBC
        SQL_HANDLE_STMT = C.SQL_HANDLE_STMT

        SQL_SUCCESS            = C.SQL_SUCCESS
        SQL_SUCCESS_WITH_INFO  = C.SQL_SUCCESS_WITH_INFO
        SQL_INVALID_HANDLE     = C.SQL_INVALID_HANDLE
        SQL_NO_DATA            = C.SQL_NO_DATA
        SQL_NO_TOTAL           = C.SQL_NO_TOTAL
        SQL_NTS                = C.SQL_NTS
        SQL_MAX_MESSAGE_LENGTH = C.SQL_MAX_MESSAGE_LENGTH
        SQL_NULL_HANDLE        = uintptr(C.SQL_NULL_HANDLE)
        SQL_NULL_HENV          = uintptr(C.SQL_NULL_HENV)
        SQL_NULL_HDBC          = uintptr(C.SQL_NULL_HDBC)
        SQL_NULL_HSTMT         = uintptr(C.SQL_NULL_HSTMT)

        SQL_PARAM_INPUT = C.SQL_PARAM_INPUT

        SQL_NULL_DATA    = C.SQL_NULL_DATA
        SQL_DATA_AT_EXEC = C.SQL_DATA_AT_EXEC

        SQL_UNKNOWN_TYPE    = C.SQL_UNKNOWN_TYPE
        SQL_CHAR            = C.SQL_CHAR
        SQL_NUMERIC         = C.SQL_NUMERIC
        SQL_DECIMAL         = C.SQL_DECIMAL
        SQL_INTEGER         = C.SQL_INTEGER
        SQL_SMALLINT        = C.SQL_SMALLINT
        SQL_FLOAT           = C.SQL_FLOAT
        SQL_REAL            = C.SQL_REAL
        SQL_DOUBLE          = C.SQL_DOUBLE
        SQL_DATETIME        = C.SQL_DATETIME
        SQL_DATE            = C.SQL_DATE
        SQL_TIME            = C.SQL_TIME
        SQL_VARCHAR         = C.SQL_VARCHAR
        SQL_TYPE_DATE       = C.SQL_TYPE_DATE
        SQL_TYPE_TIME       = C.SQL_TYPE_TIME
        SQL_TYPE_TIMESTAMP  = C.SQL_TYPE_TIMESTAMP
        SQL_TIMESTAMP       = C.SQL_TIMESTAMP
        SQL_LONGVARCHAR     = C.SQL_LONGVARCHAR
        SQL_BINARY          = C.SQL_BINARY
        SQL_VARBINARY       = C.SQL_VARBINARY
        SQL_LONGVARBINARY   = C.SQL_LONGVARBINARY
        SQL_BIGINT          = C.SQL_BIGINT
        SQL_TINYINT         = C.SQL_TINYINT
        SQL_BIT             = C.SQL_BIT
        SQL_WCHAR           = C.SQL_WCHAR
        SQL_WVARCHAR        = C.SQL_WVARCHAR
        SQL_WLONGVARCHAR    = C.SQL_WLONGVARCHAR
        SQL_GUID            = C.SQL_GUID
        SQL_BLOB            = C.SQL_BLOB
        SQL_CLOB            = C.SQL_CLOB
        SQL_SIGNED_OFFSET   = C.SQL_SIGNED_OFFSET
        SQL_UNSIGNED_OFFSET = C.SQL_UNSIGNED_OFFSET

        // TODO(lukemauldin): Not defined in sqlext.h. Using windows value, but it is not supported.
        SQL_SS_XML = -152

        SQL_C_CHAR           = C.SQL_C_CHAR
        SQL_C_LONG           = C.SQL_C_LONG
        SQL_C_SHORT          = C.SQL_C_SHORT
        SQL_C_FLOAT          = C.SQL_C_FLOAT
        SQL_C_DOUBLE         = C.SQL_C_DOUBLE
        SQL_C_NUMERIC        = C.SQL_C_NUMERIC
        SQL_C_DATE           = C.SQL_C_DATE
        SQL_C_TIME           = C.SQL_C_TIME
        SQL_C_TYPE_TIMESTAMP = C.SQL_C_TYPE_TIMESTAMP
        SQL_C_TIMESTAMP      = C.SQL_C_TIMESTAMP
        SQL_C_BINARY         = C.SQL_C_BINARY
        SQL_C_BIT            = C.SQL_C_BIT
        SQL_C_DEFAULT        = C.SQL_C_DEFAULT
        SQL_C_SBIGINT        = C.SQL_C_SBIGINT
        SQL_C_UBIGINT        = C.SQL_C_UBIGINT
        SQL_C_GUID           = C.SQL_C_GUID
        SQL_C_WCHAR          = C.SQL_C_WCHAR

        SQL_COMMIT   = C.SQL_COMMIT
        SQL_ROLLBACK = C.SQL_ROLLBACK

        SQL_AUTOCOMMIT         = C.SQL_AUTOCOMMIT
        SQL_ATTR_AUTOCOMMIT    = C.SQL_ATTR_AUTOCOMMIT
        SQL_AUTOCOMMIT_OFF     = C.SQL_AUTOCOMMIT_OFF
        SQL_AUTOCOMMIT_ON      = C.SQL_AUTOCOMMIT_ON
        SQL_AUTOCOMMIT_DEFAULT = C.SQL_AUTOCOMMIT_DEFAULT

        SQL_IS_UINTEGER = C.SQL_IS_UINTEGER

        //Connection pooling
        SQL_ATTR_CONNECTION_POOLING = C.SQL_ATTR_CONNECTION_POOLING
        SQL_ATTR_CP_MATCH           = C.SQL_ATTR_CP_MATCH
        SQL_CP_OFF                  = uintptr(C.SQL_CP_OFF)
        SQL_CP_ONE_PER_DRIVER       = uintptr(C.SQL_CP_ONE_PER_DRIVER)
        SQL_CP_ONE_PER_HENV         = uintptr(C.SQL_CP_ONE_PER_HENV)
        SQL_CP_DEFAULT              = SQL_CP_OFF
        SQL_CP_STRICT_MATCH         = uintptr(C.SQL_CP_STRICT_MATCH)
        SQL_CP_RELAXED_MATCH        = uintptr(C.SQL_CP_RELAXED_MATCH)
)

type (
        SQLHANDLE C.SQLHANDLE
        SQLHENV   C.SQLHENV
        SQLHDBC   C.SQLHDBC
        SQLHSTMT  C.SQLHSTMT
        SQLHWND   uintptr

        SQLWCHAR     C.SQLWCHAR
        SQLSCHAR     C.SQLSCHAR
        SQLSMALLINT  C.SQLSMALLINT
        SQLUSMALLINT C.SQLUSMALLINT
        SQLINTEGER   C.SQLINTEGER
        SQLUINTEGER  C.SQLUINTEGER
        SQLPOINTER   C.SQLPOINTER
        SQLRETURN    C.SQLRETURN

        SQLLEN  C.SQLLEN
        SQLULEN C.SQLULEN
)

i did not get how it is not able to find only that variable.

Thanks


(Norbert Melzer) #2

WCHAR is a Microsoft thing AFAIK, I’m not sure if that is available for non windows machines.


(ravuri sai ram akhil) #3

That is present in <sqlcli1.h> i included that file. Its working.
Thanks.