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

📄 createscheme.cpp

📁 这是书上的代码
💻 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 + -