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

📄 bdetestdlg.cpp

📁 在Visual C++访问Borland数据库引擎(BDE)
💻 CPP
📖 第 1 页 / 共 2 页
字号:
					} // end if Not in edit mode
				} // end if DB is active
			} // end if table is not empty
		}
		catch (CBdeException* e)
		{
			e->ReportError();
			e->Delete();	
		}
		UpdateData(FALSE);
	}
}


// Connect to paradox tables
void CBdeTestDlg::OnConnect() 
{
	try
	{
		if (m_pBdeDb->OpenDatabase(m_strAppPath + "Test.DB"))
			AfxMessageBox("Opened Database");
	}
	catch (CBdeException* e)
	{
		e->ReportError();
		e->Delete();	
		return;
	}
	m_bParadox = TRUE;
	UpdateDialogData(FALSE);
	EnableControls();
}


// Connect to dBase tables
void CBdeTestDlg::OnConnectDbase() 
{
	try
	{
		if (m_pBdeDb->OpenDatabase(m_strAppPath + "Test.DBF"))
			AfxMessageBox("Opened Database");
	}
	catch (CBdeException* e)
	{
		e->ReportError();
		e->Delete();	
		return;
	}
	m_bParadox = FALSE;
	UpdateDialogData(FALSE);
	EnableControls();
}


void CBdeTestDlg::OnDisconnect() 
{
	if (m_pBdeDb->CloseDatabase())
		AfxMessageBox("Closed Database");
	EnableControls();
}

void CBdeTestDlg::OnFirst() 
{
	try
	{
		m_pBdeDb->MoveFirst();
	}
	catch (CBdeException* e)
	{
		e->ReportError();
		e->Delete();	
		return;
	}
	UpdateDialogData(FALSE);
	EnableControls();
}

void CBdeTestDlg::OnPrior() 
{
	try
	{
		m_pBdeDb->MovePrior();
	}
	catch (CBdeException* e)
	{
		e->ReportError();
		e->Delete();	
		return;
	}
	UpdateDialogData(FALSE);
	EnableControls();
}

void CBdeTestDlg::OnNext() 
{
	try
	{
		m_pBdeDb->MoveNext();
	}
	catch (CBdeException* e)
	{
		e->ReportError();
		e->Delete();	
		return;
	}
	UpdateDialogData(FALSE);
	EnableControls();
}

void CBdeTestDlg::OnLast() 
{
	try
	{
		m_pBdeDb->MoveLast();
	}
	catch (CBdeException* e)
	{
		e->ReportError();
		e->Delete();	
		return;
	}
	UpdateDialogData(FALSE);
	EnableControls();
}

void CBdeTestDlg::OnDelete() 
{
	try
	{
		m_pBdeDb->DeleteRecord();
	}
	catch (CBdeException* e)
	{
		e->ReportError();
		e->Delete();	
		return;
	}
	UpdateDialogData(FALSE);
	EnableControls();
}


//////////////////////////////////////////////////////////////////////////////
//  Editing buttons commands


void CBdeTestDlg::OnCancelEdit() 
{
	try
	{
		m_pBdeDb->Cancel();
	}
	catch (CBdeException* e)
	{
		e->ReportError();
		e->Delete();	
	}
	UpdateDialogData(FALSE);
	EnableControls();
}


void CBdeTestDlg::OnEdit() 
{
	try
	{
		m_pBdeDb->Edit();
	}
	catch (CBdeException* e)
	{
		e->ReportError();
		e->Delete();	
	}
	EnableControls();
}

void CBdeTestDlg::OnAppend() 
{
	try
	{
		m_pBdeDb->Append();
	}
	catch (CBdeException* e)
	{
		e->ReportError();
		e->Delete();	
	}
	m_strBcd = _T("");
	m_strChar = _T("");
	m_strCurrency = _T("");
	m_strDate = _T("");
	m_strFloat = _T("");
	m_strLogical = _T("");
	m_strLong = _T("");
	m_strMemo = _T("");
	m_strShort = _T("");
	m_strTime = _T("");
	m_strTimeStamp = _T("");
	UpdateDialogData(FALSE);
	EnableControls();
}


void CBdeTestDlg::OnInsert() 
{
	try
	{
		m_pBdeDb->Insert();
	}
	catch (CBdeException* e)
	{
		e->ReportError();
		e->Delete();	
		return;
	}
	m_strBcd = _T("");
	m_strChar = _T("");
	m_strCurrency = _T("");
	m_strDate = _T("");
	m_strFloat = _T("");
	m_strLogical = _T("");
	m_strLong = _T("");
	m_strMemo = _T("");
	m_strShort = _T("");
	m_strTime = _T("");
	m_strTimeStamp = _T("");
	UpdateDialogData(FALSE);
	EnableControls();
}

void CBdeTestDlg::OnPost() 
{
	UpdateDialogData(TRUE);	
	EnableControls();
}


void CBdeTestDlg::EnableControls()
{
	GetDlgItem(IDB_TEST_CONNECTION)->EnableWindow(CBdeDatabase::EnableOpen(m_pBdeDb));
	GetDlgItem(IDB_EDIT)->EnableWindow(CBdeDatabase::EnableEdit(m_pBdeDb));
	GetDlgItem(IDB_APPEND)->EnableWindow(CBdeDatabase::EnableAppend(m_pBdeDb));
	GetDlgItem(IDB_CONNECT)->EnableWindow(CBdeDatabase::EnableOpen(m_pBdeDb));
	GetDlgItem(IDB_DISCONNECT)->EnableWindow(CBdeDatabase::EnableClose(m_pBdeDb));
	GetDlgItem(IDB_FIRST)->EnableWindow(CBdeDatabase::EnableFirst(m_pBdeDb));
	GetDlgItem(IDB_PRIOR)->EnableWindow(CBdeDatabase::EnablePrior(m_pBdeDb));
	GetDlgItem(IDB_NEXT)->EnableWindow(CBdeDatabase::EnableNext(m_pBdeDb));
	GetDlgItem(IDB_LAST)->EnableWindow(CBdeDatabase::EnableLast(m_pBdeDb));
	GetDlgItem(IDB_DELETE)->EnableWindow(CBdeDatabase::EnableDelete(m_pBdeDb));
	GetDlgItem(IDB_INSERT)->EnableWindow(CBdeDatabase::EnableInsert(m_pBdeDb));
	GetDlgItem(IDB_POST)->EnableWindow(CBdeDatabase::EnablePost(m_pBdeDb));
	GetDlgItem(IDB_SET_TYPE_VALUES)->EnableWindow(CBdeDatabase::EnablePost(m_pBdeDb));
	GetDlgItem(IDB_SET_BLANK)->EnableWindow(CBdeDatabase::EnablePost(m_pBdeDb));
	GetDlgItem(IDB_CANCEL_EDIT)->EnableWindow(CBdeDatabase::EnableCancel(m_pBdeDb));


	((CEdit*)GetDlgItem(ET_BCD))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(ET_CHAR))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(ET_CURRENCY))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(ET_DATE))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(ET_FLOAT))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(ET_LOGICAL))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(ET_LONG))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(ET_MEMO))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(ET_SHORT))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(ET_TIME))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(ET_TIMESTAMP))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));

	((CEdit*)GetDlgItem(ET_BCD_TYPE))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(ET_CURRENCY_TYPE))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(ET_DATE_TYPE))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(ET_FLOAT_TYPE))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(CB_LOGICAL_TYPE))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(ET_LONG_TYPE))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(ET_SHORT_TYPE))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(ET_TIME_TYPE))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));
	((CEdit*)GetDlgItem(ET_TIMESTAMP_TYPE))->SetReadOnly(!CBdeDatabase::EnablePost(m_pBdeDb));

}


void CBdeTestDlg::OnSetBlank() 
{
	try
	{
		m_pBdeDb->SetFieldAsString(1, "blank", TRUE);
		m_pBdeDb->SetFieldAsInteger(2, 100, TRUE);
		m_pBdeDb->SetFieldAsInteger(3, 100, TRUE);
		m_pBdeDb->SetFieldAsFloat(4, 3.14158, TRUE);
		m_pBdeDb->SetFieldAsFloat(5, 3.14158, TRUE);
		m_pBdeDb->SetFieldAsBoolean(6, TRUE, TRUE);
		m_pBdeDb->SetFieldAsDate(7, COleDateTime::GetCurrentTime(), TRUE);
		m_pBdeDb->SetFieldAsDate(8, COleDateTime::GetCurrentTime(), TRUE);
		m_pBdeDb->SetFieldAsDate(9, COleDateTime::GetCurrentTime(), TRUE);
		m_pBdeDb->SetFieldAsString(10, "blank memo", TRUE);
		m_pBdeDb->Post();
	}
	catch (CBdeException* e)
	{
		e->ReportError();
		e->Delete();	
	}
	EnableControls();
	UpdateDialogData(FALSE);
}


void CBdeTestDlg::OnSetTypeValues() 
{
	try
	{
		m_pBdeDb->SetFieldAsString(1, "blank2", FALSE);
		m_pBdeDb->SetFieldAsInteger(2, 100, FALSE);
		m_pBdeDb->SetFieldAsInteger(3, 100, FALSE);
		m_pBdeDb->SetFieldAsFloat(4, 3.14158, FALSE);
		m_pBdeDb->SetFieldAsFloat(5, 3.14158, FALSE);
		m_pBdeDb->SetFieldAsBoolean(6, TRUE, FALSE);
		m_pBdeDb->SetFieldAsDate(7, COleDateTime::GetCurrentTime(), FALSE);
		m_pBdeDb->SetFieldAsDate(8, COleDateTime::GetCurrentTime(), FALSE);
		m_pBdeDb->SetFieldAsDate(9, COleDateTime::GetCurrentTime(), FALSE);
		m_pBdeDb->SetFieldAsString(10, "blank memo", FALSE);
		m_pBdeDb->Post();
	}
	catch (CBdeException* e)
	{
		e->ReportError();
		e->Delete();	
	}
	EnableControls();
	UpdateDialogData(FALSE);
}


⌨️ 快捷键说明

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