Skip to Content.
Sympa Menu

freetds - RE: [freetds] ODBC - binary, row count and compatibility

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: RE: [freetds] ODBC - binary, row count and compatibility
  • Date: Tue, 9 Mar 2004 12:12:31 +0100

>
> I adapted most of these changes to the 0.62 branch, but I
> haven't committed them yet. I'm not sure I want to, because
> it's getting to be a rather big patch, and we still don't
> have a fix for the dropped errors. I'm beginning to think
> we'll issue 0.63 rather soon, instead, depending on how much
> more needs to be done. What do you think?
>

I agree to release a new 0.63 (as simple fix version). I think we should
finish in some way what we started:
1- name normalization (removing INFO and others)
finished ? BCPCOLINFO rename ? I think this structure should be
removed (in a future version)
2- header privatizations (removing tds.h dependency)
this is quite important for future binary compatibility. Export
limitation are committed and works.
3- cancel. We added a test, analyzed the problem but no code... We have
two options: comment test or start coding.
4- prepared statement. There are some code (needed for Oracle bindings)
to fetch data types after prepare. There are a lot of TODO (for
optimizations and others problems). binary_test fails if compiled with
--enable-developing.
5- ODBC data test fails for numeric, convert.c do not convert NUMERIC ->
NUMERIC changing precision/scale, however it's a new feature so we can
comment this part of test and place a TODO
6- ODBC testodbc test need some adjustement (Sybase compatibility and
cursors handling)

> I changed the odbc/unittest/transaction.c procedure:
>
> CREATE PROCEDURE testinsert @value INT AS
> INSERT INTO TestTransaction VALUES ( @value )
> SELECT * FROM TestTransaction
> select @value / (@value - @value)
>
> (if you pass the procedure an argument). Here's the output:
>
> EXEC testinsert 1
> EXEC testinsert 2
> DROP PROCEDURE testinsert
> DROP PROCEDURE testinsert
> CREATE PROCEDURE testinsert @value INT AS
> INSERT INTO TestTransaction VALUES ( @value )
>
> EXEC testinsert 1
> EXEC testinsert 2
> DROP PROCEDURE testinsert
> DROP TABLE TestTransaction
> Done.
>
> :-(
>
> I'm still not sure how to go about fixing this.
>

:(( another issue to fix.... SQLEndTran calls _SQLFreeStmt(CLOSE) if
state is PENDING, _SQLFreeStmt send a cancel however I don't think this
is correct, perhaps _SQLFreeStmt should just discard results from server
(some tests needed). It seems that calling _SQLFreeStmt(DROP) should
send cancel however SQLEndTran should just discard results. The easy fix
is to discard results (just calling tds_process_simple_query
perhaps...).

freddy77




Archive powered by MHonArc 2.6.24.

Top of Page