linux下c++操作达梦数据库
时间: 2024-01-01 20:04:01 浏览: 189
要在Linux下使用C语言操作达梦数据库,需要先安装达梦数据库的客户端库,并在程序中引入相应的头文件和库文件。
以下是一个简单的例子,演示如何使用C语言连接达梦数据库,并查询数据:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dmi.h>
int main()
{
DMHCONN hconn;
DMHSTMT hstmt;
DMINT rc;
DMCHAR *sql = "SELECT * FROM mytable";
DMINT32 rows = 0;
// 连接数据库
rc = dmi_connect("localhost", "myuser", "mypassword", "mydatabase", &hconn);
if (rc != DMI_SUCCESS) {
printf("Failed to connect to database: %s\n", dmi_error());
return 1;
}
// 准备SQL语句
rc = dmi_stmt_alloc(hconn, &hstmt);
if (rc != DMI_SUCCESS) {
printf("Failed to allocate statement: %s\n", dmi_error());
dmi_disconnect(hconn);
return 1;
}
// 执行SQL语句
rc = dmi_stmt_execute(hstmt, sql, strlen(sql));
if (rc != DMI_SUCCESS) {
printf("Failed to execute statement: %s\n", dmi_error());
dmi_stmt_free(hstmt);
dmi_disconnect(hconn);
return 1;
}
// 获取查询结果
DMINT32 ncols = dmi_stmt_result_columns(hstmt);
for (int i = 0; i < ncols; i++) {
DMCHAR colname[256];
DMINT32 coltype, collen;
dmi_stmt_result_column_info(hstmt, i + 1, colname, &coltype, &collen);
printf("%s\t", colname);
}
printf("\n");
while (dmi_stmt_fetch(hstmt) == DMI_SUCCESS) {
rows++;
for (int i = 0; i < ncols; i++) {
DMCHAR buf[256];
DMINT32 len;
dmi_stmt_result_column(hstmt, i + 1, buf, &len);
printf("%s\t", buf);
}
printf("\n");
}
printf("%d rows returned.\n", rows);
// 释放资源
dmi_stmt_free(hstmt);
dmi_disconnect(hconn);
return 0;
}
```
需要注意的是,在编译时需要加上达梦数据库客户端库的链接选项,例如:
```
gcc -o myprogram myprogram.c -ldmi
```
其中,`-ldmi` 表示链接达梦数据库客户端库。具体链接选项可能因版本而异,需要查阅相关文档。