[Solved] SQLite - StoresLowerCaseIdentifiers
Posted: 15.03.2021, 15:47
Hello.
I found such a problem that the TZConnection.GetColumnNames method does not work correctly for tables containing uppercase characters, such as T01.
My environment:
While researching the problem, I found the following three methods
If I understood correctly, only one of them should return true, and the other two should return false.
For zeos- 7.1.4 (as well as 7.2.1-rc), this was the case:
Then, in version 7.2.4 this was changed (I think this is wrong)
Then, in version 7.2.8 this was fixed (but not completely)
As a result, both functions now return true, which is contrary to reality.
And when the GetColumnNames method works, it thinks that the table name T01 needs to be converted to lowercase.
Tell me, am I right in my guesses?
If I'm right, I guess a fix is needed for 7.2 and 8.0 branches.
I found such a problem that the TZConnection.GetColumnNames method does not work correctly for tables containing uppercase characters, such as T01.
My environment:
At the same time, with ZEOS-7.1.4 everything works well.Windows 8.1 x64
Delphi 2007
ZEOS version: 7.2.10-stable
Database driver: SQLite (sqlite3.dll v3.34.1)
While researching the problem, I found the following three methods
Code: Select all
TZAbstractDatabaseInfo.StoresMixedCaseIdentifiers
TZAbstractDatabaseInfo.StoresUpperCaseIdentifiers
TZAbstractDatabaseInfo.StoresLowerCaseIdentifiers
For zeos- 7.1.4 (as well as 7.2.1-rc), this was the case:
Code: Select all
upper = false
lower = false
mixed = true
Code: Select all
upper = false
lower = false -> true
mixed = true -> false
Code: Select all
upper = false
lower = true
mixed = false -> true
And when the GetColumnNames method works, it thinks that the table name T01 needs to be converted to lowercase.
Tell me, am I right in my guesses?
If I'm right, I guess a fix is needed for 7.2 and 8.0 branches.