Subject | Bug: Very large VARCHAR handling with TDataset TIBO classes found and fixed. |
---|---|
Author | Jason Wharton |
Post date | 2001-01-20T02:28:24Z |
When using columns of type VARCHAR greater than a certain large length the
VCL will create a TMemoField in order to work with them. I used to have the
cutoff at 8192 so this escaped my testing since I never used a varchar that
large before. It is now around 255 bytes in length that it will use a
TMemoField instead of a TStringField. This was so that the MIDAS provider
stuff would match up better since the TClientDataset only likes TStringField
columns to go up to no more than 256 bytes (perhaps even just 255).
This means that all access to these larger columns has to be handled in a
stream instance instead of direct buffer access. I have adapted IBO so that
it will use the row buffer directly from the stream. I hadn't properly
checked for NULL in some cases when I did this so instead of showing a blank
memo it was showing text from another adjacent row. I've added in the proper
handling for NULL in this case.
Sorry for anyone this has adversely affected and thanks to those who have
assisted in rooting this bug out.
It will be in the next sub-release that I will get out tonight or over the
weekend. If you need the fix right away, let me know and I'll send you the
changes. They were simple.
Regards,
Jason Wharton
CPS - Mesa AZ
http://www.ibobjects.com
VCL will create a TMemoField in order to work with them. I used to have the
cutoff at 8192 so this escaped my testing since I never used a varchar that
large before. It is now around 255 bytes in length that it will use a
TMemoField instead of a TStringField. This was so that the MIDAS provider
stuff would match up better since the TClientDataset only likes TStringField
columns to go up to no more than 256 bytes (perhaps even just 255).
This means that all access to these larger columns has to be handled in a
stream instance instead of direct buffer access. I have adapted IBO so that
it will use the row buffer directly from the stream. I hadn't properly
checked for NULL in some cases when I did this so instead of showing a blank
memo it was showing text from another adjacent row. I've added in the proper
handling for NULL in this case.
Sorry for anyone this has adversely affected and thanks to those who have
assisted in rooting this bug out.
It will be in the next sub-release that I will get out tonight or over the
weekend. If you need the fix right away, let me know and I'll send you the
changes. They were simple.
Regards,
Jason Wharton
CPS - Mesa AZ
http://www.ibobjects.com