1. odbc wrapper
- Posted by George Walters <gwalters at sc.rr.com> May 10, 2005
- 444 views
Matt, I think there is a bug in function getData. I was losing a character in a data field(a very long data field) about every 256 chars. The data field was an invoice text field that was a page or 2 of characters. I changed this line below (removed the "-1" and the character loss went away. Could you check what I did(a shot in the dark) and make sure it was a correct change. I am not at all sure of what I did.
-- have to call repeatedly, since data was too big for the -- buffer while len > mylen do data[row][i] &= peek( { ptr1, mylen } )--<<<<<<<<<<<<<<<<<<< removed the -1 which was mylen-1 ok = c_func( SQLGetData, { hs, i, SQL_C_DEFAULT, ptr1, mylen, ptr2 } ) len = peek4s( ptr2 ) end while
2. Re: odbc wrapper
- Posted by Mario Steele <eumario at trilake.net> May 10, 2005
- 442 views
George Walters wrote: > > > Matt, I think there is a bug in function getData. I was losing a character > in a data field(a very long data field) about every 256 chars. The data field > was an invoice text field that was a page or 2 of characters. I changed this > line below (removed the "-1" and the character loss went away. Could you check > what I did(a shot in the dark) and make sure it was a correct change. I am > not at all sure of what I did. > > }}} <eucode> > -- have to call repeatedly, since data was too big for the > -- buffer > while len > mylen do > data[row][i] &= peek( { ptr1, mylen } > )--<<<<<<<<<<<<<<<<<<< removed the -1 which was mylen-1 > ok = c_func( SQLGetData, { hs, i, SQL_C_DEFAULT, > ptr1, mylen, ptr2 } ) > len = peek4s( ptr2 ) > > end while > </eucode> {{{ > That is more then correct. I think Matt was attempting to account for the 0 byte terminator, that comes from most C Style strings. But in doing so, He forgot that ODBC doesn't account for the 0 Byte terminator, when it returns the length of the String in memory. Mario Steele http://enchantedblade.trilake.net Attaining World Dominiation, one byte at a time...
3. Re: odbc wrapper
- Posted by Matt Lewis <matthewwalkerlewis at gmail.com> May 11, 2005
- 440 views
Mario Steele wrote: > > George Walters wrote: > > > > > > Matt, I think there is a bug in function getData. I was losing a character > > in a data field(a very long data field) about every 256 chars. The data > > field > > was an invoice text field that was a page or 2 of characters. I changed this > > > > line below (removed the "-1" and the character loss went away. Could you > > check > > what I did(a shot in the dark) and make sure it was a correct change. I am > > not at all sure of what I did. > > > > }}} <eucode> > > -- have to call repeatedly, since data was too big for > > the > > -- buffer > > while len > mylen do > > data[row][i] &= peek( { ptr1, mylen } > > )--<<<<<<<<<<<<<<<<<<< removed the -1 which was mylen-1 > > ok = c_func( SQLGetData, { hs, i, SQL_C_DEFAULT, > > ptr1, mylen, ptr2 } ) > > len = peek4s( ptr2 ) > > > > end while > > </eucode> {{{ > > > > That is more then correct. I think Matt was attempting to account for the > 0 byte terminator, that comes from most C Style strings. But in doing so, > He forgot that ODBC doesn't account for the 0 Byte terminator, when it returns > the length of the String in memory. Undoubtedly that's exactly what I did. I'll correct this for the next version. Matt Lewis