freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
- From: Sebastien FLAESCH <sf AT 4js.com>
- To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
- Subject: Re: [freetds] Status of UTF-8 support in 0.83 dev
- Date: Thu, 14 Aug 2008 16:02:04 +0200
James,
When I print the client and the server charset in tds_convert_string()
called from tds_put_data(), I see:
char_conv->client_charset.name = "UTF-8"
char_conv->server_charset.name = "CP1252"
I expected UCS-2 for the server charset...????
Hence it's normal that the conversion of non-CP1252 compatible chars
like 鴻 result in error...
I appears that curcol->char_conv points to the client2server_chardata
TDSICONV structure, because in tds_set_param_type(), the data type is
not identified as a UNICODE type...
So when binding the buffers with sqltype SQL_[VAR]CHAR, it appears that
the Sybase type used is not "UNICODE"...
Should I then bind with SQL_WCHAR / SQL_WVARCHAR?
I made a little test (attached, with log)... still failing.
Seb
/* Test UTF-8 character set
* Author: Sebastien FLAESCH
*
* The ODBC config parameter ClientCharset must be set:
* ClientCharset = UTF8
*/
static const char * g_dbname = "freetds_msvtest1_cobra_utf8";
static const char * g_usernm = "msvuser";
static const char * g_passwd = "fourjs";
#ifdef _WIN32
#include <WINDOWS.H>
#endif
#include <stdio.h>
#include <sql.h>
#include <sqlext.h>
#define CHECK_RCODE(t,h,m) \
if ( rcode != SQL_NO_DATA \
&& rcode != SQL_SUCCESS \
&& rcode != SQL_SUCCESS_WITH_INFO \
&& rcode != SQL_NEED_DATA ) { \
fprintf(stderr,"Error %d at: %s\n",rcode,m); \
getErrorInfo(t,h); \
exit(1); \
}
static int v_key;
static SQLINTEGER v_ind_key;
static char v_char[41]; /* Can hold 10 UTF-8 chars */
static SQLINTEGER v_ind_char;
static char v_varchar[41]; /* Can hold 10 UTF-8 chars */
static SQLINTEGER v_ind_varchar;
static void getErrorInfo(SQLSMALLINT sqlhdltype, SQLHANDLE sqlhandle)
{
SQLRETURN rcode = 0;
SQLCHAR sqlstate[SQL_SQLSTATE_SIZE + 1];
SQLINTEGER naterror = 0;
SQLCHAR msgtext[SQL_MAX_MESSAGE_LENGTH + 1];
SQLSMALLINT msgtextl = 0;
int ifxerror = 0;
rcode = SQLGetDiagRec((SQLSMALLINT) sqlhdltype,
(SQLHANDLE) sqlhandle,
(SQLSMALLINT) 1,
(SQLCHAR *) sqlstate,
(SQLINTEGER *) & naterror,
(SQLCHAR *) msgtext,
(SQLSMALLINT) sizeof(msgtext),
(SQLSMALLINT *) & msgtextl);
fprintf(stderr, "Diagnostic info:\n");
fprintf(stderr, " SQL State: %s\n", (char *) sqlstate);
fprintf(stderr, " SQL code : %d\n", (int) naterror);
fprintf(stderr, " Message : %s\n", (char *) msgtext);
}
main(int argc,char **argv)
{
SQLRETURN rcode;
SQLHENV m_henv;
SQLHDBC m_hdbc;
SQLHSTMT m_hstmt1;
int i,j;
const char * dbname;
const char * usernm;
const char * passwd;
if (argc == 4) {
dbname = argv[1];
usernm = argv[2];
passwd = argv[3];
} else {
dbname = g_dbname;
usernm = g_usernm;
passwd = g_passwd;
}
m_henv = NULL;
rcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &m_henv);
CHECK_RCODE(SQL_HANDLE_ENV,NULL,"SQLAllocHandle EnvH");
rcode = SQLSetEnvAttr(m_henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)
SQL_OV_ODBC3, SQL_IS_UINTEGER);
CHECK_RCODE(SQL_HANDLE_ENV,m_henv,"ODBC V3");
m_hdbc = NULL;
rcode = SQLAllocHandle(SQL_HANDLE_DBC, (SQLHANDLE) m_henv, (SQLHANDLE *)
&m_hdbc);
CHECK_RCODE(SQL_HANDLE_ENV,m_henv,"SQLAllocHandle DbcH");
rcode = SQLConnect((SQLHANDLE) m_hdbc,
(SQLCHAR *) dbname,
(SQLINTEGER) SQL_NTS,
(SQLCHAR *) usernm,
(SQLINTEGER) SQL_NTS,
(SQLCHAR *) passwd,
(SQLINTEGER) SQL_NTS);
CHECK_RCODE(SQL_HANDLE_DBC,m_hdbc,"SQLConnect");
rcode = SQLSetConnectAttr(m_hdbc,
SQL_ATTR_AUTOCOMMIT, (SQLPOINTER) SQL_AUTOCOMMIT_ON,
SQL_IS_UINTEGER);
CHECK_RCODE(SQL_HANDLE_ENV,m_henv,"SQLSetConnectAttr(autocommit)");
m_hstmt1 = NULL;
rcode = SQLAllocHandle(SQL_HANDLE_STMT, m_hdbc, &m_hstmt1);
CHECK_RCODE(SQL_HANDLE_DBC,m_hdbc,"SQLAllocHandle StmtH 1");
rcode = SQLExecDirect(m_hstmt1, (SQLCHAR *) "drop table mytabçé´»",
SQL_NTS);
rcode = SQLExecDirect(m_hstmt1, (SQLCHAR *) "create table mytabçé´» (k
int, c nchar(10), vc nvarchar(10))", SQL_NTS);
CHECK_RCODE(SQL_HANDLE_STMT,m_hstmt1,"SQLExecDirect 1.1");
fprintf(stderr,">> SQLPrepare!!!\n");
rcode = SQLPrepare(m_hstmt1, (SQLCHAR *) "insert into mytabçé´» values
(?,?,?)", SQL_NTS);
CHECK_RCODE(SQL_HANDLE_STMT,m_hstmt1,"SQLPrepare insert");
SQLBindParameter(m_hstmt1, 1, SQL_PARAM_INPUT,
SQL_C_LONG, SQL_INTEGER, 0, 0, &v_key, 0, &v_ind_key);
CHECK_RCODE(SQL_HANDLE_STMT,m_hstmt1,"SQLBindParameter 1");
SQLBindParameter(m_hstmt1, 2, SQL_PARAM_INPUT,
SQL_C_CHAR, SQL_WCHAR /* or SQL_CHAR? */, 40, 0, v_char,
0, &v_ind_char);
CHECK_RCODE(SQL_HANDLE_STMT,m_hstmt1,"SQLBindParameter 2");
SQLBindParameter(m_hstmt1, 3, SQL_PARAM_INPUT,
SQL_C_CHAR, SQL_WVARCHAR /* or SQL_VARCHAR? */, 40, 0,
v_varchar, 0, &v_ind_varchar);
CHECK_RCODE(SQL_HANDLE_STMT,m_hstmt1,"SQLBindParameter 3");
strcpy(v_char, "abcéô鴻");
v_ind_char = strlen(v_char);
strcpy(v_varchar, "abcéô鴻");
v_ind_varchar = strlen(v_varchar);
fprintf(stderr,">> SQLExecute: [%s] (%d) [%s] (%d) \n", v_char,
v_ind_char, v_varchar, v_ind_varchar);
rcode = SQLExecute(m_hstmt1);
CHECK_RCODE(SQL_HANDLE_STMT,m_hstmt1,"SQLExecute 1.1 StmtH");
rcode = SQLFreeHandle(SQL_HANDLE_STMT, (SQLHANDLE) m_hstmt1);
CHECK_RCODE(SQL_HANDLE_STMT,m_hstmt1,"SQLFreeHandle StmtH 1");
rcode = SQLDisconnect(m_hdbc);
CHECK_RCODE(SQL_HANDLE_DBC,m_hdbc,"SQLDisconnect");
rcode = SQLFreeHandle(SQL_HANDLE_DBC, (SQLHANDLE) m_hdbc);
CHECK_RCODE(SQL_HANDLE_DBC,m_hdbc,"SQLFreeHandle DbcH");
rcode = SQLFreeHandle(SQL_HANDLE_ENV, (SQLHANDLE) m_henv);
CHECK_RCODE(SQL_HANDLE_ENV,m_henv,"SQLFreeHandle EnvH");
}
log.c:190:Starting log file for FreeTDS 0.83.dev.20080813 on 2008-08-14 15:59:51 with debug flags 0x4fff. iconv.c:337:tds_iconv_open(0x4136fc0, UTF-8) iconv.c:197:local name for ISO-8859-1 is ISO-8859-1 iconv.c:197:local name for UTF-8 is UTF-8 iconv.c:197:local name for UCS-2LE is UCS-2LE iconv.c:197:local name for UCS-2BE is UCS-2BE iconv.c:365:setting up conversions for client charset "UTF-8" iconv.c:367:preparing iconv for "UTF-8" <-> "UCS-2LE" conversion iconv.c:404:preparing iconv for "ISO-8859-1" <-> "UCS-2LE" conversion iconv.c:407:tds_iconv_open: done net.c:204:Connecting to 10.0.0.115 port 1680 (TDS version 8.0) net.c:258:tds_open_socket: connect(2) returned "Operation now in progress" net.c:296:tds_open_socket() succeeded util.c:162:Changed query state from DEAD to IDLE login.c:734:quietly sending TDS 7+ login packet token.c:312:tds_process_login_tokens() net.c:662:Received packet 0000 04 01 01 89 00 35 01 00-e3 1f 00 01 08 6d 00 73 |.....5.. .....m.s| 0010 00 76 00 74 00 65 00 73-00 74 00 31 00 06 6d 00 |.v.t.e.s .t.1..m.| 0020 61 00 73 00 74 00 65 00-72 00 ab 6e 00 45 16 00 |a.s.t.e. r..n.E..| 0030 00 02 00 27 00 43 00 68-00 61 00 6e 00 67 00 65 |...'.C.h .a.n.g.e| 0040 00 64 00 20 00 64 00 61-00 74 00 61 00 62 00 61 |.d. .d.a .t.a.b.a| 0050 00 73 00 65 00 20 00 63-00 6f 00 6e 00 74 00 65 |.s.e. .c .o.n.t.e| 0060 00 78 00 74 00 20 00 74-00 6f 00 20 00 27 00 6d |.x.t. .t .o. .'.m| 0070 00 73 00 76 00 74 00 65-00 73 00 74 00 31 00 27 |.s.v.t.e .s.t.1.'| 0080 00 2e 00 0a 43 00 4f 00-42 00 52 00 41 00 5c 00 |....C.O. B.R.A.\.| 0090 4d 00 53 00 56 00 31 00-00 01 00 e3 08 00 07 05 |M.S.V.1. ........| 00a0 09 04 c0 00 33 00 e3 17-00 02 0a 75 00 73 00 5f |....3... ...u.s._| 00b0 00 65 00 6e 00 67 00 6c-00 69 00 73 00 68 00 00 |.e.n.g.l .i.s.h..| 00c0 ab 6e 00 47 16 00 00 01-00 27 00 43 00 68 00 61 |.n.G.... .'.C.h.a| 00d0 00 6e 00 67 00 65 00 64-00 20 00 6c 00 61 00 6e |.n.g.e.d . .l.a.n| 00e0 00 67 00 75 00 61 00 67-00 65 00 20 00 73 00 65 |.g.u.a.g .e. .s.e| 00f0 00 74 00 74 00 69 00 6e-00 67 00 20 00 74 00 6f |.t.t.i.n .g. .t.o| 0100 00 20 00 75 00 73 00 5f-00 65 00 6e 00 67 00 6c |. .u.s._ .e.n.g.l| 0110 00 69 00 73 00 68 00 2e-00 0a 43 00 4f 00 42 00 |.i.s.h.. ..C.O.B.| 0120 52 00 41 00 5c 00 4d 00-53 00 56 00 31 00 00 01 |R.A.\.M. S.V.1...| 0130 00 ad 36 00 01 71 00 00-01 16 4d 00 69 00 63 00 |..6..q.. ..M.i.c.| 0140 72 00 6f 00 73 00 6f 00-66 00 74 00 20 00 53 00 |r.o.s.o. f.t. .S.| 0150 51 00 4c 00 20 00 53 00-65 00 72 00 76 00 65 00 |Q.L. .S. e.r.v.e.| 0160 72 00 00 00 00 00 09 00-05 77 e3 13 00 04 04 34 |r....... .w.....4| 0170 00 30 00 39 00 36 00 04-34 00 30 00 39 00 36 00 |.0.9.6.. 4.0.9.6.| 0180 fd 00 00 00 00 00 00 00-00 |........ .| token.c:316:looking for login token, got e3(ENVCHANGE) token.c:108:tds_process_default_tokens() marker is e3(ENVCHANGE) token.c:316:looking for login token, got ab(INFO) token.c:108:tds_process_default_tokens() marker is ab(INFO) token.c:2524:tds_process_msg() reading message from server token.c:2597:tds_process_msg() calling client msg handler odbc.c:2106:msgno 5701 20003 token.c:2610:tds_process_msg() returning TDS_SUCCEED token.c:316:looking for login token, got e3(ENVCHANGE) token.c:108:tds_process_default_tokens() marker is e3(ENVCHANGE) token.c:2355:tds_process_env_chg(): 5 bytes of collation data received token.c:2356:tds->collation was 0000 00 00 00 00 00 - |.....| iconv.c:992:setting server single-byte charset to "CP1252" token.c:2366:tds->collation now 0000 09 04 c0 00 33 - |....3| token.c:316:looking for login token, got e3(ENVCHANGE) token.c:108:tds_process_default_tokens() marker is e3(ENVCHANGE) token.c:316:looking for login token, got ab(INFO) token.c:108:tds_process_default_tokens() marker is ab(INFO) token.c:2524:tds_process_msg() reading message from server token.c:2597:tds_process_msg() calling client msg handler odbc.c:2106:msgno 5703 20003 token.c:2610:tds_process_msg() returning TDS_SUCCEED token.c:316:looking for login token, got ad(LOGINACK) token.c:316:looking for login token, got e3(ENVCHANGE) token.c:108:tds_process_default_tokens() marker is e3(ENVCHANGE) token.c:2413:changing block size from 4096 to 4096 token.c:316:looking for login token, got fd(DONE) token.c:108:tds_process_default_tokens() marker is fd(DONE) token.c:2275:tds_process_end: more_results = 0 was_cancelled = 0 error = 0 done_count_valid = 0 token.c:2291:tds_process_end() state set to TDS_IDLE token.c:2306: rows_affected = 0 token.c:393:leaving tds_process_login_tokens() returning 1 odbc.c:6123:SQLSetConnectAttr(0x4133420, 102, 0x1, -5) odbc.c:6038:_SQLSetConnectAttr(0x4133420, 102, 0x1, -5) odbc.c:235:change_autocommit: executing SET IMPLICIT_TRANSACTIONS OFF mem.c:563:tds_free_all_results() util.c:162:Changed query state from IDLE to QUERYING write.c:136:tds_put_string converting 29 bytes of "SET IMPLICIT_TRANSACTIONS OFF" write.c:164:tds_put_string wrote 58 bytes util.c:162:Changed query state from QUERYING to PENDING net.c:768:Sending packet 0000 01 01 00 42 00 00 01 00-53 00 45 00 54 00 20 00 |...B.... S.E.T. .| 0010 49 00 4d 00 50 00 4c 00-49 00 43 00 49 00 54 00 |I.M.P.L. I.C.I.T.| 0020 5f 00 54 00 52 00 41 00-4e 00 53 00 41 00 43 00 |_.T.R.A. N.S.A.C.| 0030 54 00 49 00 4f 00 4e 00-53 00 20 00 4f 00 46 00 |T.I.O.N. S. .O.F.| 0040 46 00 - |F.| token.c:495:tds_process_tokens(0x4136fc0, 0xbef39884, 0xbef39888, 0x100) util.c:162:Changed query state from PENDING to READING net.c:662:Received packet 0000 04 01 00 11 00 35 01 00-fd 00 00 ba 00 00 00 00 |.....5.. ........| 0010 00 - |.| token.c:510:processing result tokens. marker is fd(DONE) token.c:2275:tds_process_end: more_results = 0 was_cancelled = 0 error = 0 done_count_valid = 0 token.c:2291:tds_process_end() state set to TDS_IDLE util.c:162:Changed query state from READING to IDLE token.c:2306: rows_affected = 0 util.c:110:logic error: cannot change query state from IDLE to PENDING token.c:495:tds_process_tokens(0x4136fc0, 0xbef39884, 0xbef39888, 0x100) token.c:498:tds_process_tokens() state is COMPLETED odbc.c:1314:SQLAllocHandle(3, 0x4133420, 0xbef399c8) odbc.c:1473:_SQLAllocStmt(0x4133420, 0xbef399c8) odbc.c:3286:SQLExecDirect(0x4139d88, 0x8049269, -3) prepare_query.c:202:parsing 0 parameters odbc.c:3043:_SQLExecute(0x4139d88) odbc.c:3048:_SQLExecute() starting with state 0 mem.c:563:tds_free_all_results() util.c:162:Changed query state from IDLE to QUERYING write.c:136:tds_put_string converting 22 bytes of "drop table mytabçé´»" write.c:164:tds_put_string wrote 36 bytes util.c:162:Changed query state from QUERYING to PENDING net.c:768:Sending packet 0000 01 01 00 2c 00 00 01 00-64 00 72 00 6f 00 70 00 |...,.... d.r.o.p.| 0010 20 00 74 00 61 00 62 00-6c 00 65 00 20 00 6d 00 | .t.a.b. l.e. .m.| 0020 79 00 74 00 61 00 62 00-8b 73 3b 9d |y.t.a.b. .s;.| token.c:495:tds_process_tokens(0x4136fc0, 0xbef398c0, 0xbef398c4, 0x6914) util.c:162:Changed query state from PENDING to READING net.c:662:Received packet 0000 04 01 00 11 00 35 01 00-fd 00 00 c7 00 00 00 00 |.....5.. ........| 0010 00 - |.| token.c:510:processing result tokens. marker is fd(DONE) token.c:2275:tds_process_end: more_results = 0 was_cancelled = 0 error = 0 done_count_valid = 0 token.c:2291:tds_process_end() state set to TDS_IDLE util.c:162:Changed query state from READING to IDLE token.c:2306: rows_affected = 0 util.c:110:logic error: cannot change query state from IDLE to PENDING odbc.c:3356:odbc_process_tokens: tds_process_tokens returned 1 odbc.c:3357: result_type=4052, TDS_DONE_COUNT=0, TDS_DONE_ERROR=0 odbc.c:3400:odbc_process_tokens: processed TDS_DONE_RESULT token.c:495:tds_process_tokens(0x4136fc0, 0xbef398c0, 0xbef398c4, 0x26914) token.c:498:tds_process_tokens() state is COMPLETED odbc.c:3356:odbc_process_tokens: tds_process_tokens returned 2 odbc.c:3357: result_type=4052, TDS_DONE_COUNT=0, TDS_DONE_ERROR=0 odbc.c:3197:_SQLExecute: odbc_process_tokens returned result_type 4046 odbc.c:3286:SQLExecDirect(0x4139d88, 0x8049280, -3) prepare_query.c:202:parsing 0 parameters odbc.c:3043:_SQLExecute(0x4139d88) odbc.c:3048:_SQLExecute() starting with state 0 mem.c:563:tds_free_all_results() util.c:162:Changed query state from IDLE to QUERYING write.c:136:tds_put_string converting 62 bytes of "create table mytabçé´» (k int, c nchar(10), vc nvarchar(10))" write.c:164:tds_put_string wrote 116 bytes util.c:162:Changed query state from QUERYING to PENDING net.c:768:Sending packet 0000 01 01 00 7c 00 00 01 00-63 00 72 00 65 00 61 00 |...|.... c.r.e.a.| 0010 74 00 65 00 20 00 74 00-61 00 62 00 6c 00 65 00 |t.e. .t. a.b.l.e.| 0020 20 00 6d 00 79 00 74 00-61 00 62 00 8b 73 3b 9d | .m.y.t. a.b..s;.| 0030 20 00 28 00 6b 00 20 00-69 00 6e 00 74 00 2c 00 | .(.k. . i.n.t.,.| 0040 20 00 63 00 20 00 6e 00-63 00 68 00 61 00 72 00 | .c. .n. c.h.a.r.| 0050 28 00 31 00 30 00 29 00-2c 00 20 00 76 00 63 00 |(.1.0.). ,. .v.c.| 0060 20 00 6e 00 76 00 61 00-72 00 63 00 68 00 61 00 | .n.v.a. r.c.h.a.| 0070 72 00 28 00 31 00 30 00-29 00 29 00 |r.(.1.0. ).).| token.c:495:tds_process_tokens(0x4136fc0, 0xbef398c0, 0xbef398c4, 0x6914) util.c:162:Changed query state from PENDING to READING net.c:662:Received packet 0000 04 01 00 11 00 35 01 00-fd 00 00 c6 00 00 00 00 |.....5.. ........| 0010 00 - |.| token.c:510:processing result tokens. marker is fd(DONE) token.c:2275:tds_process_end: more_results = 0 was_cancelled = 0 error = 0 done_count_valid = 0 token.c:2291:tds_process_end() state set to TDS_IDLE util.c:162:Changed query state from READING to IDLE token.c:2306: rows_affected = 0 util.c:110:logic error: cannot change query state from IDLE to PENDING odbc.c:3356:odbc_process_tokens: tds_process_tokens returned 1 odbc.c:3357: result_type=4052, TDS_DONE_COUNT=0, TDS_DONE_ERROR=0 odbc.c:3400:odbc_process_tokens: processed TDS_DONE_RESULT token.c:495:tds_process_tokens(0x4136fc0, 0xbef398c0, 0xbef398c4, 0x26914) token.c:498:tds_process_tokens() state is COMPLETED odbc.c:3356:odbc_process_tokens: tds_process_tokens returned 2 odbc.c:3357: result_type=4052, TDS_DONE_COUNT=0, TDS_DONE_ERROR=0 odbc.c:3197:_SQLExecute: odbc_process_tokens returned result_type 4046 odbc.c:4239:SQLPrepare(0x4139d88, insert into mytabçé´» values (?,?,?), -3) prepare_query.c:202:parsing 0 parameters prepare_query.c:207:parse_prepared_query: logic_error: parameter out of bounds: 1 > 0 || 1 > 0 odbc.c:4303:Creating prepared statement mem.c:563:tds_free_all_results() util.c:162:Changed query state from IDLE to QUERYING write.c:136:tds_put_string converting 3 bytes of "@P1" write.c:164:tds_put_string wrote 6 bytes write.c:136:tds_put_string converting 3 bytes of "@P2" write.c:164:tds_put_string wrote 6 bytes write.c:136:tds_put_string converting 3 bytes of "@P3" write.c:164:tds_put_string wrote 6 bytes util.c:162:Changed query state from QUERYING to PENDING net.c:768:Sending packet 0000 03 01 00 ea 00 00 01 00-ff ff 0b 00 00 00 00 01 |........ ........| 0010 26 04 00 00 00 63 5e 00-00 00 09 04 c0 00 33 5e |&....c^. ......3^| 0020 00 00 00 40 00 50 00 31-00 20 00 76 00 61 00 72 |...@.P.1 . .v.a.r| 0030 00 63 00 68 00 61 00 72-00 28 00 38 00 30 00 29 |.c.h.a.r .(.8.0.)| 0040 00 2c 00 40 00 50 00 32-00 20 00 76 00 61 00 72 |.,.@.P.2 . .v.a.r| 0050 00 63 00 68 00 61 00 72-00 28 00 38 00 30 00 29 |.c.h.a.r .(.8.0.)| 0060 00 2c 00 40 00 50 00 33-00 20 00 76 00 61 00 72 |.,.@.P.3 . .v.a.r| 0070 00 63 00 68 00 61 00 72-00 28 00 38 00 30 00 29 |.c.h.a.r .(.8.0.)| 0080 00 00 00 63 50 00 00 00-09 04 c0 00 33 50 00 00 |...cP... ....3P..| 0090 00 69 00 6e 00 73 00 65-00 72 00 74 00 20 00 69 |.i.n.s.e .r.t. .i| 00a0 00 6e 00 74 00 6f 00 20-00 6d 00 79 00 74 00 61 |.n.t.o. .m.y.t.a| 00b0 00 62 00 8b 73 3b 9d 20-00 76 00 61 00 6c 00 75 |.b..s;. .v.a.l.u| 00c0 00 65 00 73 00 20 00 28-00 40 00 50 00 31 00 2c |.e.s. .( .@.P.1.,| 00d0 00 40 00 50 00 32 00 2c-00 40 00 50 00 33 00 29 |.@.P.2., .@.P.3.)| 00e0 00 00 00 26 04 04 01 00-00 00 |...&.... ..| token.c:495:tds_process_tokens(0x4136fc0, 0xbef39974, 0xbef39978, 0x104) util.c:162:Changed query state from PENDING to READING net.c:662:Received packet 0000 04 01 00 2f 00 35 01 00-ff 11 00 c3 00 00 00 00 |.../.5.. ........| 0010 00 79 00 00 00 00 ac 0d-00 00 01 00 00 00 00 26 |.y...... .......&| 0020 04 04 01 00 00 00 fe 00-00 e0 00 00 00 00 00 |........ .......| token.c:510:processing result tokens. marker is ff(DONEINPROC) token.c:2275:tds_process_end: more_results = 1 was_cancelled = 0 error = 0 done_count_valid = 1 token.c:2306: rows_affected = 0 token.c:510:processing result tokens. marker is 79(RETURNSTATUS) token.c:510:processing result tokens. marker is ac(PARAM) token.c:567:processing parameters for sp 11 token.c:569:calling tds_process_param_result token.c:1199:tds_process_param_result(0x4136fc0, 0xbef3990c) token.c:1583:tds_get_data_info(0x4136fc0, 0x413a590, 1) [for parameter]token.c:1646:processing result. type = 38(integer-null), varint_size 1 token.c:1667:processing result. column_size 4 token.c:1985:tds_get_data: type 38, varint size 1 token.c:2049:tds_get_data(): wire column size is 4 log.c:481:type integer-null has value 1 token.c:573:1 hidden return parameters token.c:510:processing result tokens. marker is fe(DONEPROC) token.c:2275:tds_process_end: more_results = 0 was_cancelled = 0 error = 0 done_count_valid = 0 token.c:2291:tds_process_end() state set to TDS_IDLE util.c:162:Changed query state from READING to IDLE token.c:2306: rows_affected = 0 util.c:110:logic error: cannot change query state from IDLE to PENDING token.c:495:tds_process_tokens(0x4136fc0, 0xbef39974, 0xbef39978, 0x104) token.c:498:tds_process_tokens() state is COMPLETED odbc.c:1294:SQLBindParameter(0x4139d88, 1, 1, 4, 4, 0, 0, 0x804a560, 0, 0x804a564) odbc.c:1195:_SQLBindParameter(0x4139d88, 1, 1, 4, 4, 0, 0, 0x804a560, 0, 0x804a564) odbc.c:1294:SQLBindParameter(0x4139d88, 2, 1, 1, -8, 40, 0, 0x804a580, 0, 0x804a5ac) odbc.c:1195:_SQLBindParameter(0x4139d88, 2, 1, 1, -8, 40, 0, 0x804a580, 0, 0x804a5ac) error.c:409:odbc_errs_add: "Invalid data type" odbc.c:1294:SQLBindParameter(0x4139d88, 3, 1, 1, -9, 40, 0, 0x804a5c0, 0, 0x804a5ec) odbc.c:1195:_SQLBindParameter(0x4139d88, 3, 1, 1, -9, 40, 0, 0x804a5c0, 0, 0x804a5ec) error.c:409:odbc_errs_add: "Invalid data type" odbc.c:3318:SQLExecute(0x4139d88) prepare_query.c:202:parsing 0 parameters sql2tds.c:150:type=4 sql2tds.c:156:trace prepare_query.c:207:parse_prepared_query: logic_error: parameter out of bounds: 2 > 1 || 2 > 1 odbc.c:3332:SQLExecute returns SQL_ERROR or SQL_NULL_DATA (start_parse_prepared_query failed) error.c:613:SQLGetDiagRec(3, 0x4139d88, 1, 0xbef39960, 0xbef3995c, 0xbef39740, 513, 0xbef3973e) error.c:618:SQLGetDiagRec returning 100
-
Re: [freetds] Status of UTF-8 support in 0.83 dev
, (continued)
- Re: [freetds] Status of UTF-8 support in 0.83 dev, Sebastien FLAESCH, 08/12/2008
-
Re: [freetds] Status of UTF-8 support in 0.83 dev,
Sebastien FLAESCH, 08/12/2008
-
Re: [freetds] Status of UTF-8 support in 0.83 dev,
Sebastien FLAESCH, 08/12/2008
-
Re: [freetds] Status of UTF-8 support in 0.83 dev,
James K. Lowden, 08/13/2008
-
Re: [freetds] Status of UTF-8 support in 0.83 dev,
Sebastien FLAESCH, 08/13/2008
- Re: [freetds] Status of UTF-8 support in 0.83 dev, Sebastien FLAESCH, 08/14/2008
- Re: [freetds] Status of UTF-8 support in 0.83 dev, James K. Lowden, 08/14/2008
- Re: [freetds] Status of UTF-8 support in 0.83 dev, Sebastien FLAESCH, 08/14/2008
- Re: [freetds] Status of UTF-8 support in 0.83 dev, James K. Lowden, 08/14/2008
- Re: [freetds] Status of UTF-8 support in 0.83 dev, Sebastien FLAESCH, 08/14/2008
-
Re: [freetds] Status of UTF-8 support in 0.83 dev,
Sebastien FLAESCH, 08/13/2008
-
Re: [freetds] Status of UTF-8 support in 0.83 dev,
James K. Lowden, 08/13/2008
-
Re: [freetds] Status of UTF-8 support in 0.83 dev,
Sebastien FLAESCH, 08/12/2008
- Re: [freetds] Status of UTF-8 support in 0.83 dev, Sebastien FLAESCH, 08/14/2008
- Re: [freetds] Status of UTF-8 support in 0.83 dev, Sebastien FLAESCH, 08/14/2008
- Re: [freetds] Status of UTF-8 support in 0.83 dev, James K. Lowden, 08/14/2008
- Re: [freetds] Status of UTF-8 support in 0.83 dev, Sebastien FLAESCH, 08/14/2008
- Re: [freetds] Status of UTF-8 support in 0.83 dev, James K. Lowden, 08/14/2008
- Re: [freetds] Status of UTF-8 support in 0.83 dev, Frediano Ziglio, 08/17/2008
- Re: [freetds] Status of UTF-8 support in 0.83 dev, James K. Lowden, 08/18/2008
- Re: [freetds] Status of UTF-8 support in 0.83 dev, ZIGLIO, Frediano, VF-IT, 08/19/2008
- Re: [freetds] Status of UTF-8 support in 0.83 dev, James K. Lowden, 08/19/2008
- Re: [freetds] Status of UTF-8 support in 0.83 dev, James K. Lowden, 08/14/2008
- Re: [freetds] Status of UTF-8 support in 0.83 dev, Sebastien FLAESCH, 08/14/2008
Archive powered by MHonArc 2.6.24.