I have a database in SQL Anywhere 9 and the application is written in PowerBuilder 10.
I created the tables and columns with all upper case names. When I connect in PowerBuilder it shows them all in lower case. When I view them in Sybase Central they show in upper case.
I there a setting in SA or PB that can fix this issue?
asked 12 Nov '10, 19:19
I will take your word for the fact Sybase Central honors the original CREATE TABLE case, since that behavior is predicted by the motto "Watcom does things the way they should be done."
So, it ain't got nothing to do with the SQL Anywhere engine... that leaves PowerBuilder and ODBC.
However, an examination of the ODBC Driver Properties in the PowerBuilder Database painter reveals that SQL_IDENTIFIER_CASE = 4 which (I am pretty sure) means "SQL_IC_MIXED – identifier names are not case sensitive, and are stored in mixed case in the system catalog" which AFAIK is an accurate description of how SQL Anywhere, er, Adaptive Server Anywhere databases present themselves to the outside world:
So... that leaves PowerBuilder... perhaps something in that funky PB - ODB - INI file that has bedeviled generations of PowerBuilder developers?
I leave that as an exercise for others :)
answered 13 Nov '10, 10:32
A co-worker of mine just solved this issue.
Step 1: Find the PowerBuilder initialization file.
in PowerBuilder 10:
C:\Program Files (x86)\Sybase\Shared\PowerBuilder\pbodb100.ini
in PowerBuilder 12:
Put this close to the top of the file.
[SQL Anywhere] PBTableOwner ='NO'
The trick is to put it in "the right" section. By doing it this way you create the right section.
We're skipping 11 and didn't use 7,8 or 9, so those are left as an exercise to the reader.
answered 21 Jun '11, 16:54