c语言数据库编程--ODBC
c语言数据库编程
c语言连接数据库,直接调用odbc api的函数。我们平常用的odbc或者ado之类,都是封装好了的,一般的编程细节我们是看不到的。尤其在ide里边,我们可以直接用拖放的办法实现数据库连接和操作。而c语言编程中,一切都要自己动手。
具体说来,数据库的常用操作主要是由这样几个odbc函数完成的:SQLAllocHandle 、SQLConnect、SQLExecute、SQLBindCol、SQLGetData、SQLFetch、SQLDisconnect、SQLEndTran等。一个简单的数据库连接例子如下:
// Allocate An Environment Handle
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE,&EnvHandle);
if (EnvHandle != 0)
SQLSetEnvAttr(EnvHandle, SQL_ATTR_ODBC_VERSION,(SQLPOINTER) SQL_OV_ODBC3,
SQL_IS_UINTEGER);
if (EnvHandle != 0)
SQLAllocHandle(SQL_HANDLE_DBC, EnvHandle,&ConHandle);
// Connect To The Appropriate Data Source
if (ConHandle != 0)
{
RetCode = SQLConnect(ConHandle, (SQLCHAR *) "DSN-name",SQL_NTS,
(SQLCHAR *) "username",SQL_NTS,
(SQLCHAR *) "password", SQL_NTS);
if (ConHandle != 0 && RetCode == SQL_SUCCESS)
SQLAllocHandle(SQL_HANDLE_STMT, ConHandle,&StmtHandle);
RetCode=SQLExecDirect(StmtHandle, "SELECT * FROM table-name WHERE ID < 20", SQL_NTS);
while (RetCode != SQL_NO_DATA)
{
RetCode = SQLFetch(StmtHandle);
if(RetCode != SQL_NO_DATA){
SQLGetData(StmtHandle, 1, SQL_C_ULONG, &id,sizeof(id), NULL);
}
}
RetCode = SQLEndTran(SQL_HANDLE_DBC, ConHandle,SQL_COMMIT);
/**
* TERMINATION
**/
// Free The SQL Statement Handle
if (StmtHandle != 0)
SQLFreeHandle(SQL_HANDLE_STMT, StmtHandle);
// Terminate The Data Source Connection
if (ConHandle != 0)
RetCode = SQLDisconnect(ConHandle);
// Free The Connection Handle
if (ConHandle != 0)
SQLFreeHandle(SQL_HANDLE_DBC, ConHandle);
// Free The Environment Handle
if (EnvHandle != 0)
SQLFreeHandle(SQL_HANDLE_ENV, EnvHandle);
odbc api编程的最权威的书籍是微软的《odbc程序员手册》,网上有中文版可以下载。
通过阅读odbc资料和编程实践,我深刻的体会到,c语言功能实在太强大了,可以说无所不能。要想成为一位c语言高手,不是很简单的事情,是要吃一点苦头的。记得我的导师给我说,要想成为计算机高手,首先玩转c语言。
看来我还要努力啊!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库