连接到SAMPL数据库,查询LASTNAM为JOHNSO的FIRSTNAM信息。
#i nclude
#include
#include
#include"util.h"
#include
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;
TOC \o "1-5" \h \z 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) 中的includeSQLCA语句定义并描述了 SQLCA勺结构。SQLCA用于 应用程序和数据库之间的通讯,其中的 SQLCOD返回SQL语句执行后的结果状 态。
(2)在 BEGIN DECLARE SECTION和 END DECLARE SECTION之间 定义了宿主变量。宿主变量可被SQL语句引用,也可以被C语言语句引用。它用 于将程序中的数据通过SQL语句传给数据库管理器,或从数 据库管理器接收查 询的结果。在SQL语句中,主变量前均有“:”标志以示区别。
(3)在每次访问数据库之前必须做CONNEC操作,以连接到某一个数据库上。 这时,应该保证数据库实例已经启动。
(4)是一条选择语句。它将表 employee中的LASTNAM为“JOHNSON的行
数据的FIRSTNAM查出,并将它放在firstname 变量中。该语句返回一个结果。 可以通过游标返回多个结果。当然,也可以包含update、insert 和 delete 语
句。
( 5)最后断开数据库的连接。
从上例看出,每条嵌入式SQL语句都用EXEC SQL开始,表明它是一条SQL 语句。这也是告诉预编译器在 EXEC SQL和“;”之间是嵌入SQL语句。如果 一条嵌入式SQL语句占用多行,在C程序中可以用续行符“ ”。
C语言与SQL SERVE数据库
使用C语言来操作SQL SERVE数据库,采用ODB(开放式数据库连接进行数据 的添加,修改,删除,查询等操作。
stepl:启动 SQLSERVER务,例如:HNHJ,开始菜单-> 运行->net start mssqlserver
step2:打开企业管理器,建立数据库test,在test库中建立test表(a varchar(200),b varchar(200))
step3:建立系统DSN开始菜单-> 运行->odbcad32, 添力卩->SQL SERVER
名称:csql,服务器:HNHJ
使用用户使用登录ID和密码的SQLSERVER证,登录ID:sa,密码: 更改默认的数据库为:test
测试数据源,测试成功,即 DNS添加成功。
cpp文件完整代码
〃##########################save.cpp########################## C代码耶詛
#in clude
#in clude
#in clude
#in clude
#in clude
#in clude
#in clude
8.
SQLHENV henv = SQL_NULL_HENV;
SQLHDBC hdbc1 = SQL_NULL_HDBC;
SQLHSTMT hstmt1 = SQL_NULL_HSTMT;
12.
/*cpp文件功能说明:
1.数据库操作中的添加,修改,删除,主要体现在SQL语句上
2.采用直接执行方式和参数预编译执行方式两种
*/
int main(){
RETCODE retcode;
UCHAR szDSN[SQL_MAX_DSN_LENGTH+1] = "csql",
szUID[MAXNAME] = "sa",
szAuthStr[MAXNAME]="";
//SQL 语句
II直接S
















