Login ProductsSalesSupportDownloadsAbout |
Home » Technical Support » ElevateDB Technical Support » Support Forums » ElevateDB General » View Thread |
Messages 1 to 10 of 10 total |
Problem with correlation name |
Wed, Feb 5 2014 4:06 AM | Permanent Link |
Hershcu Sorin | Hello
I have a sql statement that use correlation name on hebrew and it's work ok till I upgrade to last edb version. Now it raise an invalid correlation name error. Any suggestions Sorin |
Wed, Feb 5 2014 6:26 AM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Sorin,
<< I have a sql statement that use correlation name on hebrew and it's work ok till I upgrade to last edb version. Now it raise an invalid correlation name error. >> Please post an example of the SQL statement, along with the referenced table definitions in SQL. Tim Young Elevate Software www.elevatesoft.com |
Wed, Feb 5 2014 11:42 AM | Permanent Link |
Hershcu Sorin | Thanks Tim
It's simple. If I run the sql: SELECT Id AS "AAAA" FROM TempTable its run ok but if I run the sql: SELECT Id AS "ùùùù" FROM TempTable it raise the error: ElevateDB Error #700 An error was found in the statement at line 1 and column 8 (Invalid expression "ùùùù" found, invalid correlation name) Thanks sorin þþý"Tim Young [Elevate Software]" ýþ ëúá áäåãòä news:ACC048E0-F8E8-47E0-9932-104CBD22A75A@news.elevatesoft.com... Sorin, << I have a sql statement that use correlation name on hebrew and it's work ok till I upgrade to last edb version. Now it raise an invalid correlation name error. >> Please post an example of the SQL statement, along with the referenced table definitions in SQL. Tim Young Elevate Software www.elevatesoft.com |
Thu, Feb 6 2014 8:09 AM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Sorin,
<< If I run the sql: SELECT Id AS "AAAA" FROM TempTable its run ok but if I run the sql: SELECT Id AS "ùùùù" FROM TempTable it raise the error: ElevateDB Error #700 An error was found in the statement at line 1 and column 8 (Invalid expression "ùùùù" found, invalid correlation name) >> Nothing has changed in the latest releases regarding valid/invalid identifier characters apart from the inclusion of right/left parentheses () in the valid/allowable characters. I assume that you're using a version of Delphi with a default string type of UnicodeString ? If so, then what is the ordinal value of the character that you're using for the correlation name above ? The valid identifier character range has always been as follows: with IdentifierChars do begin AddChar(' '); AddChar('_'); AddChar('-'); AddChar('.'); // This is not documented AddChar('('); AddChar(')'); AddCharRange('A','Z'); AddCharRange('a','z'); AddCharRange('0','9'); AddChar(Char(131)); AddChar(Char(138)); AddChar(Char(140)); AddChar(Char(142)); AddChar(Char(154)); AddChar(Char(156)); AddCharRange(Char(158),Char(159)); AddCharRange(Char(192),Char(214)); AddCharRange(Char(216),Char(246)); AddCharRange(Char(248),Char(255)); end; Tim Young Elevate Software www.elevatesoft.com |
Thu, Feb 6 2014 9:53 AM | Permanent Link |
Hershcu Sorin | Thanks Tim
I use Delphi XE2 with the default settings. The problem I encounter ocurre also on the EDB Menager. I don't know what ordinal value I use and how to get the value. Those are hebrew strings that I'm using all the times and never haves problems? Thanks Sorin þþý"Tim Young [Elevate Software]" ýþ ëúá áäåãòä news:2648D320-0463-47DF-A956-B126D56F1D5C@news.elevatesoft.com... Sorin, << If I run the sql: SELECT Id AS "AAAA" FROM TempTable its run ok but if I run the sql: SELECT Id AS "ùùùù" FROM TempTable it raise the error: ElevateDB Error #700 An error was found in the statement at line 1 and column 8 (Invalid expression "ùùùù" found, invalid correlation name) >> Nothing has changed in the latest releases regarding valid/invalid identifier characters apart from the inclusion of right/left parentheses () in the valid/allowable characters. I assume that you're using a version of Delphi with a default string type of UnicodeString ? If so, then what is the ordinal value of the character that you're using for the correlation name above ? The valid identifier character range has always been as follows: with IdentifierChars do begin AddChar(' '); AddChar('_'); AddChar('-'); AddChar('.'); // This is not documented AddChar('('); AddChar(')'); AddCharRange('A','Z'); AddCharRange('a','z'); AddCharRange('0','9'); AddChar(Char(131)); AddChar(Char(138)); AddChar(Char(140)); AddChar(Char(142)); AddChar(Char(154)); AddChar(Char(156)); AddCharRange(Char(158),Char(159)); AddCharRange(Char(192),Char(214)); AddCharRange(Char(216),Char(246)); AddCharRange(Char(248),Char(255)); end; Tim Young Elevate Software www.elevatesoft.com |
Thu, Feb 6 2014 10:00 AM | Permanent Link |
Hershcu Sorin | Maybe since I have also Delphi XE5 and I install the last elevatedb for XE5
cause the problem In any case I uninstall all and install back only the XE2 version and still have the problem Thanks Sorin þþý"Tim Young [Elevate Software]" ýþ ëúá áäåãòä news:2648D320-0463-47DF-A956-B126D56F1D5C@news.elevatesoft.com... Sorin, << If I run the sql: SELECT Id AS "AAAA" FROM TempTable its run ok but if I run the sql: SELECT Id AS "ùùùù" FROM TempTable it raise the error: ElevateDB Error #700 An error was found in the statement at line 1 and column 8 (Invalid expression "ùùùù" found, invalid correlation name) >> Nothing has changed in the latest releases regarding valid/invalid identifier characters apart from the inclusion of right/left parentheses () in the valid/allowable characters. I assume that you're using a version of Delphi with a default string type of UnicodeString ? If so, then what is the ordinal value of the character that you're using for the correlation name above ? The valid identifier character range has always been as follows: with IdentifierChars do begin AddChar(' '); AddChar('_'); AddChar('-'); AddChar('.'); // This is not documented AddChar('('); AddChar(')'); AddCharRange('A','Z'); AddCharRange('a','z'); AddCharRange('0','9'); AddChar(Char(131)); AddChar(Char(138)); AddChar(Char(140)); AddChar(Char(142)); AddChar(Char(154)); AddChar(Char(156)); AddCharRange(Char(158),Char(159)); AddCharRange(Char(192),Char(214)); AddCharRange(Char(216),Char(246)); AddCharRange(Char(248),Char(255)); end; Tim Young Elevate Software www.elevatesoft.com |
Thu, Feb 6 2014 10:20 AM | Permanent Link |
Raul Team Elevate | On 2/6/2014 9:53 AM, Sorin Hershcu wrote:
> Thanks Tim > > I use Delphi XE2 with the default settings. > The problem I encounter ocurre also on the EDB Menager. > I don't know what ordinal value I use and how to get the value. > Those are hebrew strings that I'm using all the times and never haves > problems? > > Thanks Sorin > If you have the original text then you can just print out ordinals in delphi. Quick googling shows it might be U+05E9 (http://unicode-table.com/en/05E9/) ? Raul |
Fri, Feb 7 2014 3:03 AM | Permanent Link |
Hershcu Sorin | Hello Tim
I return to version 2.14b5 and I don't encounter the problem. Any more suggestions? Thanks Sorin þþý"Tim Young [Elevate Software]" ýþ ëúá áäåãòä news:2648D320-0463-47DF-A956-B126D56F1D5C@news.elevatesoft.com... Sorin, << If I run the sql: SELECT Id AS "AAAA" FROM TempTable its run ok but if I run the sql: SELECT Id AS "ùùùù" FROM TempTable it raise the error: ElevateDB Error #700 An error was found in the statement at line 1 and column 8 (Invalid expression "ùùùù" found, invalid correlation name) >> Nothing has changed in the latest releases regarding valid/invalid identifier characters apart from the inclusion of right/left parentheses () in the valid/allowable characters. I assume that you're using a version of Delphi with a default string type of UnicodeString ? If so, then what is the ordinal value of the character that you're using for the correlation name above ? The valid identifier character range has always been as follows: with IdentifierChars do begin AddChar(' '); AddChar('_'); AddChar('-'); AddChar('.'); // This is not documented AddChar('('); AddChar(')'); AddCharRange('A','Z'); AddCharRange('a','z'); AddCharRange('0','9'); AddChar(Char(131)); AddChar(Char(138)); AddChar(Char(140)); AddChar(Char(142)); AddChar(Char(154)); AddChar(Char(156)); AddCharRange(Char(158),Char(159)); AddCharRange(Char(192),Char(214)); AddCharRange(Char(216),Char(246)); AddCharRange(Char(248),Char(255)); end; Tim Young Elevate Software www.elevatesoft.com |
Mon, Feb 10 2014 9:02 AM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Sorin,
<< I return to version 2.14b5 and I don't encounter the problem. Any more suggestions? >> How are you specifying the SQL text in your application ? You have to remember that 2.15 (and onward) allow text to remain in the compiler's default string type all of the way up until the text has to be converted into whatever character set is being used in the configuration/database for input purposes (not the case here). IOW, 2.14 and earlier may have been converting the text from a UnicodeString into a multi-byte AnsiString, thus allowing the characters to pass through the identifier checks without issue because all characters were <= #255 and satisfied the identifier character requirements. With 2.15 and higher, this conversion doesn't occur, so ElevateDB balks at you using > #255 characters in your SQL. The bottom line, though is that the 2.15 behavior is *not* a bug, whereas 2.14 and earlier allowing you to use extended Unicode characters in identifiers *was* a bug, and it shouldn't have allowed them. Tim Young Elevate Software www.elevatesoft.com |
Mon, Feb 10 2014 11:45 AM | Permanent Link |
Hershcu Sorin | Hello Tim
Those are bad news. I use the SQL statements to select some columns and the AS <ColumnCorrelationName> to define the column header name. In my case the header was on hebrew. After that I use the export the selected file to excel and it's all come out ok. Now I understand that I have to find a way to convert the header that have to be on english only? Thanks Sorin þþý"Tim Young [Elevate Software]" ýþ ëúá áäåãòä news:E207B6B3-0E10-4E1E-9FF7-C1248032AE95@news.elevatesoft.com... Sorin, << I return to version 2.14b5 and I don't encounter the problem. Any more suggestions? >> How are you specifying the SQL text in your application ? You have to remember that 2.15 (and onward) allow text to remain in the compiler's default string type all of the way up until the text has to be converted into whatever character set is being used in the configuration/database for input purposes (not the case here). IOW, 2.14 and earlier may have been converting the text from a UnicodeString into a multi-byte AnsiString, thus allowing the characters to pass through the identifier checks without issue because all characters were <= #255 and satisfied the identifier character requirements. With 2.15 and higher, this conversion doesn't occur, so ElevateDB balks at you using > #255 characters in your SQL. The bottom line, though is that the 2.15 behavior is *not* a bug, whereas 2.14 and earlier allowing you to use extended Unicode characters in identifiers *was* a bug, and it shouldn't have allowed them. Tim Young Elevate Software www.elevatesoft.com |
This web page was last updated on Sunday, May 19, 2024 at 08:46 AM | Privacy PolicySite Map © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? E-mail us at info@elevatesoft.com |