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

📄 testdlldlg.cpp

📁 将对Oracle数据库读写操作的OCI进行封装。不但具有普通数据的读取操作
💻 CPP
📖 第 1 页 / 共 2 页
字号:
			pParamter = NULL;
		}

		for(i = 0;i < recordset.Fields().GetSize();i++)
		{
			CWTField *pField = NULL;
			pField = recordset.Fields().GetAt(i);
			delete pField;
			pField = NULL;
		}

		return;
	}

	pField = NULL;
	CWTRecord *pRecord = NULL;
	CString strValue = _T("");
	long lRecordCount = 0;
	lRecordCount = recordset.GetRecordCount();

	for(long i = 0;i < lRecordCount;i++)
	{
		pRecord = recordset.GetRecord(i);
		strValue = _T("");

		for(int j = 0;j < pRecord->GetFieldCount();j++)
		{
			pField = pRecord->Fields().GetAt(j);
			strValue += pField->GetValueAsString() + _T(",");
		}
		m_list.AddString(strValue);
	}

	for(i = 0;i < recordset.Parameters().GetSize();i++)
	{
		CWTParameter *pParamter = NULL;
		pParamter = recordset.Parameters().GetAt(i);
		delete pParamter;
		pParamter = NULL;
	}

	for(i = 0;i < recordset.Fields().GetSize();i++)
	{
		CWTField *pField = NULL;
		pField = recordset.Fields().GetAt(i);
		delete pField;
		pField = NULL;
	}

	recordset.Close();*/
}

//
//输入测试
//
void CTestdllDlg::OnButton4() 
{
/*	BOOL bSuccess = FALSE;

	CWTCommander cmd;
	cmd.Create(&db,&error);

	//实现了各种不种类型的 number 的输入 :int float double!
	cmd.SetCommand("INSERT INTO aaa(id1,id2,id3) VALUES (:id1,:id2,:id3)");

	//实现了 string 型和 date 型数据的输入
//	cmd.SetCommand("INSERT INTO test(id,name,date_,mark) VALUES (:id,:name,:date_,:mark)");

	static CString strTemp = _T("");
	CWTParameter *pParam = NULL;
	for(int i = 0;i < 10; i++)
	{
		pParam = new CWTParameter();
		pParam->Create(WTINT,&db,&error);
		int nVal = i;
		*pParam = nVal;
		pParam->SetMark(_T(":id1"));
		cmd.Parameters().Add(pParam);

		float flVal =0.0;
		pParam = new CWTParameter();
		pParam->Create(WTFLOAT,&db,&error);
		flVal = (float)i + (float)10.1;
		*pParam = flVal;
		pParam->SetMark(_T(":id2"));
		cmd.Parameters().Add(pParam);

		double dlVal = 0.0;
		pParam = new CWTParameter();
		pParam->Create(WTDOUBLE,&db,&error);
		dlVal = (double)i + (double)20.2;
		*pParam = dlVal;
		pParam->SetMark(_T(":id3"));
		cmd.Parameters().Add(pParam);*/

/*
		pParam = new CWTParameter();
		pParam->Create(WTDOUBLE,&db,&error);
		double dlVal = i;
		*pParam = dlVal;
		pParam->SetMark(_T(":id"));
		cmd.Parameters().Add(pParam);
		
		pParam = new CWTParameter();
		pParam->Create(WTCSTRING,&db,&error);
		strTemp = _T("name");
		*pParam = strTemp;
		pParam->SetMark(_T(":name"));
		cmd.Parameters().Add(pParam);

		pParam = new CWTParameter();
		pParam->Create(WTDATE,&db,&error);
//		strTemp = _T("20-5月-1981");
		strTemp = _T("205月1981");
//		strTemp = _T("20-5月-04");
		*pParam = strTemp;
		pParam->SetMark(_T(":date_"));
		cmd.Parameters().Add(pParam);

		pParam = new CWTParameter();
		pParam->Create(WTCSTRING,&db,&error);
		strTemp = _T("aa你好!");
		*pParam = strTemp;
		pParam->SetMark(_T(":mark"));
		cmd.Parameters().Add(pParam);
*/
/*		bSuccess = cmd.Execute();
		if(bSuccess == FALSE)
		{
			CString strError;
			strError = error.GetError();
			AfxMessageBox(strError);
		}
	}

	for(i = 0;i < cmd.Parameters().GetSize();i++)
	{
		CWTParameter *pParamter = NULL;
		pParamter = cmd.Parameters().GetAt(i);
		delete pParamter;
		pParamter = NULL;
	}

	cmd.Close();*/
}

//
//删除测试
//
void CTestdllDlg::OnButton5() 
{/*
	BOOL bSuccess = FALSE;

	CWTCommander cmd;
	cmd.Create(&db,&error);
	cmd.SetCommand("DELETE FROM  aaa WHERE id1 < :id");
//	cmd.SetCommand("DELETE FROM  aaa WHERE id1 = :id");
//	cmd.SetCommand("DELETE FROM  aaa WHERE id1 > :id");

	CWTParameter *pParam = new CWTParameter();
	pParam->Create(WTINT,&db,&error);
	int nVal = 3;
	*pParam = nVal;
	pParam->SetMark(_T(":id"));
	cmd.Parameters().Add(pParam);

	bSuccess = cmd.Execute();
	if(bSuccess == FALSE)
	{
		CString strError;
		strError = error.GetError();
		AfxMessageBox(strError);
	}

	for(int i = 0;i < cmd.Parameters().GetSize();i++)
	{
		CWTParameter *pParamter = NULL;
		pParamter = cmd.Parameters().GetAt(i);
		delete pParamter;
		pParamter = NULL;
	}

	cmd.Close();*/
}

//
//更新测试
//
void CTestdllDlg::OnButton6() 
{
/*	BOOL bSuccess = FALSE;

	CWTCommander cmd; 
	cmd.Create(&db,&error);
	cmd.SetCommand("UPDATE aaa SET id2 = :id2 WHERE id1 = :id1");

	CWTParameter *pParam = NULL;
		CString strTemp;
	for(int i = 0;i < 10; i++)
	{
		pParam = new CWTParameter();
		pParam->Create(WTINT,&db,&error);
		int nVal = i;
		*pParam = nVal;
		pParam->SetMark(_T(":id1"));
		cmd.Parameters().Add(pParam);

		pParam = new CWTParameter();
		pParam->Create(WTFLOAT,&db,&error);
		float flVal = (float)0.5 + i;
		*pParam = flVal;
		pParam->SetMark(_T(":id2"));
		cmd.Parameters().Add(pParam); 

		bSuccess = cmd.Execute();
		if(bSuccess == FALSE)
		{
			CString strError;
			strError = error.GetError();
			AfxMessageBox(strError);
		}
	}

	for(i = 0;i < cmd.Parameters().GetSize();i++)
	{
		CWTParameter *pParamter = NULL;
		pParamter = cmd.Parameters().GetAt(i);
		delete pParamter;
		pParamter = NULL;
	}

	cmd.Close();*/
}

//
//创建表格测试
//
void CTestdllDlg::OnButton7() 
{
/*	BOOL bSuccess = FALSE;

	CWTCommander cmd;
	cmd.Create(&db,&error);
//	cmd.SetCommand("CREATE TABLE test(id NUMBER(10,5),name VARCHAR2(20),date_ DATE,MARK VARCHAR2(100))");
//	cmd.SetCommand("CREATE TABLE aaa(id1 NUMBER(20,5),id2 NUMBER(20,6),id3 NUMBER(20,7))");

	cmd.SetCommand("  CREATE TABLE TEST_CAPITALS\
		             (CITY_NAME 	VARCHAR2(40), \
					  STATE_FIPS 	VARCHAR2(2), \
					  STATE_NAME 	VARCHAR2(25), \
					  ELEVATION 	NUMBER(4,0), \
					  CITY_FIPS 	VARCHAR2(5), \
					  STATE_CITY 	VARCHAR2(7), \
					  POP1990 	    NUMBER(9,0), \
					  P_MALES 	    NUMBER(5,2), \
					  P_FEMALES     NUMBER(5,2),\
					  P_WHITE       NUMBER(5,2),\
					  P_BLACK 	    NUMBER(5,2), \
					  P_AMERI_ES 	NUMBER(5,2), \
					  P_ASIAN_PI 	NUMBER(5,2), \
					  P_HISPANIC 	NUMBER(5,2), \
					  P_OTHER 	    NUMBER(5,2), \
					  P_UNDER5 	    NUMBER(5,2), \
					  P_5_17 	    NUMBER(5,2), \
					  P_18_64 	    NUMBER(5,2), \
					  P_65_UP 	    NUMBER(5,2), \
					  GEOM 	        MDSYS.SDO_GEOMETRY)");

	bSuccess = cmd.Execute();
	if(bSuccess == FALSE)
	{
		CString strError;
		strError = error.GetError();
		AfxMessageBox(strError);
	}

	cmd.Close();*/
}

void CTestdllDlg::OnButton8() 
{
/*	UpdateData();
	BOOL bSuccess = FALSE;

	CWTRecordSet recordset;
	bSuccess = recordset.Create(&db);
	if(bSuccess == FALSE)
	{
		AfxMessageBox("Error");
		return;
	}

	recordset.m_strFilter = _T("TABLE_NAME=:TABLE_NAME");

	CWTParameter *pParam;
	pParam = new CWTParameter();
	pParam->Create(WTCSTRING,&db,&error);
	*pParam = m_strName;
	pParam->SetMark(_T(":TABLE_NAME"));
	recordset.Parameters().Add(pParam);


	//选择要输出的字段:只须选择字段名
	CWTField *pField = NULL;
	pField = new CWTField();
	pField->SetFieldName(_T("DIMINFO"));
	recordset.Fields().Add(pField);

	bSuccess = recordset.Open(_T("USER_SDO_GEOM_METADATA"),&error);
	if(bSuccess == FALSE)
	{
		CString strError;
		strError = error.GetError();
		AfxMessageBox(strError);

		recordset.Close();

		for(int i = 0;i < recordset.Parameters().GetSize();i++)
		{
			CWTParameter *pParamter = NULL;
			pParamter = recordset.Parameters().GetAt(i);
			delete pParamter;
			pParamter = NULL;
		}

		for(i = 0;i < recordset.Fields().GetSize();i++)
		{
			CWTField *pField = NULL;
			pField = recordset.Fields().GetAt(i);
			delete pField;
			pField = NULL;
		}

		return;
	}

	recordset.Close();*/
}

BOOL CTestdllDlg::ConnetDB(CString DBNAME, CString UserName, CString PassWord, CString Power)
{
	BOOL bSuccess = FALSE;

	bSuccess = db.Initialize();
	if(bSuccess == FALSE)
	{
		AfxMessageBox("error!");
		return FALSE;
	}

	if(!error.Create(&db))
	{
		AfxMessageBox("");
	};

	bSuccess = db.Connect(DBNAME,UserName,PassWord,Power,&error);//OCI_DEFAULT
	if(bSuccess == FALSE)
	{
		CString strError; 
		strError = error.GetError();
		AfxMessageBox(_T("connect")+strError);
		return FALSE;
	}
	else
	{
		AfxMessageBox(_T("connect to oracle!"));
	}
	
	m_bConnet = TRUE;

	return TRUE;
}

void CTestdllDlg::OnDestroy() 
{
	CDialog::OnDestroy();

	if(m_bConnet)
	{
		db.Close(&error);
		db.UnInitialize();
		error.UnInitialize();
	}
}

⌨️ 快捷键说明

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