mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 04:09:11 +02:00
* Fixed fixed-width char-parameters + test
git-svn-id: trunk@11629 -
This commit is contained in:
parent
243a724dac
commit
171193a675
@ -796,7 +796,14 @@ begin
|
|||||||
inc(CurrBuff,2);
|
inc(CurrBuff,2);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
begin
|
||||||
|
// The buffer-length is always VSQLVar^.sqllen, nothing more, nothing less
|
||||||
|
// so fill the complete buffer with valid data. Adding #0 will lead
|
||||||
|
// to problems, because the #0 will be seen as a part of the (binary) string
|
||||||
CurrBuff := VSQLVar^.SQLData;
|
CurrBuff := VSQLVar^.SQLData;
|
||||||
|
w := VSQLVar^.sqllen;
|
||||||
|
s := PadRight(s,w);
|
||||||
|
end;
|
||||||
Move(s[1], CurrBuff^, w);
|
Move(s[1], CurrBuff^, w);
|
||||||
end;
|
end;
|
||||||
SQL_TYPE_DATE, SQL_TYPE_TIME, SQL_TIMESTAMP :
|
SQL_TYPE_DATE, SQL_TYPE_TIME, SQL_TIMESTAMP :
|
||||||
|
@ -28,6 +28,7 @@ type
|
|||||||
procedure RunTest; override;
|
procedure RunTest; override;
|
||||||
published
|
published
|
||||||
procedure TestClearUpdateableStatus;
|
procedure TestClearUpdateableStatus;
|
||||||
|
procedure TestFixedStringParamQuery;
|
||||||
procedure TestReadOnlyParseSQL; // bug 9254
|
procedure TestReadOnlyParseSQL; // bug 9254
|
||||||
procedure TestParseJoins; // bug 10148
|
procedure TestParseJoins; // bug 10148
|
||||||
procedure TestDoubleFieldNames; // bug 8457
|
procedure TestDoubleFieldNames; // bug 8457
|
||||||
@ -700,6 +701,11 @@ begin
|
|||||||
TestXXParamQuery(ftString,'VARCHAR(10)',testValuesCount);
|
TestXXParamQuery(ftString,'VARCHAR(10)',testValuesCount);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TTestFieldTypes.TestFixedStringParamQuery;
|
||||||
|
begin
|
||||||
|
TestXXParamQuery(ftFixedChar,'CHAR(10)',testValuesCount);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TTestFieldTypes.TestDateParamQuery;
|
procedure TTestFieldTypes.TestDateParamQuery;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
@ -731,6 +737,7 @@ begin
|
|||||||
case ADataType of
|
case ADataType of
|
||||||
ftInteger: Params.ParamByName('field1').asinteger := testIntValues[i];
|
ftInteger: Params.ParamByName('field1').asinteger := testIntValues[i];
|
||||||
ftFloat : Params.ParamByName('field1').AsFloat := testFloatValues[i];
|
ftFloat : Params.ParamByName('field1').AsFloat := testFloatValues[i];
|
||||||
|
ftFixedChar,
|
||||||
ftString : Params.ParamByName('field1').AsString := testStringValues[i];
|
ftString : Params.ParamByName('field1').AsString := testStringValues[i];
|
||||||
ftDate : if cross then
|
ftDate : if cross then
|
||||||
Params.ParamByName('field1').AsString:= testDateValues[i]
|
Params.ParamByName('field1').AsString:= testDateValues[i]
|
||||||
@ -753,7 +760,13 @@ begin
|
|||||||
case ADataType of
|
case ADataType of
|
||||||
ftInteger: AssertEquals(testIntValues[i],FieldByName('FIELD1').AsInteger);
|
ftInteger: AssertEquals(testIntValues[i],FieldByName('FIELD1').AsInteger);
|
||||||
ftFloat : AssertEquals(testFloatValues[i],FieldByName('FIELD1').AsFloat);
|
ftFloat : AssertEquals(testFloatValues[i],FieldByName('FIELD1').AsFloat);
|
||||||
ftString : AssertEquals(testStringValues[i],FieldByName('FIELD1').AsString);
|
ftFixedChar,
|
||||||
|
ftString : begin
|
||||||
|
if FieldByName('FIELD1').isnull then
|
||||||
|
AssertEquals(testStringValues[i],FieldByName('FIELD1').AsString)
|
||||||
|
else
|
||||||
|
AssertEquals(PadRight(testStringValues[i],10),FieldByName('FIELD1').AsString);
|
||||||
|
end;
|
||||||
ftdate : AssertEquals(testDateValues[i],FormatDateTime('yyyy/mm/dd',FieldByName('FIELD1').AsDateTime));
|
ftdate : AssertEquals(testDateValues[i],FormatDateTime('yyyy/mm/dd',FieldByName('FIELD1').AsDateTime));
|
||||||
else
|
else
|
||||||
AssertTrue('no test for paramtype available',False);
|
AssertTrue('no test for paramtype available',False);
|
||||||
|
@ -231,6 +231,7 @@ var DBConnectorClass : TPersistentClass;
|
|||||||
i : integer;
|
i : integer;
|
||||||
begin
|
begin
|
||||||
testValues[ftString] := testStringValues;
|
testValues[ftString] := testStringValues;
|
||||||
|
testValues[ftFixedChar] := testStringValues;
|
||||||
testValues[ftDate] := testDateValues;
|
testValues[ftDate] := testDateValues;
|
||||||
for i := 0 to testValuesCount-1 do
|
for i := 0 to testValuesCount-1 do
|
||||||
begin
|
begin
|
||||||
|
Loading…
Reference in New Issue
Block a user