Skip to Content.
Sympa Menu

freetds - Re: [freetds] Are LOBs supported?

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] Are LOBs supported?
  • Date: Tue, 8 Jan 2008 17:31:22 +0100

>
> Sebastien FLAESCH wrote:
> > SQLBindParameter(m_hstmt, 2, SQL_PARAM_INPUT,
> > SQL_C_BINARY,
> > SQL_LONGVARCHAR, 0x10000000, 0, buf2, 0,
> > &vind1);
> > CHECK_RCODE(SQL_HANDLE_STMT,m_hstmt,"SQLBindParameter 2");
>
> Note that we have to bind the blob params with a large size
> for SQL Server
> drivers, otherwise you can't insert into the database...
>
> -> get SQLSTATE 07002 "COUNT field incorrect or syntax error"
> ... no idea why.
>
> Other APIs like DB2 CLI don't need to pass a size in such case.
>
> Don't know if this matters when using SQL_DATA_AT_EXEC with
> FreeTDS, but
> wanted to warn you about this strange thing.
>
> Note also that we use column-wise binding to fetch rows with:
>
> SQL_ATTR_ROW_BIND_TYPE, SQL_BIND_BY_COLUMN
>
> The test does not use this but our driver does, so if you fix
> this problem
> I can continue to test with our driver code.
>
> Thanks!
> Seb

SQL_DATA_AT_EXEC is not supported. SQLGetInfo report this. Perhaps error
from our library is not correct but it's not easy to implement (i'll fix
error report ASAP). You can however use SQL_LEN_AT_EXEC witch require a
length and which should be even faster. I noted also that in many
examples you bind parameters after SQLPrepare. I would suggest to bind
before. In many cases (using many drivers) it's faster. I don't
understand how your example works... when does SQLPutData return
"done"??

freddy77




Archive powered by MHonArc 2.6.24.

Top of Page