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]
> 
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to