?? export.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,">");
}
while((pos=COLUMN_NAME.find_first_of("<",0))!=-1)
{
COLUMN_NAME.erase(pos,1);
COLUMN_NAME.insert(pos,"<");
}
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 + -