混合编程--fortran调用C++采用ODBC形式连接MYSQL数据库

来源:互联网 发布:asap2020软件 64bit 编辑:程序博客网 时间:2024/06/05 15:10

前言

最近项目中用到了fortran语言,需要与数据库连接,将fortran程序计算的结果存入数据库以便后期需要,在调研的时候有两种方法:1,利用fortran系列的f90sql连接数据库;2,采用混合编程,就是采用某种语言与数据库连接,再用fortran调用接口函数,进入视线的有python,c++,c;最后采用第二种方案,采用fortran + C++的形式;理由如下:
1.本渣对fortran不熟悉,且f90sql在网上资料比较少,应该不是很好弄;
2.我们项目组的fortran程序运行环境是vs2010+ivf,所有采用第二种方法,一样的IDE应该会好弄一点;

fortran调用C++函数

由于我们的fortran与C++运行环境IDE都是vs2010,那就省了很多事了,直接参考链接[link text]https://wenku.baidu.com/view/d5a96a3911661ed9ad51f01dc281e53a580251c7.html主要是设置单解决方案多项目,设置项目依赖项,设置多线程调试等,实现简单的fortran调用C++中的sub函数,注意设置你的操作系统的位数与当前项目平台位数是否符合;

C++连接数据库

原来做项目都是用java的类似mybatis的框架直接连,这就很舒服,但是这次用c++就很难受,用c++的方法连接数据库有两种方式:
1.利用mysql的API连接数据库;
2.利用ODBC数据源连接;
两种方法在网上都有很多方法可自行度娘,第一种方法不知怎么的在我的电脑上运行不了,代码都是网上已经验证过的代码在我的电脑上运行之后就有0xc000007b无法正常启动错误,我也照着网上的方法找了一些东西,修复之后还是没有解决,一气之下放弃这种方法,第二种是利用ODBC数据源方式,如何配置ODBC数据源请参考[link text](http://jingyan.baidu.com/article/5553fa82e783d965a23934e7.html)关于连接代码可以参考[link text](http://blog.csdn.net/lbcab/article/details/51329207)这篇博客的优点是面向对象式编程,增删查该的代码都有,可以作为参考;最坑的是:我建立了64bit的ODBC数据源(因为我的mysql以及我的操作系统都是64bit的),连接的时候告诉我找不到数据源,后来看到网上的帖子讲要配置32bit的ODBC,我就下载了32bit的MYSQL Connector,后来就连上了;至今没有搞懂为什么??如果你也连不上,那就试试32bit的odbc吧。

实现调用代码:

//使用封装类的方式对数据库进行操作,可以实现执行sql语句//直接连接数据库,可以使用,_ConnectionPtr  m_pConnection;// 初始化COM,创建ADO连接等操作CoInitialize(NULL);   m_pConnection.CreateInstance(__uuidof(Connection));   try {  //设置连接时间  m_pConnection->ConnectionTimeout = 5;   }  catch(_com_error &e)  {      MessageBox(NULL, e.Description(), _T(""), MB_OK); } //使用封装类的方式对数据库进行操作,可以实现执行sql语句//OpenDatabase()的前提条件是m_pConnection不为空CDataOperator data;if(data.OpenDatabase("3dvisualization_test","root","123456")){    cout<<"CONNECT OK"<<endl;}else{    cout<<"connect error"<<endl;}bool flag = data.ExecuteSQL("INSERT INTO experiment VALUES (26, 'Bill', 23, 33,43)");if(flag){    std::cout<<"插入成功"<<std::endl;}else{    std::cout<<"插入失败"<<std::endl;   }system("pause");

调用运行之后就可以显示插入成功了;

写在最后

最后就是将两块的东西整合到一个方面,尽量做到代码的服用,实现面向对象的编程,已提高效率;这只是一个demo,后来如果遇到什么问题,再来更新。。。就这样吧!

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 摩托车油漆掉了怎么办 发动机怠速不稳怎么办 信用综合评分不足怎么办 综合评分不足是怎么办 综合信用分不足怎么办 iptv突然无信号怎么办 排气系统故障灯亮怎么办 空调冷凝器坏了怎么办 水温空调不制冷怎么办 用冷风机屋里潮怎么办 空调制热不出水怎么办 空调水管堵了怎么办 空调制冷不出水怎么办 空调出风口漏水怎么办 空调管漏水厉害怎么办 电动车车速变慢怎么办 遥控器按钮掉了怎么办 苹果6屏幕凸起怎么办 三星笔记本开机黑屏怎么办 笔记本电脑开机黑屏怎么办三星 笔记本电脑黑屏怎么办灯是亮得 九代雅阁收音机信号不好怎么办 九代雅阁电瓶亏电怎么办 17款雅阁混动汽车胎压灯怎么办 空调制冷出热风怎么办 轿车方向机漏油怎么办 车钥匙感应不灵怎么办 汽车助力泵漏油怎么办 奔腾b70油耗高怎么办 方向机漏油了怎么办 威志油耗高怎么办 佳美2.4油耗大怎么办 笔记本电脑按键坏了怎么办 电视主板坏了怎么办 面包车电量亏电怎么办 自动挡汽车亏电怎么办 自动挡亏电了怎么办 面包车打不起火怎么办 汽车电瓶亏电怎么办 小车电池没电怎么办 汽车电瓶有电打不着火怎么办