Skip to Content.
Sympa Menu

freetds - [freetds] 0.65 (or whatever) Issues

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "ZIGLIO, Frediano, VF-IT" <Frediano.Ziglio AT vodafone.com>
  • To: "FreeTDS Development Group" <freetds AT lists.ibiblio.org>
  • Subject: [freetds] 0.65 (or whatever) Issues
  • Date: Tue, 17 Apr 2007 16:22:22 +0200

I found some possibles issues on current CVS
- multiple RPCs and cursor updates (ODBC). sql2tds and some function in
odbc_util do not take into account proper row and could lead to some
corruption. Not that used but I think has to be fixed. I discovered this
problem implementing cursors update. To send colunms to server we call
sql2tds using informations from ARD/IRD however sql2tds use some
informations from APD/IPD and using curr_param_row to refer to row
instead of current row however this is wrong for cursor updates (we do
not update curr_param_row here!!!). So I realize that when
sql_desc_octet_length_ptr and/or sql_desc_indicator_ptr are used we
should take into account row, sql_desc_bind_type and
sql_desc_bind_offset_ptr. In odbc_util.c odbc_set_return_status,
odbc_set_return_params and odbc_get_param_len use these members without
considering row so all callers should know which row to refer. Perhaps
we should add and consider row and ARD/APD to these functions... I'll
try to fix in this way...
- autodetect tds version. The problem is that upper library receive all
errors/warning/environment change for all possible connection tries. We
should cache all that things and reissue last try to upper layer
- dblib errors, Microsoft/Sybase. I realize that error constants of the
two library are different!!! This means that libraries are not binary
compatible and perhaps --enable-msdblib can have some problems... The
result is that using MS headers and FreeTDS's libraries can lead to
strange conditions handling errors (errors not handled in the same way).

freddy77





Archive powered by MHonArc 2.6.24.

Top of Page