Page 1 of 1

DBFUniProvider - several errors

Posted: Mon 27 May 2019 00:12
by Creator
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:
  • CodePage=dpCentralEuropeanDOS
  • Direct=True
  • DBFFormat=dfdBaseVII (important level 7)
properties of TUniSQL:
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

Re: DBFUniProvider - several errors

Posted: Wed 29 May 2019 14:45
by MaximG
We have sent the nightly build of our product with the latest changes to your email.
Please check the described behavior with the build and let us know about the results.

Re: DBFUniProvider - several errors

Posted: Wed 29 May 2019 15:23
by Creator
Thank you,
I installed new version and soon I will begin tests.

Regards

Re: DBFUniProvider - several errors

Posted: Wed 29 May 2019 23:41
by Creator
Hi,

After tests of nightly build "unidac74d26pro_28_05_2019.exe" I received following results:

Errors 1,2 became eliminated. There does not have problem with reading of tables by BDE and with opening of tables.
Error 3 still exists. In heading dbf, in table of description AutoincrementField - byte 42 (counted from 0) should contain value 1 not 0.
Error 4 also exists. Content TMemoField is not correctly translated from internal representation on content of component TDBMemo.

Unfortunately NEW Fatal Error appeared !
All type fields TStringField of table are represented in Grid as Memo - cell of grid contains inscription "(MEMO)" and is not editable. One checked this for several different tables Dbase 7. In this state DBFProvider is not usable.

Regards

Re: DBFUniProvider - several errors

Posted: Thu 30 May 2019 11:19
by Stellar
Item 3 (Auto increment field).
Unfortunately, we couldn’t reproduce the issue. The value of the auto increment field equals 1 for the first record in a table when using UniDAC or BDE. 1. To investigate this behavior of UniDAC, please compose and send us a small sample demonstrating the issue, along with all files of the table that may help us reproduce the issue. For example, if your table is named Table_Name, please send us the Table_Name.* files (Table_Name.dbf and all Table_Name.* files).

Item 4 (Memo fields).
Please explain what do you mean by "Content TMemoField is not correctly translated from internal representation on content of component TDBMemo"?
Unfortunately NEW Fatal Error appeared
Thank you for the information. We have fixed the issue, and the fix will be included in the next UniDAC build.
We can offer you the nightly build of UniDAC with all necessary changes.

Re: DBFUniProvider - several errors

Posted: Thu 30 May 2019 16:07
by Creator
Hi,

Simple project "Test_ID.zip" concerning of error No. 3 was sent across https://www.devart.com/company/contactform.html
Abouth item 4 (Memo fields).
Across BDE I enter to table (codePage db852po0) into fields: "Memo" and "String" Polish national chars.
Then I pass to UniDAC (CodePage=dpPolishDOS") After opening of table in TUniQuery, field "String" shows correct national chars but field "Memo" incorrect.

Regards

Re: DBFUniProvider - several errors

Posted: Wed 05 Jun 2019 14:58
by Stellar
Thank you for the information.
We have fixed the issue with memo fields encoding, and the fix will be included in the next UniDAC build.

Re: DBFUniProvider - several errors

Posted: Wed 05 Jun 2019 16:41
by Creator
Hi,

Thank you for solution of problem. Devart you are the best. Yours support is reliable.

Regards