Re: Assertin failed: unknown bindtype with unknown varlen
Frediano Ziglio <[email protected]>
| Newsgroups | gmane.comp.db.tds.freetds |
|---|---|
| Message-ID | <CAHt6W4eETTKAzJHXgwMrD1+02-xbs3uQVuTi8TFnAhZc0m-1EQ@mail.gmail.com> |
2015-04-01 9:04 GMT+01:00 LacaK <[email protected]>: > Attached patch, which works for me ... > Thanks > -Laco. > I don't know... dbgetnull is a function which is declared only on our public headers but is exported by our library. I would prefer if dbgetnull does not throw an exception for invalid types/varlen Frediano > >> Hi, >> I get this error "unknown bindtype with unknown varlen" when calling >> dbconvert() in dblib. >> This is my situation: >> I have table with VARBINARY column with value which is empty not null >> (dbdatlen() = 0) >> Then I call dbconvert with srctype=SQLBINARY, srclen=0, >> desttype=SQLBINARY, destlen > 0 and I get above mentioned assertion. >> >> Looking into dbconvert there is in the begining (note condition: >> srclen==0): >> >> if (src == NULL || srclen == 0) { >> int bind = dbbindtype(desttype); >> int size = tds_get_size_by_type(desttype); >> >> if (SYBCHAR == desttype) { >> if (destlen > 0) { >> size = destlen; >> bind = CHARBIND; >> } else { >> size = 1; >> bind = NTBSTRINGBIND; >> } >> } >> >> dbgetnull(dbproc, bind, size, dest); // <--- HERE OCCURS >> ASSERTION >> return size; >> } >> >> Next look into dbgetnull(): >> >> /* >> * For variable-length types, nonpositive varlen indicates >> * buffer is "big enough" but also not to pad. >> * Apply terminator (if applicable) and go home. >> */ >> if (varlen <= 0) { >> switch (bindtype) { >> case STRINGBIND: >> case NTBSTRINGBIND: >> varaddr[pnullrep->len] = '\0'; >> /* fall thru */ >> case CHARBIND: >> case VARYCHARBIND: >> + case BINARYBIND: // <--- MISSING HERE ? >> + case VARYBINBIND: // <--- MISSING HERE ? >> break; >> >> As BINARYBIND is not handled ATM default is executed: >> default: >> assert(!"unknown bindtype with unknown varlen"); >> >> Can you please fix it ? >> Thanks >> -Laco. >> _______________________________________________ >> FreeTDS mailing list >> [email protected] >> http://lists.ibiblio.org/mailman/listinfo/freetds >> > > _______________________________________________ > FreeTDS mailing list > [email protected] > http://lists.ibiblio.org/mailman/listinfo/freetds >