freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
- From: M C <mcbp223 AT yahoo.com>
- To: freetds AT lists.ibiblio.org
- Subject: [freetds] RE: textptr size in blob field
- Date: Fri, 26 Mar 2004 00:08:08 -0800 (PST)
> From: Lowden, James K LowdenJK at bernstein.com
> Sent: Thu Mar 25 16:48:36 EST 2004
> MC,
>
> Let me make sure I understand your point.
>
> Columns whose varint_size is 4 may be of several datatypes, including
> SYBVARIANT and SYBLONGBINARY. If it's not one of those we assume (probably
> a little unsafely) that it's SYBTEXT/SYBIMAGE. In that case, we know the
> TDS stream won't have 4 bytes of data, but will instead have a 1-byte
> prefix describing the ensuing bytes.
>
> We read the byte an examine it. If its value is 16, we next read:
>
> 1. a 16-byte textptr handle
> 2. an 8-byte timestamp
> 3. a 4-byte integer, the column size
>
> else we set the column size to 0.
>
> You're saying the textptr is not always 16 bytes, that it may be anywhere
> from 1 to 256. You're looking at our data structure:
>
> typedef struct tds_blob
> {
> TDS_CHAR *textvalue;
> TDS_CHAR textptr[16];
> TDS_CHAR timestamp[8];
> } TDSBLOB;
>
> and asking if we could have "TDS_CHAR* textptr". I think I'd be inclined
> to make it:
>
> typedef struct tds_blob
> {
> TDS_CHAR *textvalue;
> TDS_TINYINT textptrlen;
> TDS_CHAR textptr[256];
> TDS_CHAR timestamp[8];
> } TDSBLOB;
>
> instead. The logic to allocate and free those bytes would otherwise be
> almost much as the 256 we're trying to save.
>
> Do you know a way to coerce the server into sending differently sized
> textptr's? If not, do you have an example, in a trace or TDSDUMP log? I
> would expect things to fall apart pretty quickly, because the TDS stream
> would be misinterpreted.
>
> > I take it that textptr works like a bookmark, the server can
> > send anything and the client will send back the same thing
> > when asking for a chunk.
>
> I think that's right.
>
> Regards,
>
> --jkl
>
> P.S., What's your name, or do you like to be called "MC"?
James,
I'm good guy I can't coerce the server :), I don't know how anyway, and 16
might be hard-coded as well in the known servers, but some custom servers
might want to use the feature if it is in the protocol.
I was wondering why do you do the switch based on size instead of data type?
I can send you my source code for the tests I'm doing, but it's in C++ on VC6
so far.
How do you send email to this list so they appear thread indented, as replies?
Mike
.. here follows the binary, with textptr size increasing from 1. Look for the
tag -<TIME>- which I put in the place of the timestamp, coming after textptr.
dpk 1433
streambufT::streambufT()
------------------------------------------------------------------------
>> TDS::PRELOGIN, length(8 + 33), packet(0), last
#9474; 00 00 15 00 06 01 00 1b 00 01 02 00 1c 00 01 03 ................
#9474; 00 1d 00 04 ff 08 00 01 55 00 00 00 00 e0 06 00 ........U.......
#9474; 00 .
<< TDS::RESPONSE, length(8 + 59), packet(1), last
#9474; aa 00 00 00 2f 0f a2 01 0e 0a 03 20 4c 6f 67 69 ..../...... Logi
#9474; 6e 20 66 61 69 6c 65 64 0d 0a 14 4d 69 63 72 6f n failed...Micro
#9474; 73 6f 66 74 20 53 51 4c 20 53 65 72 76 65 72 00 soft SQL Server.
#9474; 00 00 fd 00 fd 00 00 00 00 00 02 ..².²......
------------------------------------------------------------------------
streambufT::~streambufT()
streambufT::streambufT()
------------------------------------------------------------------------
>> TDS::LOGIN, length(8 + 504), packet(1), more
#9474; 44 50 4b 00 00 00 00 00 00 00 00 00 00 00 00 00 DPK.............
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 30 30 30 .............000
#9474; 30 30 35 31 34 00 00 00 00 00 00 00 00 00 00 00 00514...........
#9474; 00 00 00 00 00 44 45 53 54 77 77 08 03 01 06 0a .....DESTww.....
#9474; 09 01 01 00 08 00 00 00 00 00 00 00 53 51 4c 20 ............SQL
#9474; 51 75 65 72 79 20 41 6e 61 6c 79 7a 65 72 00 00 Query Analyzer..
#9474; 00 00 00 00 00 00 00 00 00 00 12 44 50 4b 2c 31 ...........DPK,1
#9474; 34 33 33 00 00 00 00 00 00 00 00 00 00 00 00 00 433.............
#9474; 00 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 02 04 02 00 00 4f 44 ..............OD
#9474; 42 43 00 00 00 00 00 00 04 07 00 00 00 00 0d 11 BC..............
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 ........
>> TDS::LOGIN, length(8 + 63), packet(2), last
#9474; 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 34 30 39 36 00 00 04 00 00 00 .....4096......
<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........
------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 353), packet(1), last
#9474; 65 78 65 63 20 73 70 5f 73 65 72 76 65 72 5f 69 exec sp_server_i
#9474; 6e 66 6f 20 31 20 65 78 65 63 20 73 70 5f 73 65 nfo 1 exec sp_se
#9474; 72 76 65 72 5f 69 6e 66 6f 20 32 20 65 78 65 63 rver_info 2 exec
#9474; 20 73 70 5f 73 65 72 76 65 72 5f 69 6e 66 6f 20 sp_server_info
#9474; 35 30 30 20 73 65 6c 65 63 74 20 35 30 31 2c 4e 500 select 501,N
#9474; 55 4c 4c 2c 31 20 77 68 65 72 65 20 27 61 27 3d ULL,1 where 'a'=
#9474; 27 41 27 20 73 65 6c 65 63 74 20 35 30 34 2c 63 'A' select 504,c
#9474; 2e 6e 61 6d 65 2c 63 2e 64 65 73 63 72 69 70 74 .name,c.descript
#9474; 69 6f 6e 2c 63 2e 64 65 66 69 6e 69 74 69 6f 6e ion,c.definition
#9474; 20 66 72 6f 6d 20 6d 61 73 74 65 72 2e 64 62 6f from master.dbo
#9474; 2e 73 79 73 63 68 61 72 73 65 74 73 20 63 2c 6d .syscharsets c,m
#9474; 61 73 74 65 72 2e 64 62 6f 2e 73 79 73 63 68 61 aster.dbo.syscha
#9474; 72 73 65 74 73 20 63 31 2c 6d 61 73 74 65 72 2e rsets c1,master.
#9474; 64 62 6f 2e 73 79 73 63 6f 6e 66 69 67 75 72 65 dbo.sysconfigure
#9474; 73 20 66 20 77 68 65 72 65 20 66 2e 63 6f 6e 66 s f where f.conf
#9474; 69 67 3d 31 32 33 20 61 6e 64 20 66 2e 76 61 6c ig=123 and f.val
#9474; 75 65 3d 63 31 2e 69 64 20 61 6e 64 20 63 31 2e ue=c1.id and c1.
#9474; 63 73 69 64 3d 63 2e 69 64 20 73 65 74 20 74 65 csid=c.id set te
#9474; 78 74 73 69 7a 65 20 32 31 34 37 34 38 33 36 34 xtsize 214748364
#9474; 37 20 73 65 74 20 61 72 69 74 68 61 62 6f 72 74 7 set arithabort
#9474; 20 6f 6e 20 73 65 74 20 69 6d 70 6c 69 63 69 74 on set implicit
#9474; 5f 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 6f 66 _transactions of
#9474; 66 f
LINE: exec sp_server_info 1 exec sp_server_info 2 exec sp_server_info 500
select
501,NULL,1 where 'a'='A' select 504,c.name,c.description,c.definition from
mast
er.dbo.syscharsets c,master.dbo.syscharsets c1,master.dbo.sysconfigures f
where
f.config=123 and f.value=c1.id and c1.csid=c.id set textsize 2147483647 set
arit
habort on set implicit_transactions off
<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........
------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 18), packet(1), last
#9474; 53 45 54 20 54 45 58 54 53 49 5a 45 20 36 34 35 SET TEXTSIZE 645
#9474; 31 32 12
LINE: SET TEXTSIZE 64512
<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........
------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 25), packet(1), last
#9474; 73 65 6c 65 63 74 20 40 40 6d 69 63 72 6f 73 6f select @@microso
#9474; 66 74 76 65 72 73 69 6f 6e ftversion
LINE: select @@microsoftversion
<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........
------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 19), packet(1), last
#9474; 53 45 4c 45 43 54 20 53 55 53 45 52 5f 4e 41 4d SELECT SUSER_NAM
#9474; 45 28 29 E()
LINE: SELECT SUSER_NAME()
<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........
------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 13), packet(1), last
#9474; 73 65 6c 65 63 74 20 40 40 73 70 69 64 select @@spid
LINE: select @@spid
<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........
------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 23), packet(1), last
#9474; 73 65 74 20 73 68 6f 77 70 6c 61 6e 20 20 20 20 set showplan
#9474; 20 20 6f 66 66 0d 0a off..
LINE: set showplan off
LINE:
<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........
------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 32), packet(1), last
#9474; 53 45 54 20 4e 4f 45 58 45 43 20 4f 46 46 20 53 SET NOEXEC OFF S
#9474; 45 54 20 50 41 52 53 45 4f 4e 4c 59 20 4f 46 46 ET PARSEONLY OFF
LINE: SET NOEXEC OFF SET PARSEONLY OFF
<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........
------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 10), packet(1), last
#9474; 75 73 65 20 6d 61 73 74 65 72 use master
LINE: use master
<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........
------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 36), packet(1), last
#9474; 73 65 74 20 6e 6f 63 6f 75 6e 74 20 6f 66 66 0d set nocount off.
#9474; 0a 73 65 74 20 61 72 69 74 68 61 62 6f 72 74 20 .set arithabort
#9474; 6f 6e 0d 0a on..
LINE: set nocount off
LINE: set arithabort on
LINE:
<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........
------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 71), packet(1), last
#9474; 2d 2d 65 78 65 63 20 54 44 53 54 45 53 54 44 49 --exec TDSTESTDI
#9474; 52 3a 63 3a 5c 77 69 6e 6e 74 5c 2a 2e 69 6e 69 R:c:\winnt\*.ini
#9474; 0d 0a 65 78 65 63 20 54 44 53 54 45 53 54 44 49 ..exec TDSTESTDI
#9474; 52 3a 63 3a 5c 73 6f 6d 65 5f 66 69 6c 65 73 5c R:c:\some_files\
#9474; 2a 2e 74 78 74 0d 0a *.txt..
LINE: --exec TDSTESTDIR:c:\winnt\*.ini
LINE: exec TDSTESTDIR:c:\some_files\*.txt
<< TDS::RESPONSE, length(8 + 504), packet(1), more
#9474; a0 1a 00 08 66 69 6c 65 6e 61 6d 65 08 66 69 6c á...filename.fil
#9474; 65 73 69 7a 65 07 63 6f 6e 74 65 6e 74 a1 29 00 esize.content.).
#9474; 00 00 00 00 27 fe 00 00 00 00 38 00 00 00 00 23
....'#9632;....8....#
#9474; 00 00 00 40 13 00 63 3a 5c 73 6f 6d 65 5f 66 69 ...@..c:\some_fi
#9474; 6c 65 73 5c 2a 2e 74 78 74 d1 16 43 6f 70 79 20 les\*.txt..Copy
#9474; 28 31 30 29 20 6f 66 20 66 69 6c 65 35 2e 74 78 (10) of file5.tx
#9474; 74 10 00 00 00 01 30 2d 3c 54 49 4d 45 3e 2d 10 t.....0-<TIME>-.
#9474; 00 00 00 74 68 65 20 66 69 6c 65 20 23 35 20 68 ...the file #5 h
#9474; 65 72 65 d1 16 43 6f 70 79 20 28 31 31 29 20 6f ere..Copy (11) o
#9474; 66 20 66 69 6c 65 35 2e 74 78 74 10 00 00 00 02 f file5.txt.....
#9474; 30 31 2d 3c 54 49 4d 45 3e 2d 10 00 00 00 74 68 01-<TIME>-....th
#9474; 65 20 66 69 6c 65 20 23 35 20 68 65 72 65 d1 16 e file #5 here..
#9474; 43 6f 70 79 20 28 31 32 29 20 6f 66 20 66 69 6c Copy (12) of fil
#9474; 65 35 2e 74 78 74 10 00 00 00 03 30 31 32 2d 3c e5.txt.....012-<
#9474; 54 49 4d 45 3e 2d 10 00 00 00 74 68 65 20 66 69 TIME>-....the fi
#9474; 6c 65 20 23 35 20 68 65 72 65 d1 16 43 6f 70 79 le #5 here..Copy
#9474; 20 28 31 33 29 20 6f 66 20 66 69 6c 65 35 2e 74 (13) of file5.t
#9474; 78 74 10 00 00 00 04 30 31 32 33 2d 3c 54 49 4d xt.....0123-<TIM
#9474; 45 3e 2d 10 00 00 00 74 68 65 20 66 69 6c 65 20 E>-....the file
#9474; 23 35 20 68 65 72 65 d1 16 43 6f 70 79 20 28 31 #5 here..Copy (1
#9474; 34 29 20 6f 66 20 66 69 6c 65 35 2e 74 78 74 10 4) of file5.txt.
#9474; 00 00 00 05 30 31 32 33 34 2d 3c 54 49 4d 45 3e ....01234-<TIME>
#9474; 2d 10 00 00 00 74 68 65 20 66 69 6c 65 20 23 35 -....the file #5
#9474; 20 68 65 72 65 d1 16 43 6f 70 79 20 28 31 35 29 here..Copy (15)
#9474; 20 6f 66 20 66 69 6c 65 35 2e 74 78 74 10 00 00 of file5.txt...
#9474; 00 06 30 31 32 33 34 35 2d 3c 54 49 4d 45 3e 2d ..012345-<TIME>-
#9474; 10 00 00 00 74 68 65 20 66 69 6c 65 20 23 35 20 ....the file #5
#9474; 68 65 72 65 d1 16 43 6f 70 79 20 28 31 36 29 20 here..Copy (16)
#9474; 6f 66 20 66 69 6c 65 35 2e 74 78 74 10 00 00 00 of file5.txt....
#9474; 07 30 31 32 33 34 35 36 2d 3c 54 49 4d 45 3e 2d .0123456-<TIME>-
#9474; 10 00 00 00 74 68 65 20 66 69 6c 65 20 23 35 20 ....the file #5
#9474; 68 65 72 65 d1 15 43 6f here..Co
<< TDS::RESPONSE, length(8 + 504), packet(2), more
#9474; 70 79 20 28 32 29 20 6f 66 20 66 69 6c 65 35 2e py (2) of file5.
#9474; 74 78 74 10 00 00 00 08 30 31 32 33 34 35 36 37 txt.....01234567
#9474; 2d 3c 54 49 4d 45 3e 2d 10 00 00 00 74 68 65 20 -<TIME>-....the
#9474; 66 69 6c 65 20 23 35 20 68 65 72 65 d1 15 43 6f file #5 here..Co
#9474; 70 79 20 28 33 29 20 6f 66 20 66 69 6c 65 35 2e py (3) of file5.
#9474; 74 78 74 10 00 00 00 09 30 31 32 33 34 35 36 37 txt.....01234567
#9474; 38 2d 3c 54 49 4d 45 3e 2d 10 00 00 00 74 68 65 8-<TIME>-....the
#9474; 20 66 69 6c 65 20 23 35 20 68 65 72 65 d1 15 43 file #5 here..C
#9474; 6f 70 79 20 28 34 29 20 6f 66 20 66 69 6c 65 35 opy (4) of file5
#9474; 2e 74 78 74 10 00 00 00 0a 30 31 32 33 34 35 36 .txt.....0123456
#9474; 37 38 39 2d 3c 54 49 4d 45 3e 2d 10 00 00 00 74 789-<TIME>-....t
#9474; 68 65 20 66 69 6c 65 20 23 35 20 68 65 72 65 d1 he file #5 here.
#9474; 15 43 6f 70 79 20 28 35 29 20 6f 66 20 66 69 6c .Copy (5) of fil
#9474; 65 35 2e 74 78 74 10 00 00 00 0b 30 31 32 33 34 e5.txt.....01234
#9474; 35 36 37 38 39 41 2d 3c 54 49 4d 45 3e 2d 10 00 56789A-<TIME>-..
#9474; 00 00 74 68 65 20 66 69 6c 65 20 23 35 20 68 65 ..the file #5 he
#9474; 72 65 d1 15 43 6f 70 79 20 28 36 29 20 6f 66 20 re..Copy (6) of
#9474; 66 69 6c 65 35 2e 74 78 74 10 00 00 00 0c 30 31 file5.txt.....01
#9474; 32 33 34 35 36 37 38 39 41 42 2d 3c 54 49 4d 45 23456789AB-<TIME
#9474; 3e 2d 10 00 00 00 74 68 65 20 66 69 6c 65 20 23 >-....the file #
#9474; 35 20 68 65 72 65 d1 15 43 6f 70 79 20 28 37 29 5 here..Copy (7)
#9474; 20 6f 66 20 66 69 6c 65 35 2e 74 78 74 10 00 00 of file5.txt...
#9474; 00 0d 30 31 32 33 34 35 36 37 38 39 41 42 43 2d ..0123456789ABC-
#9474; 3c 54 49 4d 45 3e 2d 10 00 00 00 74 68 65 20 66 <TIME>-....the f
#9474; 69 6c 65 20 23 35 20 68 65 72 65 d1 15 43 6f 70 ile #5 here..Cop
#9474; 79 20 28 38 29 20 6f 66 20 66 69 6c 65 35 2e 74 y (8) of file5.t
#9474; 78 74 10 00 00 00 0e 30 31 32 33 34 35 36 37 38 xt.....012345678
#9474; 39 41 42 43 44 2d 3c 54 49 4d 45 3e 2d 10 00 00 9ABCD-<TIME>-...
#9474; 00 74 68 65 20 66 69 6c 65 20 23 35 20 68 65 72 .the file #5 her
#9474; 65 d1 15 43 6f 70 79 20 28 39 29 20 6f 66 20 66 e..Copy (9) of f
#9474; 69 6c 65 35 2e 74 78 74 10 00 00 00 0f 30 31 32 ile5.txt.....012
#9474; 33 34 35 36 37 38 39 41 3456789A
LINE:
<< TDS::RESPONSE, length(8 + 428), packet(3), last
#9474; 42 43 44 45 2d 3c 54 49 4d 45 3e 2d 10 00 00 00 BCDE-<TIME>-....
#9474; 74 68 65 20 66 69 6c 65 20 23 35 20 68 65 72 65 the file #5 here
#9474; d1 11 43 6f 70 79 20 6f 66 20 66 69 6c 65 35 2e ..Copy of file5.
#9474; 74 78 74 10 00 00 00 10 30 31 32 33 34 35 36 37 txt.....01234567
#9474; 38 39 41 42 43 44 45 46 2d 3c 54 49 4d 45 3e 2d 89ABCDEF-<TIME>-
#9474; 10 00 00 00 74 68 65 20 66 69 6c 65 20 23 35 20 ....the file #5
#9474; 68 65 72 65 d1 09 66 69 6c 65 31 2e 74 78 74 08 here..file1.txt.
#9474; 00 00 00 11 30 31 32 33 34 35 36 37 38 39 41 42 ....0123456789AB
#9474; 43 44 45 46 47 2d 3c 54 49 4d 45 3e 2d 08 00 00 CDEFG-<TIME>-...
#9474; 00 63 6f 6e 74 65 6e 74 31 d1 09 66 69 6c 65 32 .content1..file2
#9474; 2e 74 78 74 10 00 00 00 12 30 31 32 33 34 35 36 .txt.....0123456
#9474; 37 38 39 41 42 43 44 45 46 47 48 2d 3c 54 49 4d 789ABCDEFGH-<TIM
#9474; 45 3e 2d 10 00 00 00 68 65 72 65 20 69 73 20 66 E>-....here is f
#9474; 69 6c 65 20 32 0d 0a d1 09 66 69 6c 65 33 2e 74 ile 2....file3.t
#9474; 78 74 17 00 00 00 13 30 31 32 33 34 35 36 37 38 xt.....012345678
#9474; 39 41 42 43 44 45 46 47 48 49 2d 3c 54 49 4d 45 9ABCDEFGHI-<TIME
#9474; 3e 2d 17 00 00 00 61 6e 6f 74 68 65 72 20 73 6d >-....another sm
#9474; 61 6c 6c 20 66 69 6c 65 2c 20 33 0d 0a d1 09 66 all file, 3....f
#9474; 69 6c 65 34 2e 74 78 74 0c 00 00 00 14 30 31 32 ile4.txt.....012
#9474; 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 3456789ABCDEFGHI
#9474; 4a 2d 3c 54 49 4d 45 3e 2d 0c 00 00 00 66 69 6c J-<TIME>-....fil
#9474; 65 20 34 2c 20 6f 6b 0d 0a d1 09 66 69 6c 65 35 e 4, ok....file5
#9474; 2e 74 78 74 10 00 00 00 15 30 31 32 33 34 35 36 .txt.....0123456
#9474; 37 38 39 41 42 43 44 45 46 47 48 49 4a 4b 2d 3c 789ABCDEFGHIJK-<
#9474; 54 49 4d 45 3e 2d 10 00 00 00 74 68 65 20 66 69 TIME>-....the fi
#9474; 6c 65 20 23 35 20 68 65 72 65 fd 11 00 c1 00 15 le #5
here²..#9524;..
#9474; 00 00 00 fd 00 00 00 00 00 00 00 00 ...²........
------------------------------------------------------------------------
---------------------------------
Do you Yahoo!?
Yahoo! Finance Tax Center - File online. File on time.
-
[freetds] RE: textptr size in blob field,
M C, 03/25/2004
- Re: [freetds] RE: textptr size in blob field, Frediano Ziglio, 03/25/2004
- <Possible follow-up(s)>
- RE: [freetds] RE: textptr size in blob field, Lowden, James K, 03/25/2004
-
[freetds] RE: textptr size in blob field,
M C, 03/26/2004
- Re: [freetds] RE: textptr size in blob field, James K. Lowden, 03/27/2004
- [freetds] RE: textptr size in blob field, Mike C., 03/29/2004
- RE: [freetds] RE: textptr size in blob field, Lowden, James K, 03/29/2004
Archive powered by MHonArc 2.6.24.