ODBC执行SQL语句

来源:互联网 发布:js中bind方法 编辑:程序博客网 时间:2024/06/16 23:00

创建SQL语句

这部分你就得靠自己了你必须知道SQL的语法.比如说,当你想创建一个表时,你就得知道CREATE TABLE语句.

执行语句

执行语句有四种方法,由它们是否被数据库引擎编译过(准备好)及被怎样定义有关.

直接执行(Direct Execution)由用户程序定义SQL语句.语句在运行时(runtime)被编译并执行.编译执行(Prepared Execution)也是由用户程序定义SQL语句,但编译和执行被分为两步:首先SQL被准备好(被编译),接下来被执行.通过这种方法,我们可以只编译SQL语句一次但执行相同的语句多次以节省时间.存储过程(Procedures)SQL语句被编译并存放在数据源内,用户程序可以在运行时调用这些语句.目录(Catalog)SQL被硬编码(hardcoded)在ODBC驱动程序内. 目录函数的目的是返回预定义的结果集例如数据库中的所有表名. 总的来说,目录函数用来获得数据源的信息的用户程序可以在运行时调用它们.

这四种方法各有优缺点.当你只运行某一SQL语句一次时,直接执行是一个很好的选择;如果你要经常运行某一语句,则应首选编译执行因为SQL语句仅在第一次运行时被编译,在接下来的运行中,它将运行更快,因为已被编译过了;存储过程是注重速度的最佳选择,因为它已被编译过并存放在数据源中了。缺点是并不是所有的数据存储都支持存储过程.目录主要是是用来获得数据源结构的一些信息。

在本章中,我们主要看一下直接执行和编译执行,因为它们是由我们的程序来完成的.编写存储过程是DBMS(数据库管理系统)的事.而目录将在稍后讨论.

 

、如果是执行带返回值的SQL语句,可以使用CRecordset,先要打开数据库连接,然后使用CRecordset执行Open语句,然后利用GetFieldValue()函数来获取值,不过,在得到值之后要做类型转换,转换成你自己需要的数据类型。  
  2、如果是调用无返回值的存储过程,直接使用CDatabase的ExecuteSQL就可以了,如果是要有返回值的,通过CRecordset来执行,也可使用SQL提供的API函数来进行操作,先SQLBindParameter绑定参数,然后调用SQLExecuteDirectet()等函数来完成这些功能。使用SQLFetch()函数检查是否还有数据。  
  3、直接写SQL语句的话,只要先把SQL语句准备好,比如插入一条记录,调用CDatabase的ExecuteSQL就可以完成,  
  4、建议多看看MSDN或者其它的参考资料,这样,才不需要每次都提问。

0 0