zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

查用C语言操作Oracle数据库增删改查(c oracle 增删改)

OracleC语言数据库 操作 增删 改查
2023-06-13 09:20:13 时间

使用C语言操作Oracle数据库:增删改查

Oracle是一种广泛使用的关系型数据库管理系统,它具有高度可扩展性和安全性,被广泛应用于企业级应用程序中。本文将介绍如何使用C语言连接和操作Oracle数据库,包括增加、删除、修改和查询数据。

需要安装Oracle Instant Client和ODBC驱动程序。 启动Visual Studio,选择“Visual C++”“Win32控制台应用程序”,然后在下一步中选择“Empty Project”。

1.连接Oracle数据库

在可执行文件中引用odbc32.lib和oci.lib库。然后添加以下代码:

`c

#include

#include

#include

#include

#include

#include

#include

#include

SQLHENV envh;

SQLHDBC dbh;

SQLHSTMT stmt;

SQLRETURN retval;

// Initialize the environment handle

SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, envh);

// Set the environment attributes

SQLSetEnvAttr(envh, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER);

// Allocate the connection handle

SQLAllocHandle(SQL_HANDLE_DBC, envh, dbh);

// Connect to the database

char connstr[1024] = DSN=ODBC_NAME;UID=USERNAME;PWD=PASSWORD;

SQLDriverConnect(dbh, NULL, (SQLCHAR*)connstr, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE);

// Allocate the statement handle

SQLAllocHandle(SQL_HANDLE_STMT, dbh, stmt);


在上面的代码中,我们首先初始化环境句柄并设置环境属性。然后,我们使用SQLAllocHandle为连接和语句预留空间。使用SQLDriverConnect连接到Oracle数据库。
请注意,connstr字符串应该是ODBC数据源名称、用户名和密码的组合。 数据源名称是在ODBC管理器中创建的。默认情况下,ODBC管理器位于C:\Windows\System32\odbcad32.exe。
2.插入数据
使用INSERT语句将数据插入表中。 以下是一个简单的示例:
```cchar* insert_query = "INSERT INTO employees (employee_id, first_name, last_name) VALUES (456, "John", "Doe")";
SQLExecDirect(stmt, (SQLCHAR*)insert_query, SQL_NTS);

在上面的代码中,我们使用SQLExecDirect执行INSERT查询。SQLExecDirect执行创建的SQL查询,将其结果存储在语句句柄中。

3.更新数据

使用UPDATE语句更新数据。以下是一个示例:

`c

char* update_query = UPDATE employees SET first_name= Jane , last_name= Doe WHERE employee_id=456

SQLExecDirect(stmt, (SQLCHAR*)update_query, SQL_NTS);


在上面的代码中,我们使用UPDATE语句将名为“John Doe”的员工名字更改为“Jane Doe”。
4.删除数据
使用DELETE语句删除数据。以下是一个示例:
```cchar* delete_query = "DELETE FROM employees WHERE employee_id=456";
SQLExecDirect(stmt, (SQLCHAR*)delete_query, SQL_NTS);

在上面的代码中,我们使用DELETE语句删除名为“Jane Doe”的员工。

5.查询数据

检索数据最常用的方法是使用SELECT语句。以下代码演示如何查询employees表中的所有记录:

`c

char* select_query = SELECT * FROM employees

SQLExecDirect(stmt, (SQLCHAR*)select_query, SQL_NTS);

SQLLEN employee_id = 0;

SQLCHAR first_name[50];

SQLCHAR last_name[50];

// Bind the result columns using SQLBindCol

SQLBindCol(stmt, 1, SQL_C_SLONG, employee_id, sizeof(employee_id), NULL);

SQLBindCol(stmt, 2, SQL_C_CHAR, first_name, 50, NULL);

SQLBindCol(stmt, 3, SQL_C_CHAR, last_name, 50, NULL);

// Fetch the result set using SQLFetch

while (SQLFetch(stmt) == SQL_SUCCESS) {

printf( Employee ID: %d, First Name: %s, Last Name: %s\n , employee_id, first_name, last_name);

}


在上面的代码中,我们使用SQLBindCol将结果绑定到变量中,并使用SQLFetch检索所有行。
6.断开连接
在使用完Oracle数据库后,请断开连接并释放资源。以下代码演示如何释放资源:
```cSQLFreeHandle(SQL_HANDLE_STMT, stmt);
SQLDisconnect(dbh);SQLFreeHandle(SQL_HANDLE_DBC, dbh);
SQLFreeHandle(SQL_HANDLE_ENV, envh);

在上面的代码中,我们首先释放SQL_STMT句柄,这将释放所有结果集和任何参数值。接下来,我们断开与数据库的连接,然后释放连接和环境句柄。

正如您所看到的,使用C语言连接和操作Oracle数据库并不太困难。上面的示例提供了一个基础知识,但您可以进一步扩展这些示例以满足您的需求。


我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 查用C语言操作Oracle数据库增删改查(c oracle 增删改)