31 #define SQL_DIAG_SS_MSGSTATE    (-1150)    32 #define SQL_DIAG_SS_LINE    (-1154)    34 #define SQL_SOPT_SS_QUERYNOTIFICATION_TIMEOUT  1233    35 #define SQL_SOPT_SS_QUERYNOTIFICATION_MSGTEXT  1234    36 #define SQL_SOPT_SS_QUERYNOTIFICATION_OPTIONS  1235    38 #ifndef SQL_SS_LENGTH_UNLIMITED    39 #define SQL_SS_LENGTH_UNLIMITED 0    42 #ifndef SQL_COPT_SS_BASE    43 #define SQL_COPT_SS_BASE    1200    46 #ifndef SQL_COPT_SS_MARS_ENABLED    47 #define SQL_COPT_SS_MARS_ENABLED    (SQL_COPT_SS_BASE+24)    50 #ifndef SQL_COPT_SS_OLDPWD    51 #define SQL_COPT_SS_OLDPWD  (SQL_COPT_SS_BASE+26)    54 #define SQL_INFO_FREETDS_TDS_VERSION    1300    56 #ifndef SQL_MARS_ENABLED_NO    57 #define SQL_MARS_ENABLED_NO 0    60 #ifndef SQL_MARS_ENABLED_YES    61 #define SQL_MARS_ENABLED_YES    1    64 #ifndef SQL_SS_VARIANT    65 #define SQL_SS_VARIANT  (-150)    69 #define SQL_SS_UDT  (-151)    73 #define SQL_SS_XML  (-152)    77 #define SQL_SS_TABLE    (-153)    81 #define SQL_SS_TIME2    (-154)    84 #ifndef SQL_SS_TIMESTAMPOFFSET    85 #define SQL_SS_TIMESTAMPOFFSET  (-155)    91 #ifndef SQL_C_SS_TIME2    92 #define SQL_C_SS_TIME2  (0x4000)    95 #ifndef SQL_C_SS_TIMESTAMPOFFSET    96 #define SQL_C_SS_TIMESTAMPOFFSET    (0x4001)    99 #ifndef SQL_CA_SS_BASE   100 #define SQL_CA_SS_BASE 1200   103 #ifndef SQL_CA_SS_UDT_CATALOG_NAME   104 #define SQL_CA_SS_UDT_CATALOG_NAME  (SQL_CA_SS_BASE+18)   107 #ifndef SQL_CA_SS_UDT_SCHEMA_NAME   108 #define SQL_CA_SS_UDT_SCHEMA_NAME   (SQL_CA_SS_BASE+19)   111 #ifndef SQL_CA_SS_UDT_TYPE_NAME   112 #define SQL_CA_SS_UDT_TYPE_NAME (SQL_CA_SS_BASE+20)   115 #ifndef SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME   116 #define SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME    (SQL_CA_SS_BASE+21)   119 #ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME   120 #define SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME (SQL_CA_SS_BASE+22)   123 #ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME   124 #define SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME  (SQL_CA_SS_BASE+23)   127 #ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_NAME   128 #define SQL_CA_SS_XML_SCHEMACOLLECTION_NAME (SQL_CA_SS_BASE+24)   135     SQLUINTEGER fraction;
   145     SQLUINTEGER fraction;
   146     SQLSMALLINT timezone_hour;
   147     SQLSMALLINT timezone_minute;
   160 #ifndef BCPKEEPIDENTITY   161 #define BCPKEEPIDENTITY 8   167 #define BCP_DIRECTION_IN 1   169 #define SQL_COPT_SS_BCP (SQL_COPT_SS_BASE+19)   170 #define SQL_BCP_OFF 0   173 #define SQL_COPT_TDSODBC_IMPL_BASE  1500   174 #define SQL_COPT_TDSODBC_IMPL_BCP_INITA (SQL_COPT_TDSODBC_IMPL_BASE)   175 #define SQL_COPT_TDSODBC_IMPL_BCP_CONTROL   (SQL_COPT_TDSODBC_IMPL_BASE+1)   176 #define SQL_COPT_TDSODBC_IMPL_BCP_COLPTR    (SQL_COPT_TDSODBC_IMPL_BASE+2)   177 #define SQL_COPT_TDSODBC_IMPL_BCP_SENDROW   (SQL_COPT_TDSODBC_IMPL_BASE+3)   178 #define SQL_COPT_TDSODBC_IMPL_BCP_BATCH (SQL_COPT_TDSODBC_IMPL_BASE+4)   179 #define SQL_COPT_TDSODBC_IMPL_BCP_DONE  (SQL_COPT_TDSODBC_IMPL_BASE+5)   180 #define SQL_COPT_TDSODBC_IMPL_BCP_BIND  (SQL_COPT_TDSODBC_IMPL_BASE+6)   181 #define SQL_COPT_TDSODBC_IMPL_BCP_INITW (SQL_COPT_TDSODBC_IMPL_BASE+7)   183 #define SQL_VARLEN_DATA -10   189     BCP_TYPE_SQLCHAR = 47,      
   190 #define BCP_TYPE_SQLCHAR    BCP_TYPE_SQLCHAR   191     BCP_TYPE_SQLVARCHAR = 39,   
   192 #define BCP_TYPE_SQLVARCHAR BCP_TYPE_SQLVARCHAR   193     BCP_TYPE_SQLINTN = 38,      
   194 #define BCP_TYPE_SQLINTN    BCP_TYPE_SQLINTN   195     BCP_TYPE_SQLINT1 = 48,      
   196 #define BCP_TYPE_SQLINT1    BCP_TYPE_SQLINT1   197     BCP_TYPE_SQLINT2 = 52,      
   198 #define BCP_TYPE_SQLINT2    BCP_TYPE_SQLINT2   199     BCP_TYPE_SQLINT4 = 56,      
   200 #define BCP_TYPE_SQLINT4    BCP_TYPE_SQLINT4   201     BCP_TYPE_SQLINT8 = 127,     
   202 #define BCP_TYPE_SQLINT8    BCP_TYPE_SQLINT8   203     BCP_TYPE_SQLFLT8 = 62,      
   204 #define BCP_TYPE_SQLFLT8    BCP_TYPE_SQLFLT8   205     BCP_TYPE_SQLDATETIME = 61,  
   206 #define BCP_TYPE_SQLDATETIME    BCP_TYPE_SQLDATETIME   207     BCP_TYPE_SQLBIT = 50,       
   208 #define BCP_TYPE_SQLBIT BCP_TYPE_SQLBIT   209     BCP_TYPE_SQLBITN = 104,     
   210 #define BCP_TYPE_SQLBITN    BCP_TYPE_SQLBITN   211     BCP_TYPE_SQLTEXT = 35,      
   212 #define BCP_TYPE_SQLTEXT    BCP_TYPE_SQLTEXT   213     BCP_TYPE_SQLNTEXT = 99,     
   214 #define BCP_TYPE_SQLNTEXT   BCP_TYPE_SQLNTEXT   215     BCP_TYPE_SQLIMAGE = 34,     
   216 #define BCP_TYPE_SQLIMAGE   BCP_TYPE_SQLIMAGE   217     BCP_TYPE_SQLMONEY4 = 122,   
   218 #define BCP_TYPE_SQLMONEY4  BCP_TYPE_SQLMONEY4   219     BCP_TYPE_SQLMONEY = 60,     
   220 #define BCP_TYPE_SQLMONEY   BCP_TYPE_SQLMONEY   221     BCP_TYPE_SQLDATETIME4 = 58, 
   222 #define BCP_TYPE_SQLDATETIME4   BCP_TYPE_SQLDATETIME4   223     BCP_TYPE_SQLREAL = 59,      
   224     BCP_TYPE_SQLFLT4 = 59,      
   225 #define BCP_TYPE_SQLREAL    BCP_TYPE_SQLREAL   226 #define BCP_TYPE_SQLFLT4    BCP_TYPE_SQLFLT4   227     BCP_TYPE_SQLBINARY = 45,        
   228 #define BCP_TYPE_SQLBINARY  BCP_TYPE_SQLBINARY   229     BCP_TYPE_SQLVOID = 31,      
   230 #define BCP_TYPE_SQLVOID    BCP_TYPE_SQLVOID   231     BCP_TYPE_SQLVARBINARY = 37, 
   232 #define BCP_TYPE_SQLVARBINARY   BCP_TYPE_SQLVARBINARY   233     BCP_TYPE_SQLNUMERIC = 108,  
   234 #define BCP_TYPE_SQLNUMERIC BCP_TYPE_SQLNUMERIC   235     BCP_TYPE_SQLDECIMAL = 106,  
   236 #define BCP_TYPE_SQLDECIMAL BCP_TYPE_SQLDECIMAL   237     BCP_TYPE_SQLFLTN = 109,     
   238 #define BCP_TYPE_SQLFLTN    BCP_TYPE_SQLFLTN   239     BCP_TYPE_SQLMONEYN = 110,   
   240 #define BCP_TYPE_SQLMONEYN  BCP_TYPE_SQLMONEYN   241     BCP_TYPE_SQLDATETIMN = 111, 
   242 #define BCP_TYPE_SQLDATETIMN    BCP_TYPE_SQLDATETIMN   243     BCP_TYPE_SQLNVARCHAR = 103, 
   244 #define BCP_TYPE_SQLNVARCHAR    BCP_TYPE_SQLNVARCHAR   245     BCP_TYPE_SQLUNIQUEID = 36,  
   246 #define BCP_TYPE_SQLUNIQUEID    BCP_TYPE_SQLUNIQUEID   247     BCP_TYPE_SQLDATETIME2 = 42,    
   248 #define BCP_TYPE_SQLDATETIME2   BCP_TYPE_SQLDATETIME2   258 #define TDSODBC_INLINE __inline   260 #define TDSODBC_INLINE __inline__   263 struct tdsodbc_impl_bcp_init_params
   271 static TDSODBC_INLINE RETCODE SQL_API
   272 bcp_initA(HDBC hdbc, 
const char *tblname, 
const char *hfile, 
const char *errfile, 
int direction)
   274     struct tdsodbc_impl_bcp_init_params params = {tblname, hfile, errfile, direction};
   275     return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_INITA, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL;
   278 static TDSODBC_INLINE RETCODE SQL_API
   279 bcp_initW(HDBC hdbc, 
const SQLWCHAR *tblname, 
const SQLWCHAR *hfile, 
const SQLWCHAR *errfile, 
int direction)
   281     struct tdsodbc_impl_bcp_init_params params = {tblname, hfile, errfile, direction};
   282     return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_INITW, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL;
   285 struct tdsodbc_impl_bcp_control_params
   291 static TDSODBC_INLINE RETCODE SQL_API
   294     struct tdsodbc_impl_bcp_control_params params = {field, value};
   295     return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_CONTROL, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL;
   298 struct tdsodbc_impl_bcp_colptr_params
   300     const unsigned char * colptr;
   304 static TDSODBC_INLINE RETCODE SQL_API
   305 bcp_colptr(HDBC hdbc, 
const unsigned char * colptr, 
int table_column)
   307     struct tdsodbc_impl_bcp_colptr_params params = {colptr, table_column};
   308     return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_COLPTR, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL;
   311 static TDSODBC_INLINE RETCODE SQL_API
   314     return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_SENDROW, NULL, SQL_IS_POINTER)) ? SUCCEED : FAIL;
   317 struct tdsodbc_impl_bcp_batch_params
   322 static TDSODBC_INLINE 
int SQL_API
   325     struct tdsodbc_impl_bcp_batch_params params = {-1};
   326     return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_BATCH, ¶ms, SQL_IS_POINTER)) ? params.rows : -1;
   329 struct tdsodbc_impl_bcp_done_params
   334 static TDSODBC_INLINE 
int SQL_API
   337     struct tdsodbc_impl_bcp_done_params params = {-1};
   338     return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_DONE, ¶ms, SQL_IS_POINTER)) ? params.rows : -1;
   341 struct tdsodbc_impl_bcp_bind_params
   343     const unsigned char * varaddr;
   346     const unsigned char * terminator;
   352 static TDSODBC_INLINE RETCODE SQL_API
   353 bcp_bind(HDBC hdbc, 
const unsigned char * varaddr, 
int prefixlen, 
int varlen,
   354     const unsigned char * terminator, 
int termlen, 
int vartype, 
int table_column)
   356     struct tdsodbc_impl_bcp_bind_params params = {varaddr, prefixlen, varlen, terminator, termlen, vartype, table_column};
   357     return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_BIND, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL;
   361 #define bcp_init bcp_initW   363 #define bcp_init bcp_initA RETCODE bcp_bind(DBPROCESS *dbproc, BYTE *varaddr, int prefixlen, DBINT varlen, BYTE *terminator, int termlen, int db_vartype, int table_column)
Bind a program host variable to a database column. 
Definition: bcp.c:2028
DBINT bcp_batch(DBPROCESS *dbproc)
Commit a set of rows to the table. 
Definition: bcp.c:1959
RETCODE bcp_control(DBPROCESS *dbproc, int field, DBINT value)
Set BCP options for uploading a datafile. 
Definition: bcp.c:539
RETCODE bcp_sendrow(DBPROCESS *dbproc)
Write data in host variables to the table. 
Definition: bcp.c:1339
DBINT bcp_done(DBPROCESS *dbproc)
Conclude the transfer of data from program variables. 
Definition: bcp.c:1986
RETCODE bcp_colptr(DBPROCESS *dbproc, BYTE *colptr, int table_column)
Override bcp_bind() by pointing to a different host variable. 
Definition: bcp.c:661