background image

连接到 SAMPLE 数据库,查询 LASTNAME 为 JOHNSON 的 FIRSTNAME

 

信息。  

  #include   <stdio.h>  
  #include   <stdlib.h>  
  #include   <string.h>  
  #include   "util.h"  
  #include   <sqlca.h>  
  EXEC   SQL   INCLUDE   SQLCA;   (1  

)  

  main()  
  {  
  EXEC   SQL   BEGIN   DECLARE   SECTION;   (2  

)  

  char   firstname[13];  
  char   userid[9];  
  char   passwd[19];  
  EXEC   SQL   END   DECLARE   SECTION;  
  EXEC   SQL   CONNECT   TO   sample;   (3  

)  

  EXEC   SQL   SELECT   FIRSTNME   INTO   :firstname   (4  

)    

  FROM   employee  
  WHERE   LASTNAME   =   'JOHNSON';(4  

)  

  printf(   "First   name   =   %s\n",   firstname   );  
  EXEC   SQL   CONNECT   RESET;   (5  

)  

  return   0;  
  }  
  上面是一个简单的静态嵌入 SQL 语句的应用程序。它包括了嵌入 SQL

 

的主要部分:  

  (1)中的 include   SQLCA 语句定义并描述了 SQLCA 的结构。SQLCA 用于应用程序和数据库之间的
通讯,其中的 SQLCODE 返回 SQL

 

语句执行后的结果状态。  

  (2)在 BEGIN   DECLARE   SECTION 和 END   DECLARE   SECTION 之间定义了宿主变量。宿主
变量可被 SQL 语句引用,也可以被 C 语言语句引用。它用于将程序中的数据通过 SQL 语句传给数据库

 

管理器,或从数 据库管理器接收查询的结果。在 SQL

“ ”

 

语句中,主变量前均有 : 标志以示区别。  

  (3)在每次访问数据库之前必须做 CONNECT 操作,以连接到某一个数据库上。这时,应该保证数据

 

库实例已经启动。  
  (4)是一条选择语句。它将表 employee 中的 LASTNAME

为 JOHNSON”的行数据的 FIRSTNAME

 

查出,并将它放在 firstname 变量中。该语句返回一个结果。可以通过游标返回多个结果。当然,也可以
包含 update、insert 和 delete

 

语句。  

  (5

 

)最后断开数据库的连接。  

  从上例看出,每条嵌入式 SQL 语句都用 EXEC   SQL 开始,表明它是一条 SQL 语句。这也是告诉预编
译器在 EXEC   SQL

“ ”

和 ; 之间是嵌入 SQL 语句。如果一条嵌入式 SQL 语句占用多行,在 C 程序中可

以用续行符 \”  

语言用 vc 连接 sql server 2000