cancel
Showing results for 
Search instead for 
Did you mean: 

SQL Anywhere having reserved keyword 'LIMIT' disabled by default

huber1
Participant
5,282

Hi

How can I setup the the dbsrv12 process at startup with the option for the reserved keyword = 'LIMIT', which is by default disabled in SQL Anywhere 12. In an Interactive SQL session I can set it with SET OPTION PUBLIC.reserved_keywords = 'LIMIT', but I need it to set it persistant for a given dbsrv12 process or database. An additional question is how to do this setup when the dbsrv12 process starts up database (files) created with version 11 or 10 of SQL Anywhere. Do they have to be at least UPGRADEd or do they even have to be rebuilt for full functionality?

The article from Sybase describing the (new) situation is here: http://iablog.sybase.com/paulley/2010/04/keywords-and-upgrades/

Best regards, Robert

PS: I had quite a hard time to figure out what's going on when I changed from SQL Anywhere 11 to 12, as the application shows a weird behaviour in suppressing records when used with ORDER BY and LIMIT.

Accepted Solutions (0)

Answers (3)

Answers (3)

MCMartin
Participant

From my understanding Set Option should set the option permanent for the database. You could try this through the user interface of Sybase central if you have the feeling that it is not working wih dbisql. reserved_keywords is a database option so you will need to set it per database (not per engine)

huber1
Participant
0 Kudos

As you said I found that in Servoy Central under Options, the LIMIT option can be set permanently for a given database.

VolkerBarth
Contributor

In ISQL, it should also be set permantently as long as you don't use the "set temporary" form. Checking against the system view SYSOPTION will confirm that.

VolkerBarth
Contributor

In order to automatically set this (or other options) as default for newly created databases, you may add this (or adapt the existing value) in the saopts.sql file in the scripts subdirectory of your SQL Anywhere installation.

(Note, I have not used this approach myself so this is a mere guess. But a similar way exists to set authentication information for OEM databases.)


EDIT: saopts.sql is used with v10 and before. v11 and above seem to use the script optdeflt.sql in the according directory. Note: I am not sure whether these scripts are overwritten when applying MRs or EBFs. Handle with care:)

Former Member
0 Kudos

this are not provided on all instalations! in my anywhere there its no "saopts.sql" file..

VolkerBarth
Contributor
0 Kudos

As stated, for v11 and above the file is called "optdeflt.sql". Can't tell for your installations, naturally, but it's there by default in all my installations in the Scripts subdir of SQL Anywhere 12, 16 and 17.

Former Member
0 Kudos

To make it default, depends of the version and engine:

https://groups.google.com/forum/m/#!topic/venenuxsarisari/J9VfoUaV_XY