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

SAP Sybase SQL Anywhere 16.0 (中文) » UltraLite - C 和 C++ 编程 » 应用程序开发 » 使用嵌入式 SQL 开发 UltraLite C++ 应用程序

 

用户验证

%SQLANYSAMP16%\UltraLite\esqlauth 目录中提供了完整的示例。以下代码从 %SQLANYSAMP16%\UltraLite\esqlauth\sample.sqc 中获取。



//embedded SQL
app() {
   ...
/* Declare fields */
   EXEC SQL BEGIN DECLARE SECTION;
      char uid[31];
      char pwd[31];
   EXEC SQL END DECLARE SECTION;
   db_init( &sqlca );
   ...
   EXEC SQL CONNECT "DBA" IDENTIFIED BY "sql";
   if( SQLCODE == SQLE_NOERROR ) {
      printf("Enter new user ID and password\n" );
      scanf( "%s %s", uid, pwd );
      ULGrantConnectTo( &sqlca,
         UL_TEXT( uid ), UL_TEXT( pwd ) );
      if( SQLCODE == SQLE_NOERROR ) {
         // new user added: remove DBA
         ULRevokeConnectFrom( &sqlca, UL_TEXT("DBA") );
      }
      EXEC SQL DISCONNECT;
   }
   // Prompt for password
    printf("Enter user ID and password\n" );
    scanf( "%s %s", uid, pwd );
    EXEC SQL CONNECT :uid IDENTIFIED BY :pwd;

该代码执行以下任务:

  1. 通过调用 db_init 启动数据库功能。

  2. 尝试使用缺省用户 ID 和口令进行连接。

  3. 如果连接尝试成功,则添加新用户。

  4. 如果成功添加了新用户,则从 UltraLite 数据库中删除 DBA 用户。

  5. 断开连接。这样就向数据库中添加了已更新的用户 ID 和口令。

  6. 使用已更新的用户 ID 和口令进行连接。

 另请参见