📄 createscheme.cpp
字号:
// CreateScheme.cpp: implementation of the CCreateScheme class.
//
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//工程: CreateScheme.cpp
//作者: 刘志军
//修改者:
//描述:
//主要函数:
//版本: CreateScheme 1.0版。
//完成日期:2003/08/10
//修改日期:
//参考文献:
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "OO4O_VC.h"
#include "CreateScheme.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
CCreateScheme::CCreateScheme()
{
}
CCreateScheme::CCreateScheme(CString szOraDB,CString szUserID,CString szPassword)
{
OpenOraDB(szOraDB,szUserID,szPassword);
}
CCreateScheme::~CCreateScheme()
{
}
//打开ORACLE数据库连接
BOOL CCreateScheme::OpenOraDB(CString & szOraDB,CString & szUserID,CString & szPassword)
{
return m_OraDB.Open((const char *)szOraDB,
(const char *)szUserID, (const char *)szPassword,ODATABASE_EDIT_NOWAIT);
}
//在后台数据库执行相应的SQL语句
BOOL CCreateScheme::ExecuteSQL(CString &szSQL)
{
oresult or= m_OraDB.ExecuteSQL((const char *)szSQL);
if(or!=OSUCCESS)
{
AfxMessageBox(m_OraDB.GetErrorText());
return FALSE;
}
}
//判断数据库连接是否已经打开
BOOL CCreateScheme::IsOpenOraDB()
{
return m_OraDB.IsOpen();
}
//在Oracle中创建表
BOOL CCreateScheme::CreateTable(CString szUser,CString szSQL)
{
ExecuteSQL(szSQL);
return 1;
}
CString CCreateScheme::GetTables(CStringArray * arrTableName)
////GeoView_Tech_Mark_End
{
m_OraSet.Open(m_OraDB, "select * from USER_TABLES");
if(!m_OraSet.IsOpen())
{
AfxMessageBox(m_OraSet.GetErrorText());
return "Error";
}
OValue val ;
CString strTableSpaceName;
while(!m_OraSet.IsEOF())
{
m_OraSet.GetFieldValue((const char *) "TABLE_NAME",&val);
arrTableName->Add(CString((const char *)val));
m_OraSet.GetFieldValue((const char *) "TABLESPACE_NAME",&val);
strTableSpaceName=(CString)val;
m_OraSet.MoveNext();
}
m_OraSet.Close();
return strTableSpaceName;
}
//获取表结构
int CCreateScheme::GetTableColumns(CString strTableName,CStringArray * arrColumnName,CStringArray * arrColumnDataType,
CStringArray * arrDataLength,CStringArray * arrDataPrec,CStringArray * arrDataScale)
{
m_OraSet.Open(m_OraDB, "select * from USER_TAB_COLUMNS");
if(!m_OraSet.IsOpen())
{
AfxMessageBox(m_OraSet.GetErrorText());
return 0;
}
OValue val ;
while(!m_OraSet.IsEOF())
{
m_OraSet.GetFieldValue((const char *) "TABLE_NAME",&val);
CString szTemp=(CString)val;
if(strTableName.Compare(szTemp)==0)
{
m_OraSet.GetFieldValue((const char *) "COLUMN_NAME",&val);
arrColumnName->Add(CString((const char *)val));
m_OraSet.GetFieldValue((const char *) "DATA_TYPE",&val);
arrColumnDataType->Add(CString((const char *)val));
m_OraSet.GetFieldValue((const char *) "DATA_LENGTH",&val);
arrDataLength->Add(CString((const char *)val));
m_OraSet.GetFieldValue((const char *) "DATA_PRECISION",&val);
arrDataPrec->Add(CString((const char *)val));
m_OraSet.GetFieldValue((const char *) "DATA_SCALE",&val);
arrDataScale->Add(CString((const char *)val));
}
m_OraSet.MoveNext();
}
m_OraSet.Close();
return arrColumnName->GetSize();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -