⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 export.cpp

📁 在linux下利用tocci操作oracle数据库的例程将数据导为XML格式的文件
💻 CPP
字号:
#include <stdio.h>
#include <string.h>
#include <fstream.h>
#include <iostream.h>
#include "tocci.h"

int compare(char *,char *);
using namespace oracle::occi;

int main() 
{   
    
    char sun[20];
    char sqltext[1024];
    char table_name[30];     //table name
    char table_file_name[30]; //table file name
    char column_name[30][30];//column name
    int  column_num;         //number of column
    int  i;                  
    int  judge;              //whether out put the table
    int  pos;		     	
    string COLUMN_NAME;      //column name used for output

  
                //open  the file which have the table_name
                ifstream table_name_in("configure");
                
                //set enviroment
		Environment *env = Environment::createEnvironment((Environment::Mode)(Environment::OBJECT | Environment::THREADED_MUTEXED ));
		//connectiong
		Connection *con = env->createConnection ("sun005", "sun005", "nms005");
		//creat sql statement
		Statement *stmt;
		//creat output point
		ResultSet *rs;
                  
                table_name_in>>sun;
                //table_name_in>>table_file_name;
	       while(!table_name_in.eof()) 
               {    
               	    column_num=0;  
               	    table_name_in>>judge; 
               	    if(judge==1)
               	    {  
               	       //得到表名
               	       table_name_in>>table_name;                       
                       //得到sql语句
                       do
                       {
                           table_name_in>>column_name[column_num];
                           column_num++;
                       }while(compare(column_name[column_num-1],"!")==0);    
                       sprintf(sqltext,"SELECT ");
                       for (i=0;i<column_num-2;i++)
                       {    
                       	    if(strstr(column_name[i],"_TIME")==NULL)
                            {       
                                    strcat(sqltext,"to_char(");
                                    strcat(sqltext,column_name[i]);
                                    strcat(sqltext,"),");
                            }
                            else 
                            {
                            	if(strstr(column_name[i],"LIFE")!=NULL)
                                {
                                    strcat(sqltext,"to_char(");
                                    strcat(sqltext,column_name[i]);
                                    strcat(sqltext,"),");                                  	
                                }
                                else 
                                {       
                                    strcat(sqltext,"to_char(");
                                    strcat(sqltext,column_name[i]);
                                    strcat(sqltext,",'yyyy-mm-dd hh:mi:ss AM'),");
                                }  
                             }     
                       }
                       if(strstr(column_name[column_num-2],"TIME")==NULL)
                       {        
                               strcat(sqltext,"to_char(");
                               strcat(sqltext,column_name[column_num-2]);
                               strcat(sqltext,") ");
                        }
                        else 
                        {
                        	if(strstr(column_name[column_num-2],"LIFE")!=NULL)
                                {
                                     strcat(sqltext,"to_char(");
                                     strcat(sqltext,column_name[column_num-2]);
                                     strcat(sqltext,"),");                                  	
                                }
                                else                        
                                {                          
                                     strcat(sqltext,"to_char(");
                                     strcat(sqltext,column_name[column_num-2]);
                                     strcat(sqltext,",'yyyy-mm-dd hh:mi:ss AM') ");

                                }
                        }
                        
                        strcat(sqltext,"from ");
                        strcat(sqltext,sun);
                        strcat(sqltext,".");
                        strcat(sqltext,table_name);
                       //建立sql语句
                       stmt = con->createStatement(sqltext);
                       //自动
                       stmt->setAutoCommit(true);
                       //执行查询
                       rs = stmt->executeQuery();
                       //打开输出文件
                       ofstream table_export(table_name);
                       //输出xml文件头
                       table_export<<"<table>\n\n";
	               while(rs->next())  
		       {      
		       	      table_export<<"     <list>\n";
		              for(i=0;i<column_num-1;i++)
		              {
                                        COLUMN_NAME=rs->getString(i+1);
		              	        if ((COLUMN_NAME.find_first_of(">",0)==-1)&&(COLUMN_NAME.find_first_of("<",0)==-1))
                                        {
                                        	table_export<<"          "<<"<"<<column_name[i]<<">"<<COLUMN_NAME.c_str()<<"</"<<column_name[i]<<">\n";
                                        }
                                        else
                                        {
                                        	while((pos=COLUMN_NAME.find_first_of(">",0))!=-1)
                                        	{
                                        			      COLUMN_NAME.erase(pos,1);
	                                                              COLUMN_NAME.insert(pos,"&gt");
                                        	}
                                        	while((pos=COLUMN_NAME.find_first_of("<",0))!=-1)
                                        	{
                                        		              COLUMN_NAME.erase(pos,1); 
                                        		              COLUMN_NAME.insert(pos,"&lt"); 
                                        	}
                                        	table_export<<"          "<<"<"<<column_name[i]<<">"<<COLUMN_NAME.c_str()<<"</"<<column_name[i]<<">\n";
                            
                                        } 
                                        
		              } 
		              table_export<<"     </list>\n\n\n";
		       }
		        
		                 
		              table_export<<"</table>\n\n";
		              //结束查询语句
		              stmt->closeResultSet(rs);
		              //释放空间
		              con->terminateStatement(stmt);
		              //关闭表文件
		              table_export.close();
		              cout<<table_name<<"  accomplished!"<<endl;
		   }
		   else
		   {
                      do
                      {                      	
                          table_name_in>>table_name;
                          column_num++;
		      }while(compare(table_name,"!")==0);
		   }
                }
              

		env->terminateConnection(con);
		Environment::terminateEnvironment(env);
		table_name_in.close();
	        exit(0);
	        return 0;
}


int compare(char *a,char *b)
{
    int i=a[0],j=b[0];
    if(i==j)
        return 1;
    else
        return 0;
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -