日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

pro*C/C++支持c++开发实例

發布時間:2023/12/9 c/c++ 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pro*C/C++支持c++开发实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Pro*C/C++同時支持C和C++,但是當預編譯包含C++代碼的PC源程序時,必須合理地設置相關的預編譯選項。

?

代碼:xx.pc

/*功能:演示了Pro*C/C++源程序生成C++源文件說明:Pro*C/C++支持C和C++。當預編譯包含C++代碼的PC源程序時,必須合理地設置相關的預編譯選項。預編譯選項應該設置為cpp_suffix=cpp code=cpp parse=none(或partial)code = ANSI_C, KR_C, CPPparse = NONE, PARTIAL, FULLcpp_suffix = c, cpp, cc*/#include <iostream.h> #include <stdio.h> #include <string.h> #include <stdlib.h>EXEC SQL BEGIN DECLARE SECTION; // 定義宿主變量struct empdat{varchar emp_name[10];float salary;float commission;}emprec;struct empind{short emp_name_ind;short sal_ind;short comm_ind;}emprec_ind;int eno; EXEC SQL END DECLARE SECTION;class emp // 自定義類 {char ename[10];float salary;float commission;public:emp();emp(empdat &dat, empind &ind);void setvalues(empdat &dat, empind &ind);friend ostream& operator<<(ostream &s, emp &e); // 定義友元函數 };emp::emp() {memset(ename, 0, sizeof(ename));salary = commission = 0.0; }emp::emp(empdat &dat, empind &ind) {strncpy(ename, (char*)dat.emp_name.arr, dat.emp_name.len);ename[dat.emp_name.len] = '\0';this->salary = dat.salary;this->commission = (ind.comm_ind < 0) ? 0 : dat.commission; }void emp::setvalues(empdat &dat, empind &ind) {strncpy(ename, (char*)dat.emp_name.arr, dat.emp_name.len);ename[dat.emp_name.len] = '\0';this->salary = dat.salary;this->commission = (ind.comm_ind < 0) ? 0 : dat.commission; }ostream& operator <<(ostream &s, emp &e) {return s<<"name: "<<e.ename<<", salary: "<<e.salary<<", comm: "<<e.commission<<endl<<endl; }#include <sqlca.h> #pragma comment(lib, "orasql10.lib")int connect(); void sql(); void sql_error();void main() { EXEC SQL WHENEVER SQLERROR DO sql_error(); // 安裝錯誤處理句柄 if(connect() == 0) { sql(); EXEC SQL COMMIT WORK RELEASE; // 提交事務,斷開連接 } else printf("連接失敗\n"); } int connect() // connect to oracle database { EXEC SQL BEGIN DECLARE SECTION; // 定義宿主變量char username[10], password[10], server[10]; EXEC SQL END DECLARE SECTION;strcpy(username, "scott"); strcpy(password, "scott"); strcpy(server, "orcl"); EXEC SQL CONNECT :username IDENTIFIED BY :password USING :server;if(sqlca.sqlcode == 0) return 0; else return sqlca.sqlcode; } void sql_error() // print error infomation { printf("%.*s\n", sqlca.sqlerrm.sqlerrml, sqlca.sqlerrm.sqlerrmc); } void sql() { emp e;while(1){cout<<"請輸入雇員號(0:退出):";flush(cout);scanf("%d", &eno);fflush(stdin);if(eno == 0)return;EXEC SQL WHENEVER NOT FOUND goto notfound; // 游標數據提取完畢后退出循環EXEC SQL select ename, sal, comm into :emprec indicator :emprec_ind from emp where empno=:eno;e.setvalues(emprec, emprec_ind);cout<<e;continue;notfound:cout<<"無效雇員號"<<endl<<endl;}printf("sqlca.sqlerrd[2] = %d\n", sqlca.sqlerrd[2]); // sqlca.sqlerrd[2]存放著Select語句作用的行數 }

?

xx.pc文件對應的預編譯選項如圖:


總結

以上是生活随笔為你收集整理的pro*C/C++支持c++开发实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。