c - 设置 Linux-C-DB2 环境
问题描述
我正在尝试建立一个学习环境:编写和测试简单的 C 程序以在 Ubuntu 18.04 上执行 DB2 数据库操作。系统。
我在 Web 教程和 IBM 页面的帮助下安装了 DB2,从安装程序接收数据库信息,在 Gedit 中编写了简单的程序。
我用 Gnu C Compiler (gcc) 编译了最简单的程序。
一旦编译器遇到“EXEC SQL...”行,它就会终止并报告错误。
让这件事发挥作用的下一步是什么?
解决方案
这是一篇不错的起点文章:
[Db2] 在 Linux 上编译一个简单的 C 应用程序以验证环境
https://www.ibm.com/support/pages/db2-compile-simple-c-application-linux-verify-环境
它是为 RHEL 7.6 和 CentOS 7 编写的。但它应该适用于 ubuntu。
... snip ...
select.sqc.
-----
#include <stdio.h>
#include <string.h>
#include <sqlca.h>
#include <sqlenv.h>
#include <sqlutil.h>
int main(int argc, char *argv[]){
struct sqlca sqlca;
EXEC SQL BEGIN DECLARE SECTION;
char dbAlias[15];
char deptname[100];
EXEC SQL END DECLARE SECTION;
strcpy(dbAlias, argv[1]);
:
... snip ...
... snip ...
db2 connect to $DBNAME
db2 PREP $CSOURCE.sqc BINDFILE
gcc -I$HOME/sqllib/include -c $CSOURCE.c
gcc -o $CSOURCE $CSOURCE.o -ldb2 -L$HOME/sqllib/lib
db2 bind $CSOURCE.bnd
... snip ...
建议查看文章并按照步骤操作。
希望这可以帮助。
推荐阅读
- python - 我无法隐藏 python exe 文件控制台
- reactjs - 从父组件中找出子组件挂载在react中
- linux - 使用 find 命令获取 n 级父级
- node.js - 迭代nodejs中的数组后如何仅返回一次响应?
- javascript - 防止使用 load-google-maps-api 在 vuejs 中多次加载
- amazon-web-services - 尝试从 AWS Elastic Beanstalk Multicontainer 中的私有 Docker 存储库中提取时出现 CannotPullContainerError
- mongodb - 如何在mongodb中获取子文档中的最后一个元素
- c# - 使用 Max() 在实体框架中自联接
- javascript - 在反应异步中更新状态行为不正确
- python - 在 python 中,是否可以在没有授权码的情况下编辑公开共享的谷歌表?