Thank you for the patch. I will try to integrate it into the driver for the next release.
Thanks, Marco SAP Labs Berlin > -----Original Message----- > From: Alexey Gaidukov [mailto:[EMAIL PROTECTED] > Sent: Freitag, 2. September 2005 05:05 > To: maxdb@lists.mysql.com > Subject: RE: DBD::MaxDB and Unicode-Data > > We use DBD::MaxDB with the following UNCODE patch. We our > needs it works > fine. > > > > > diff -uNr DBD-MaxDB-7.5.00.32.origin/dbdimp.c > DBD-MaxDB-7.5.00.32/dbdimp.c > --- DBD-MaxDB-7.5.00.32.origin/dbdimp.c 2005-07-21 > 17:01:31.000000000 +0900 > +++ DBD-MaxDB-7.5.00.32/dbdimp.c 2005-08-23 > 18:40:34.000000000 +0900 > @@ -477,11 +477,12 @@ > dbd_maxdb_internal_error(dbh, DBD_ERR_INITIALIZATION_FAILED_S, > "Cannot get connection from environment"); > DBD_MAXDB_METHOD_RETURN(imp_dbh, dbd_maxdb_db_login6, > SQLDBC_FALSE); > } > - if (! SQLDBC_Connection_connectASCII(imp_dbh->m_connection, > + if (! SQLDBC_Connection_connectNTS(imp_dbh->m_connection, > host, > dbname, > user, > password, > + > SQLDBC_StringEncodingType_Encoding_UTF8, > > imp_dbh->m_connprop)==SQLDBC_OK){ > dbd_maxdb_sqldbc_error(dbh, > SQLDBC_Connection_getError(imp_dbh->m_connection)) ; > DBD_MAXDB_METHOD_RETURN(imp_dbh, dbd_maxdb_db_login6, > SQLDBC_FALSE); > @@ -967,7 +968,7 @@ > } > } > > - retcode = SQLDBC_Statement_executeASCII (imp_dbh->m_stmt, > statement); > + retcode = SQLDBC_Statement_executeNTS (imp_dbh->m_stmt, > statement,SQLDBC_StringEncodingType_Encoding_UTF8); > if (retcode != SQLDBC_OK && retcode != SQLDBC_NO_DATA_FOUND){ > dbd_maxdb_sqldbc_error(dbh, > SQLDBC_Statement_getError(imp_dbh->m_stmt)); > DBD_MAXDB_METHOD_RETURN (imp_dbh, dbd_maxdb_db_executeUpdate, > DBD_MAXDB_ERROR_RETVAL); > @@ -1029,7 +1030,7 @@ > DBD_MAXDB_METHOD_RETURN(imp_sth, dbd_maxdb_st_prepare, > SQLDBC_FALSE); > } > } > - if (SQLDBC_PreparedStatement_prepareASCII (imp_sth->m_prepstmt, > statement) != SQLDBC_OK) { > + if (SQLDBC_PreparedStatement_prepareNTS (imp_sth->m_prepstmt, > statement,SQLDBC_StringEncodingType_Encoding_UTF8) != > dbd_maxdb_sqldbc_error(sth, > SQLDBC_PreparedStatement_getError(imp_sth->m_prepstmt)); > DBD_MAXDB_METHOD_RETURN(imp_sth, dbd_maxdb_st_prepare, > SQLDBC_FALSE); > } > @@ -1282,6 +1283,7 @@ > break; > } > case SQLDBC_SQLTYPE_VARCHARUNI : { > + m_col->hostType = SQLDBC_HOSTTYPE_UTF8; > break; > } > case SQLDBC_SQLTYPE_BOOLEAN : { > @@ -1304,7 +1306,7 @@ > case SQLDBC_SQLTYPE_LONGE : > case SQLDBC_SQLTYPE_STRUNI : > case SQLDBC_SQLTYPE_LONGUNI : { > - m_col->hostType = SQLDBC_HOSTTYPE_ASCII; > + m_col->hostType = SQLDBC_HOSTTYPE_UTF8; > ColumnLength = DBIc_LongReadLen(imp_sth); > break; > } > @@ -1788,7 +1790,7 @@ > } > case sth_maxdb_option_CursorName:{ > char* cursorname = SvPV(valuesv,kl); > - SQLDBC_PreparedStatement_setCursorName > (imp_sth->m_prepstmt, cursorname, kl, SQLDBC_StringEncodingType_En > + SQLDBC_PreparedStatement_setCursorName > (imp_sth->m_prepstmt, cursorname, kl, SQLDBC_StringEncodingType_En > erg = SQLDBC_TRUE; > break; > } > @@ -1836,7 +1838,7 @@ > if( SQLDBC_PreparedStatement_getCursorName ( > imp_sth->m_prepstmt, > cname, > - SQLDBC_StringEncodingType_Encoding_Ascii, > + SQLDBC_StringEncodingType_Encoding_UTF8, > cnameLen, > &bufferLength) != SQLDBC_OK){ > break; > @@ -1885,7 +1887,7 @@ > if( SQLDBC_PreparedStatement_getTableName( > imp_sth->m_prepstmt, > cname, > - SQLDBC_StringEncodingType_Encoding_Ascii, > + SQLDBC_StringEncodingType_Encoding_UTF8, > cnameLen, > &bufferLength) != SQLDBC_OK){ > break; > @@ -1910,7 +1912,7 @@ > if (SQLDBC_ResultSetMetaData_getColumnName > (imp_sth->m_rsmd, > i, > cname, > - > SQLDBC_StringEncodingType_Encoding_Ascii, > + > SQLDBC_StringEncodingType_Encoding_UTF8, > cnameLen, > > &colnamelen) != > SQLDBC_OK) { > dbd_maxdb_internal_error(sth, > DBD_ERR_CANNOT_GET_COLUMNNAME_D, i); > @@ -2178,6 +2180,11 @@ > parameter->value = newSViv(intval); > break; > } > + case SQLDBC_SQLTYPE_UNICODE : > + case SQLDBC_SQLTYPE_VARCHARUNI : > + parameter->hostType = SQLDBC_HOSTTYPE_UTF8; > + parameter->value = newSVsv(value); > + break; > case SQLDBC_SQLTYPE_STRB : > case SQLDBC_SQLTYPE_LONGB : > case SQLDBC_SQLTYPE_CHB : > @@ -2218,7 +2225,7 @@ > case SQLDBC_SQLTYPE_LONGE : > case SQLDBC_SQLTYPE_STRUNI : > case SQLDBC_SQLTYPE_LONGUNI : { > - parameter->hostType = SQLDBC_HOSTTYPE_ASCII; > + parameter->hostType = SQLDBC_HOSTTYPE_UTF8; > paramlen = DBIc_LongReadLen(imp_sth); > break; > } > > > -- > MaxDB Discussion Mailing List > For list archives: http://lists.mysql.com/maxdb > To unsubscribe: > http://lists.mysql.com/[EMAIL PROTECTED] > >
smime.p7s
Description: S/MIME cryptographic signature