Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 10 of 10 total
Thread Problem with correlation name
Wed, Feb 5 2014 4:06 AMPermanent 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 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email 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 AMPermanent 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 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email 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 AMPermanent 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 AMPermanent 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 AMPermanent Link

Raul

Team Elevate 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 AMPermanent 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 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email 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 AMPermanent 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
Image