Re: Empty VARCHAR parameters converted to NULL

Frediano Ziglio <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <CAHt6W4cZbXoO_JKHxbunVriTosR45+cHed0EY40WdwaLAt7URA@mail.gmail.com>
I was looking at this issue. The problem raise when you want a return
value but you want to pass a empty or a NULL varchar. How to
differentiate in this case? value cannot be NULL for return
parameters.

Frediano


2016-01-19 18:25 GMT+00:00 Joshua Lang <[email protected]>:
> I've read that older versions didn't even support passing 0-length data
> (prior to TDS 7.0 I believe). If this could be supported for later versions
> of TDS 7.0, that would be great.
>
> Thanks.
>
> On Tue, Jan 19, 2016 at 2:52 AM, Frediano Ziglio <[email protected]> wrote:
>
>> 2016-01-16 1:41 GMT+00:00 Joshua Lang <[email protected]>:
>> > In the latest version of FreeTDS-dblib (0.95.79) I'm passing rpc VARCHAR
>> > parameters of 0 length, but non-NULL (empty strings). FreeTDS seems to
>> turn
>> > these into NULL values before passing them on to SQL Server. From what
>> I've
>> > read, it seems as if older databases didn't support passing empty
>> strings,
>> > but newer ones do? (i.e. TDS 7.0+ do support empty strings).
>> >
>> > It seems as this is a known issue, but I was wondering if it is possible
>> to
>> > fix it for the newer versions of SQL server? E.g. in dbrpcparam()
>> passing a
>> > non-NULL pointer to the 'value' parameter and a 0 to 'datalen' would
>> > indicate an empty string is desired if possible.
>> >
>> > Thoughts?
>>
>>
>> The main problem is not libTDS (the code library) but dbrpcparam
>> specification.
>> datalen < 0 is invalid for variable fields (like VARCHAR) and 0 is used
>> for NULL
>> value (no matter the data pointer). But looks like your suggestion
>> (not NULL value
>> and 0 datalen) could be a good choice.
>> Not sure however if this could work with all types and server versions
>> (for instance
>> 0 size TEXT).
>> We can do it but I'm not thinking about backporting it to 0.95.
>>
>> Frediano
>> _______________________________________________
>> FreeTDS mailing list
>> [email protected]
>> http://lists.ibiblio.org/mailman/listinfo/freetds
>>
> _______________________________________________
> FreeTDS mailing list
> [email protected]
> http://lists.ibiblio.org/mailman/listinfo/freetds
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.