前言
嵌入式SQL的一部分内容
正文
一、动态SQL
- 静态SQL特点:SQL语句在程序中已经按要求写好,只需要把一些参数通过变量(高级语言程序语句中不带冒号) 传送给嵌入式SQL语句即可(嵌入式SQL语句中带冒号)
- 动态SQL特点:SQL语句可以在程序中动态构造,形成一个字符串,如上例sqltext,然后再交给DBMS执行,交给DBMS执行时仍旧可以传递变量
动态SQL的两种执行方式
如SQL语句已经被构造在host-variable字符串变量中,则:
- 立即执行语句: 运行时编译并执行
EXEC SQL EXECUTE IMMEDIATE :host-variable;
- Prepare-Execute-Using语句:PREPARE语句先编译,编译后的SQL语句允许动态参数,EXECUTE语句执行,用USING语句将动态参数值传送给编译好的SQL语句
EXEC SQL PREPARE sql_temp FROM :host-variable;
… …
EXEC SQL EXECUTE sql_temp USING :cond-variable
二、ODBC
ODBC是一种标准—不同语言的应用程序与不同数据库服务器之间通讯的标准。
ODBC应用前,需要确认具体DBMS Driver被安装到ODBC环境中
- 当应用程序调用ODBC API时,ODBC API会调用具体DBMS Driver库函
数,DBMS Driver库函数则与数据库服务器通讯,执行相应的请求动作并返
回检索结果 - ODBC应用程序首先要分配一个SQL环境,再产生一个数据库连接句柄
- 应用程序使用SQLConnect(),打开一个数据库连接,SQLConnect()的具
体参数:- connection handle, 连接句柄
- the server,要连接的数据库服务器
- the user identifier,用户
- password ,密码
- SQL_NTS 类型说明前面的参数是空终止的字符串
应用程序如何通过ODBC与数据库服务器进行通讯?
三、嵌入式语言-ODBC-JDBC比较
嵌入式语言
ODBC
JDBC