DBFUniProvider - several errors
Posted: Mon 27 May 2019 00:12
Hi,
My environment: Windows 10, Delphi 10.3 Update 1, UniDac 7.4.12
Creating of table Dbase 7 by components TUniConnection and TUniSQL
properties of TUniConnection:
ProviderName = DBF
SpecificOptions:
SQL.text := 'CREATE TABLE NewTable ( ID AUTOINC, NAME CHAR(20) )'
Error 1:
Created table has incompatible heading with BDE
Byte No. 28 (counted from 0) contains number of language.
Language name is always equal "DBWINUS0"
BDE requires (for level 7) so that byte 28 contain "0" and proper language name.
( for Polish I use "db852po0" )
Opening table in BDE we will receive error: "Corrupt table/index header"
Change of property CodePage in TUniConnection does not change this state
Error 2:
After manual having of heading table we open table by object TUniQuery (name UQ)
We receive enigmatic error message: "Error readed 0"
"Error readed N" happens again for different tables Dbase 7 with different numbers "N"
But for some tables lack of error.
This error does not appear after renewed opening of table:
try
UQ.Active := TRUE;
except
on E: Exception do Application.ShowException(E); // "Error readed N"
end;
if not UQ.Active then UQ.Active := TRUE; // now is OK
Error 3:
First added record has value of ID = 0
This value should be equal 1. Value 0 read by SELECT suggests empty table.
Error 4:
If table contains TmemoField, content MEMO is not translated correctly.
Maybe property "Transliterate" is not active.
Regards
My environment: Windows 10, Delphi 10.3 Update 1, UniDac 7.4.12
Creating of table Dbase 7 by components TUniConnection and TUniSQL
properties of TUniConnection:
ProviderName = DBF
SpecificOptions:
- CodePage=dpCentralEuropeanDOS
- Direct=True
- DBFFormat=dfdBaseVII (important level 7)
SQL.text := 'CREATE TABLE NewTable ( ID AUTOINC, NAME CHAR(20) )'
Error 1:
Created table has incompatible heading with BDE
Byte No. 28 (counted from 0) contains number of language.
Language name is always equal "DBWINUS0"
BDE requires (for level 7) so that byte 28 contain "0" and proper language name.
( for Polish I use "db852po0" )
Opening table in BDE we will receive error: "Corrupt table/index header"
Change of property CodePage in TUniConnection does not change this state
Error 2:
After manual having of heading table we open table by object TUniQuery (name UQ)
We receive enigmatic error message: "Error readed 0"
"Error readed N" happens again for different tables Dbase 7 with different numbers "N"
But for some tables lack of error.
This error does not appear after renewed opening of table:
try
UQ.Active := TRUE;
except
on E: Exception do Application.ShowException(E); // "Error readed N"
end;
if not UQ.Active then UQ.Active := TRUE; // now is OK
Error 3:
First added record has value of ID = 0
This value should be equal 1. Value 0 read by SELECT suggests empty table.
Error 4:
If table contains TmemoField, content MEMO is not translated correctly.
Maybe property "Transliterate" is not active.
Regards