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    55 #define SQL_INFO_FREETDS_SOCKET 1301    57 #ifndef SQL_MARS_ENABLED_NO    58 #define SQL_MARS_ENABLED_NO 0    61 #ifndef SQL_MARS_ENABLED_YES    62 #define SQL_MARS_ENABLED_YES    1    65 #ifndef SQL_SS_VARIANT    66 #define SQL_SS_VARIANT  (-150)    70 #define SQL_SS_UDT  (-151)    74 #define SQL_SS_XML  (-152)    78 #define SQL_SS_TABLE    (-153)    82 #define SQL_SS_TIME2    (-154)    85 #ifndef SQL_SS_TIMESTAMPOFFSET    86 #define SQL_SS_TIMESTAMPOFFSET  (-155)    92 #ifndef SQL_C_SS_TIME2    93 #define SQL_C_SS_TIME2  (0x4000)    96 #ifndef SQL_C_SS_TIMESTAMPOFFSET    97 #define SQL_C_SS_TIMESTAMPOFFSET    (0x4001)   100 #ifndef SQL_CA_SS_BASE   101 #define SQL_CA_SS_BASE 1200   104 #ifndef SQL_CA_SS_UDT_CATALOG_NAME   105 #define SQL_CA_SS_UDT_CATALOG_NAME  (SQL_CA_SS_BASE+18)   108 #ifndef SQL_CA_SS_UDT_SCHEMA_NAME   109 #define SQL_CA_SS_UDT_SCHEMA_NAME   (SQL_CA_SS_BASE+19)   112 #ifndef SQL_CA_SS_UDT_TYPE_NAME   113 #define SQL_CA_SS_UDT_TYPE_NAME (SQL_CA_SS_BASE+20)   116 #ifndef SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME   117 #define SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME    (SQL_CA_SS_BASE+21)   120 #ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME   121 #define SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME (SQL_CA_SS_BASE+22)   124 #ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME   125 #define SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME  (SQL_CA_SS_BASE+23)   128 #ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_NAME   129 #define SQL_CA_SS_XML_SCHEMACOLLECTION_NAME (SQL_CA_SS_BASE+24)   136     SQLUINTEGER fraction;
   146     SQLUINTEGER fraction;
   147     SQLSMALLINT timezone_hour;
   148     SQLSMALLINT timezone_minute;
   161 #ifndef BCPKEEPIDENTITY   162 #define BCPKEEPIDENTITY 8   168 #define BCP_DIRECTION_IN 1   170 #define SQL_COPT_SS_BCP (SQL_COPT_SS_BASE+19)   171 #define SQL_BCP_OFF 0   174 #define SQL_COPT_TDSODBC_IMPL_BASE  1500   175 #define SQL_COPT_TDSODBC_IMPL_BCP_INITA (SQL_COPT_TDSODBC_IMPL_BASE)   176 #define SQL_COPT_TDSODBC_IMPL_BCP_CONTROL   (SQL_COPT_TDSODBC_IMPL_BASE+1)   177 #define SQL_COPT_TDSODBC_IMPL_BCP_COLPTR    (SQL_COPT_TDSODBC_IMPL_BASE+2)   178 #define SQL_COPT_TDSODBC_IMPL_BCP_SENDROW   (SQL_COPT_TDSODBC_IMPL_BASE+3)   179 #define SQL_COPT_TDSODBC_IMPL_BCP_BATCH (SQL_COPT_TDSODBC_IMPL_BASE+4)   180 #define SQL_COPT_TDSODBC_IMPL_BCP_DONE  (SQL_COPT_TDSODBC_IMPL_BASE+5)   181 #define SQL_COPT_TDSODBC_IMPL_BCP_BIND  (SQL_COPT_TDSODBC_IMPL_BASE+6)   182 #define SQL_COPT_TDSODBC_IMPL_BCP_INITW (SQL_COPT_TDSODBC_IMPL_BASE+7)   184 #define SQL_VARLEN_DATA -10   190     BCP_TYPE_SQLCHAR = 47,      
   191 #define BCP_TYPE_SQLCHAR    BCP_TYPE_SQLCHAR   192     BCP_TYPE_SQLVARCHAR = 39,   
   193 #define BCP_TYPE_SQLVARCHAR BCP_TYPE_SQLVARCHAR   194     BCP_TYPE_SQLINTN = 38,      
   195 #define BCP_TYPE_SQLINTN    BCP_TYPE_SQLINTN   196     BCP_TYPE_SQLINT1 = 48,      
   197 #define BCP_TYPE_SQLINT1    BCP_TYPE_SQLINT1   198     BCP_TYPE_SQLINT2 = 52,      
   199 #define BCP_TYPE_SQLINT2    BCP_TYPE_SQLINT2   200     BCP_TYPE_SQLINT4 = 56,      
   201 #define BCP_TYPE_SQLINT4    BCP_TYPE_SQLINT4   202     BCP_TYPE_SQLINT8 = 127,     
   203 #define BCP_TYPE_SQLINT8    BCP_TYPE_SQLINT8   204     BCP_TYPE_SQLFLT8 = 62,      
   205 #define BCP_TYPE_SQLFLT8    BCP_TYPE_SQLFLT8   206     BCP_TYPE_SQLDATETIME = 61,  
   207 #define BCP_TYPE_SQLDATETIME    BCP_TYPE_SQLDATETIME   208     BCP_TYPE_SQLBIT = 50,       
   209 #define BCP_TYPE_SQLBIT BCP_TYPE_SQLBIT   210     BCP_TYPE_SQLBITN = 104,     
   211 #define BCP_TYPE_SQLBITN    BCP_TYPE_SQLBITN   212     BCP_TYPE_SQLTEXT = 35,      
   213 #define BCP_TYPE_SQLTEXT    BCP_TYPE_SQLTEXT   214     BCP_TYPE_SQLNTEXT = 99,     
   215 #define BCP_TYPE_SQLNTEXT   BCP_TYPE_SQLNTEXT   216     BCP_TYPE_SQLIMAGE = 34,     
   217 #define BCP_TYPE_SQLIMAGE   BCP_TYPE_SQLIMAGE   218     BCP_TYPE_SQLMONEY4 = 122,   
   219 #define BCP_TYPE_SQLMONEY4  BCP_TYPE_SQLMONEY4   220     BCP_TYPE_SQLMONEY = 60,     
   221 #define BCP_TYPE_SQLMONEY   BCP_TYPE_SQLMONEY   222     BCP_TYPE_SQLDATETIME4 = 58, 
   223 #define BCP_TYPE_SQLDATETIME4   BCP_TYPE_SQLDATETIME4   224     BCP_TYPE_SQLREAL = 59,      
   225     BCP_TYPE_SQLFLT4 = 59,      
   226 #define BCP_TYPE_SQLREAL    BCP_TYPE_SQLREAL   227 #define BCP_TYPE_SQLFLT4    BCP_TYPE_SQLFLT4   228     BCP_TYPE_SQLBINARY = 45,        
   229 #define BCP_TYPE_SQLBINARY  BCP_TYPE_SQLBINARY   230     BCP_TYPE_SQLVOID = 31,      
   231 #define BCP_TYPE_SQLVOID    BCP_TYPE_SQLVOID   232     BCP_TYPE_SQLVARBINARY = 37, 
   233 #define BCP_TYPE_SQLVARBINARY   BCP_TYPE_SQLVARBINARY   234     BCP_TYPE_SQLNUMERIC = 108,  
   235 #define BCP_TYPE_SQLNUMERIC BCP_TYPE_SQLNUMERIC   236     BCP_TYPE_SQLDECIMAL = 106,  
   237 #define BCP_TYPE_SQLDECIMAL BCP_TYPE_SQLDECIMAL   238     BCP_TYPE_SQLFLTN = 109,     
   239 #define BCP_TYPE_SQLFLTN    BCP_TYPE_SQLFLTN   240     BCP_TYPE_SQLMONEYN = 110,   
   241 #define BCP_TYPE_SQLMONEYN  BCP_TYPE_SQLMONEYN   242     BCP_TYPE_SQLDATETIMN = 111, 
   243 #define BCP_TYPE_SQLDATETIMN    BCP_TYPE_SQLDATETIMN   244     BCP_TYPE_SQLNVARCHAR = 103, 
   245 #define BCP_TYPE_SQLNVARCHAR    BCP_TYPE_SQLNVARCHAR   246     BCP_TYPE_SQLUNIQUEID = 36,  
   247 #define BCP_TYPE_SQLUNIQUEID    BCP_TYPE_SQLUNIQUEID   248     BCP_TYPE_SQLDATETIME2 = 42,    
   249 #define BCP_TYPE_SQLDATETIME2   BCP_TYPE_SQLDATETIME2   259 #define TDSODBC_INLINE __inline   261 #define TDSODBC_INLINE __inline__   264 struct tdsodbc_impl_bcp_init_params
   272 static TDSODBC_INLINE RETCODE SQL_API
   273 bcp_initA(HDBC hdbc, 
const char *tblname, 
const char *hfile, 
const char *errfile, 
int direction)
   275     struct tdsodbc_impl_bcp_init_params params = {tblname, hfile, errfile, direction};
   276     return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_INITA, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL;
   279 static TDSODBC_INLINE RETCODE SQL_API
   280 bcp_initW(HDBC hdbc, 
const SQLWCHAR *tblname, 
const SQLWCHAR *hfile, 
const SQLWCHAR *errfile, 
int direction)
   282     struct tdsodbc_impl_bcp_init_params params = {tblname, hfile, errfile, direction};
   283     return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_INITW, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL;
   286 struct tdsodbc_impl_bcp_control_params
   292 static TDSODBC_INLINE RETCODE SQL_API
   295     struct tdsodbc_impl_bcp_control_params params = {field, value};
   296     return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_CONTROL, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL;
   299 struct tdsodbc_impl_bcp_colptr_params
   301     const unsigned char * colptr;
   305 static TDSODBC_INLINE RETCODE SQL_API
   306 bcp_colptr(HDBC hdbc, 
const unsigned char * colptr, 
int table_column)
   308     struct tdsodbc_impl_bcp_colptr_params params = {colptr, table_column};
   309     return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_COLPTR, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL;
   312 static TDSODBC_INLINE RETCODE SQL_API
   315     return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_SENDROW, NULL, SQL_IS_POINTER)) ? SUCCEED : FAIL;
   318 struct tdsodbc_impl_bcp_batch_params
   323 static TDSODBC_INLINE 
int SQL_API
   326     struct tdsodbc_impl_bcp_batch_params params = {-1};
   327     return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_BATCH, ¶ms, SQL_IS_POINTER)) ? params.rows : -1;
   330 struct tdsodbc_impl_bcp_done_params
   335 static TDSODBC_INLINE 
int SQL_API
   338     struct tdsodbc_impl_bcp_done_params params = {-1};
   339     return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_DONE, ¶ms, SQL_IS_POINTER)) ? params.rows : -1;
   342 struct tdsodbc_impl_bcp_bind_params
   344     const unsigned char * varaddr;
   347     const unsigned char * terminator;
   353 static TDSODBC_INLINE RETCODE SQL_API
   354 bcp_bind(HDBC hdbc, 
const unsigned char * varaddr, 
int prefixlen, 
int varlen,
   355     const unsigned char * terminator, 
int termlen, 
int vartype, 
int table_column)
   357     struct tdsodbc_impl_bcp_bind_params params = {varaddr, prefixlen, varlen, terminator, termlen, vartype, table_column};
   358     return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_BIND, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL;
   362 #define bcp_init bcp_initW   364 #define bcp_init bcp_initA RETCODE bcp_control(DBPROCESS *dbproc, int field, DBINT value)
Set BCP options for uploading a datafile. 
Definition: bcp.c:539
DBINT bcp_batch(DBPROCESS *dbproc)
Commit a set of rows to the table. 
Definition: bcp.c:1957
DBINT bcp_done(DBPROCESS *dbproc)
Conclude the transfer of data from program variables. 
Definition: bcp.c:1984
RETCODE bcp_sendrow(DBPROCESS *dbproc)
Write data in host variables to the table. 
Definition: bcp.c:1337
RETCODE bcp_colptr(DBPROCESS *dbproc, BYTE *colptr, int table_column)
Override bcp_bind() by pointing to a different host variable. 
Definition: bcp.c:661
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:2026