Hello,

we have searched for over 6 months for errors in our application. We had some customers, reporting false values within some fields. I think i have found an bug.

create a application with two tadstable (both are linked to the same table) components bound to a dictionary.

you need a table in your dictionary at least with 3 fields: 1. field: vpos, char(20) 2. field: vname, nchar(16) 3. field: vnumber: integer

now use following function to copy:

procedure CopyTableData(von: tdataset; nach: tdataset); var i1, vfieldcount: integer; feld: string; begin nach.append; vfieldcount := von.fields.count;

// copy all fields
// this is working without problems
for i1 := 1 to vfieldcount do
begin
    feld := von.fields[i1 - 1].FullName;
    if nach.FindField(feld) <> NIL then
    begin
        if (nach.FindField(feld).FieldKind <> fkLookup) then
        begin
            try
                nach.fieldvalues[feld] := von.fieldvalues[feld] except
            end;
        end;
    end;
end;

// define
nach.fieldbyname('vnumber').asinteger:=752;
nach.fieldvalues['vname']:='ALEXANDER BOBRICK';

// this has produced:
// vname = ALEXANDER BOBRIC
// vnumber = 75 (ascii code of K !!!)

nach.post;

end;

Call this function as follows:

copytabledata(myfirstTable, mySecondTable);

the overflow of field vname produces 75 in field vnumber or in the next field within your table-structure!!

we're using delphi XE2 with ads-components 10.10.0.49 (ACE 10.10) connected to a windows-ads-server, 64bit, Version 11.10.0.1

Urgent help needed!

asked 17 Sep '13, 05:12

MicrotronX's gravatar image

MicrotronX
251121324
accept rate: 12%

Now i see, everywhere we assign a value bigger than the nchar field is overwriting the next field in table structure!

(17 Sep '13, 05:24) MicrotronX

Same behaviour also with ads-components in delphi-xe2 in version 10.10.0.28;

(17 Sep '13, 05:41) MicrotronX

Same problem with ads-server 10.10.0.35 (windows) and 10.10.0.35 client-dll

(17 Sep '13, 05:42) MicrotronX

Assigning the fieldvalue with "nach.fieldbyname('vname').asstring" is also overwriting the next field

(17 Sep '13, 05:47) MicrotronX

Thank you for the bug report! This bug will be fixed in the next TDataSet update, which will be released very soon. (Incidentally, we are currently testing a TDataSet version that supports Delphi XE5. The fix for this bug will be added to the new XE5 release.) I will update this response when the fix is available with the specific version number that you need to download.

Update: The updated components are now available in the download section of the DevZone. Look for version 11.10.0.14 or 10.10.0.51 (based on what's appropriate for your server version.)

link

answered 17 Sep '13, 14:45

Jed%20Thomet's gravatar image

Jed Thomet
2.7k12648
accept rate: 38%

edited 23 Sep '13, 13:33

Is it enough to update the delphi tdataset or do i need update all client-dlls to 10.10.0.51??

(25 Sep '13, 07:21) MicrotronX

It is sufficient to update the TDataSet and build your application with the new TDataSet. (Installing the new TDataSet will also install the new DLLs to your machine; but you do not need to distribute new DLLs for this fix.)

(27 Sep '13, 09:25) Jed Thomet
Your answer to the original question.
If responding to a request for additional information, please edit the question or use the comment functionality.
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×271
×14

Asked: 17 Sep '13, 05:12

Seen: 1,543 times

Last updated: 27 Sep '13, 09:26

Advantage Developer Zone Contact Us Privacy Policy Copyright Info


Powered by Advantage Database Server and OSQA
Disclaimer: Opinions expressed here are those of the poster and do not necessarily reflect the views of the company.