提前认识软件开发(20) 如何在C语言里面执行SQL语句2015-01-24在通信类软件中,程序经常需要与数据库打交道。为了实现诸如从数据库中获取数据、更新数据库表某字段、插入或删除某条数据等功能,就需要在C语言程序中构造一些SQL语句,并用函数来执行这些SQL语句。本文介绍如何在C语言程序中构造并执行SQL语句,为相关软件开发工作的开展提供了参考。
一、为什么要在C语言程序中执行SQL语句?在C语言程序中执行SQL语句的原因有以下几个:(1) 程序需要获取数据库中某数据表的字段值,并对这些字段值进行解析以执行后续操作。(2) 程序需要更新数据库中某数据表的字段值。(3) 程序需要向某数据表中插入值。(4) 程序需要从某数据表中删除一些值。(5) 程序需要执行某存储过程以完成特定的操作。可以看出,在C语言程序中,不只要求能够执行“select”、“update”、“insert”、“delete”等语句,还要求能够执行存储过程。
二、C语言程序与数据库打交道的方式C语言程序与数据库打交道的方式分为直连(同步)和非直连(异步)两种,它们的特点如下所示:1. 直连方式在该方式中,C语言程序直接与数据库进行消息的交互,如图1所示。

图1 直连方式示意图
该方式的优点是消息交互是即时的,C语言程序向数据库发送消息之后,很快就能够得到结果;缺点是如果数据库执行缓慢,那么C语言程序需要挂在那里等待结果,影响了程序执行效率。2. 非直连方式在该方式中,C语言程序通过一个独立的第三方模块间接与数据库进行消息的交互,如图2所示。

图2 非直连方式示意图
该方式的优点是当C语言程序向第三方模块发送消息之后,可以不用等待数据库返回结果而去执行其它流程;缺点是如果消息序列号没有定义好,那么极有可能会导致第三方模块返回的结果出现混乱。因此,在该方式中,定义好发送消息的顺序(即设定好序列号)很重要。由于需要与数据库打交道,因此要在C语言程序所使用的配置文件中填写好关联数据库的相关信息,如数据库机器的IP地址、端口号、用户名、密码、模块号和所操作的具体数据库名等。在运行程序之前,一定要确保相关配置项信息的正确性。本文介绍直连方式下C语言程序与数据库进行消息交互的具体流程。
三、直连方式下的消息交互流程在直连方式下,C语言程序与数据库进行消息交互的通用流程如图3所示。

图3 直连方式下的消息交互流程图