设为首页 加入收藏

TOP

C++连接Postgresql数据库进行数据预筛选(代码教程)
2018-03-16 08:47:31 】 浏览:147
Tags:连接 Postgresql 数据库 进行 数据 筛选 代码 教程

C++连接Postgresql数据库进行数据预筛选(代码教程)

/*
 * PreSelect.cpp
 *
 *  Created on: Mar 14, 2018
 *      Author: zlf
 */

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #include 
       
         #include 
        
          #include 
         
           using namespace std; using namespace pqxx; //=======================================================// //=======================================================// int main(int argc, char* argv[]) { char * sql_delete0; char * sql_delete1; char * sql_delete2; char * sql0; char * sql1; char * sql2; char * sql3; char * sql4; char * sql5; try { connection C0( "dbname=hello user=postgres password=123 \ hostaddr=127.0.0.1 port=5432"); if (C0.is_open()) { cout << "Opened database successfully: " << C0.dbname() << endl; } else { cout << "Can't open database" << endl; return 1; } /* Create SQL statement */ sql_delete0 = "drop table if exists diagnosis2"; sql_delete1 = "drop table if exists diagnosis3"; sql_delete2 = "drop table if exists diagnosis4"; sql0 = "select * into diagnosis2 from diagnosis1 where icd is not null"; sql1 = "select count(patient_id), patient_id into diagnosis3 from diagnosis2 group by patient_id having count(patient_id)>3"; sql2 = "select * into diagnosis4 from diagnosis2 where patient_id in (select patient_id from diagnosis3) order by patient_id, time_begin asc"; sql4 = "create table if not exists diagnosis5 (" "patient_id character varying," "visit_number character varying," "sex integer," "time_begin timestamp without time zone," "time_end timestamp without time zone," "icd character varying," "name character varying );"; sql5 = "delete from diagnosis5"; /* Create a non-transactional object. */ nontransaction N(C0); /* Execute SQL query */ result R0(N.exec(sql_delete0)); result R1(N.exec(sql_delete1)); result R2(N.exec(sql_delete2)); result R3(N.exec(sql0)); result R4(N.exec(sql1)); result R5(N.exec(sql2)); result R6(N.exec(sql4)); result R7(N.exec(sql5)); /* List down all the records */ int num = 0; bool show = 0; if (show == 1) { for (result::const_iterator c = R5.begin(); c != R5.end(); ++c) { cout << "PatientID = " << c[0].as
          
           () << " "; cout << "VisitNumber = " << c[1].as
           
            () << " "; cout << "Sex = " << c[2].as
            
             () << " "; cout << "time_begin = " << c[3].as
             
              () << " "; cout << "time_end = " << c[4].as
              
               () << " "; cout << "ICD = " << c[5].as
               
                () << " "; cout << "name = " << c[6].as
                
                 () << " "; num = num + 1; cout << "num= " << num << endl; if (num > 5000) { break; } } } cout << "Operation done successfully" << endl; C0.disconnect(); } catch (const std::exception &e) { cerr << e.what() << std::endl; return 1; } return 0; } /* g++ $(pkg-config --libs libpqxx) PreSelect.cpp -lpqxx -lpq -o PreSelect */ 
                
               
              
             
            
           
          
         
        
       
      
     
    
   
  
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇如何获取所有部门中当前员工薪水.. 下一篇从titles表获取按照title进行分组

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目