Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 10.0.1 » SQL Anywhere Server - Database Administration » Running the Database Server » Running authenticated SQL Anywhere applications » Developing an authenticated application

Authenticating your application Next Page

Executing the authentication statement


The way you execute the SET TEMPORARY OPTION statement that sets the authentication option depends on the programming interface you are using. The signatures listed here are not valid signatures. Examples are provided for setting the authentication option using the following interfaces:

Using special characters in the authentication option

If your company name has quotation marks, apostrophes, or other special characters (for example, Joe's Garage) you need to be careful about how you construct the authentication statement. The entire set of authentication options (Company=...;Application=...;Signature=...) is a SQL string. The rules for strings in SQL dictate that if you include a quotation mark inside the string, it must be doubled in order to be accepted. For example:

SET TEMPORARY OPTION connection_authentication=
   'Company = Joe''s Garage;
    Application = Joe''s Program;
    Signature = 0fa55157edb8e14d818e...'
ODBC

Use the following statement:

SQLExecDirect(
    hstmt,
    "SET TEMPORARY OPTION connection_authentication=
       'Company=MyCo;
        Application=MyApp;
        Signature=0fa55159999e14d818e...'",
    SQL_NTS
);

The string must be entered on a single line, or you must build it up by concatenation.

PowerBuilder

Use the following PowerScript statement:

EXECUTE IMMEDIATE
   "SET TEMPORARY OPTION connection_authentication=
       'Company=MyCo;
        Application=MyApp;
        Signature=0fa551599998e14d818e...'"
USING SQLCA
JDBC

Use the following statement:

Statement Stmt1 = con.createStatement();
Stmt1.executeUpdate(
    "SET TEMPORARY OPTION connection_authentication=
    'Company=MyCo;
     Application=MyApp;
     Signature=0fa55159999e14d818e...'"
);

The string must be entered on a single line, or you must build it up by concatenation.

ADO.NET
Use the following statement:

SACommand cmd=new SACommand(
   "SET TEMPORARY OPTION connection_authentication=
       'Company=MyCo;
        Application=MyApp;
        Signature=0fa551599998e14d818e...'", 
    con
);
cmd.ExecuteNonQuery();

The string must be entered on a single line, or you must build it up by concatenation.

Embedded SQL
Use the following statement:
EXEC SQL SET TEMPORARY OPTION connection_authentication=
   'Company=MyCo;
    Application=MyApp;
    Signature=0fa551599998e14d818e...';

The string must be entered on a single line, or you must build it up by concatenation.

When connecting to an authenticated database, the connection and authentication steps are performed separately. However, some objects, such as the Visual Basic Grid object can attempt a separate, implicit connection, which does not automatically include authentication. In such cases, the connection is not authenticated and the database operation can fail. You can avoid this problem by including the InitString connection parameter in the connection string. The following example illustrates how you can modify a Visual Basic application to include the InitString connection parameter:

mConnectionString = 
   "Provider=SAPROV.10;
    UID=DBA;
    PWD=sql;
    ENG=test10;
    InitString=SET TEMPORARY OPTION connection_authentication=
       'Company=MyCo;
        Application=MyApp;
        Signature=0fa55157edb8e14d818e...'"
mdbName.ConnectionString = mConnectionString
mdbName.Open
mIsSQL = True

This ensures that every connection is immediately followed by authentication.