Page 1 of 1

Why still exists the serious bug in UniDAC 2.0 under D12

Posted: Sun 14 Dec 2008 02:13
by coolzew
Hello,
Today I retest the bug I issued under UniDAC2.0.
http://devart.com/forums/viewtopic.php?t=13464

Other problem stlll exists, how disappointment I am.

The steps is like:http://devart.com/forums/viewtopic.php?t=13464

TuniQuery do not set "insert sql","Update sql"......
A Field origin value is "华源", Field Type is varchar.
1. Edit the Field, set value to "华源中國", Post it, it is ok no problem.
2. Edit the origin value "华源中國" to "华源中", post it , it is no problem.
3. Edit the origin value "华源中" to "华源", post it , It will occurs error as blew.
---------------------------
Project1
---------------------------
Update failed. Found 0 records.
---------------------------
确定
---------------------------

So I canot use the vcl in delphi2009, Pls fix it ASAP.

Posted: Tue 16 Dec 2008 11:28
by Dimon
Thank you for information. We have reproduced this problem and fixed it. This fix will be included in the next UniDAC build.

Posted: Sun 11 Jan 2009 04:58
by coolzew
Error:
if (ParamVarType = varOleStr) {$IFDEF VER12P} or (ParamVarType = varUString) or (ParamVarType = varString){$ENDIF} then // WideString
l := Integer(StrLenW(ParamVarPtr) * SizeOf(WideChar))
else // Pascal string
l := Length(ParamDesc.Value);

Correct:
if (ParamVarType = varOleStr) {$IFDEF VER12P} or (ParamVarType = varUString) {$ENDIF} then // WideString
l := Integer(StrLenW(ParamVarPtr) * SizeOf(WideChar))
else // Pascal string
{$IFDEF VER12P}
l := Length(AnsiString(ParamDesc.Value));
{$ELSE}
l := Length(ParamDesc.Value);
{$ENDIF}[/code]

Posted: Tue 13 Jan 2009 09:58
by Dimon
Thank you for the advice. We will fix this code in the next UniDAC build.