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 数据访问 API » SQL Anywhere 嵌入式 SQL » 读取数据

 

最多返回一行的 SELECT 语句

单行查询最多从数据库中检索一行。单行查询 SELECT 语句在选择列表之后和 FROM 子句之前有一个 INTO 子句。INTO 子句包含一个主机变量的列表,用来接收每个选择列表项的值。主机变量和选择列表项的数目必须相同。主机变量可以和指示符变量一起使用,以指示 NULL 结果。

当执行 SELECT 语句时,数据库服务器检索结果并将其放在主机变量中。如果查询结果包含多个行,则数据库服务器会返回一个错误。

如果查询结果中没有选定的行,则返回 [未找到行] 警告。在 SQLCA 结构中返回的错误和警告。请参见SQL 通信区域 (SQLCA)

示例

如果成功地从 Employees 表中读取了一行,则以下代码段返回 1;如果该行不存在,则返回 0;如果出现错误,则返回 -1。

EXEC SQL BEGIN DECLARE SECTION;
long   ID;
char   name[41];
char   Sex;
char   birthdate[15];
short int ind_birthdate;
EXEC SQL END DECLARE SECTION;
...
int find_employee( long Employees )
{
  ID = Employees;
  EXEC SQL SELECT GivenName ||
    ' ' || Surname, Sex, BirthDate
    INTO :name, :Sex,
      :birthdate:ind_birthdate
    FROM Employees
    WHERE EmployeeID = :ID;
  if( SQLCODE == SQLE_NOTFOUND ) 
  {
    return( 0 ); /* Employees not found */
  } 
  else if( SQLCODE < 0 ) 
  {
    return( -1 ); /* error */
  } 
  else 
  {
    return( 1 ); /* found */
  }
}