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

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 数据库管理 » 启动并连接到数据库 » 运行数据库服务器 » 运行经过验证的 SQL Anywhere 应用程序 » 开发经过验证的应用程序

 

执行验证语句

执行用于设置验证选项的 SET TEMPORARY OPTION 语句的方式取决于您正使用的编程接口。此处所列签名为无效签名。所提供的示例使用以下接口设置验证选项:

在验证选项中使用特殊字符

当公司名称中有引号、撇号或其它特殊字符(例如 Joe's Garage)时,您需要注意如何构造验证语句。整个验证选项集 (Company=...;Application=...;Signature=...) 是一个 SQL 字符串。在 SQL 的字符串规则中规定,如果字符串内包括引号,则它必须是双引号才能被接受。例如:

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

使用下面的语句:

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

必须在一行上输入该字符串,否则必须通过字符串连接来构建。

PowerBuilder

使用下面的 PowerScript 语句:

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

使用下面的语句:

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

必须在一行上输入该字符串,否则必须通过字符串连接来构建。

ADO.NET

使用下面的语句:

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

必须在一行上输入该字符串,否则必须通过字符串连接来构建。

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

必须在一行上输入该字符串,否则必须通过字符串连接来构建。

连接到经过验证的数据库时,应分别执行连接和验证步骤。但是某些对象(例如 Visual Basic Grid 对象)可尝试独立的隐式连接,该连接不会自动包括验证。在这种情况下,不会对该连接进行验证,而数据库操作会失败。可通过在连接字符串中包括 InitString 连接参数来避免此问题。下面的示例说明了如何修改 Visual Basic 应用程序以包括 InitString 连接参数,以便在每个连接建立后立即进行验证:

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