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

📄 daosamp1dlg.cpp

📁 控键程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:

int CDaosamp1Dlg::DeleteRecords(CString pTableName)
{
	CDaoTableDef td(m_pDB);
	td.Open(pTableName);
	CDaoFieldInfo fieldInfo;
	int Fields=td.GetFieldCount();
	if(td.IsOpen()) td.Close();

	CStringArray FieldValue;
	FieldValue.SetSize(Fields);
	int Records=m_DBList.GetItemCount();
	int factRecords=0;
	for(int j=0;j<Records;j++)
	{
		if(m_DBList.GetItemState(j,LVIS_SELECTED)==LVIS_SELECTED)
		{
			for(int i=0;i<Fields;i++)
			{
				FieldValue.SetAt(i,m_DBList.GetItemText(j,i));
			}
			if(Delete(pTableName,FieldValue)) factRecords++;
		}
	}
	return factRecords;
	
}

bool CDaosamp1Dlg::Delete(CString pTableName, CStringArray &pFieldValue)
{
	CString pClause="where";
	CDaoTableDef td(m_pDB);
	td.Open(pTableName);

	CDaoFieldInfo fieldInfo;
	int nFieldCount=td.GetFieldCount();
	for(int i=0;i<nFieldCount;i++)
	{
		if(pFieldValue.GetAt(i).IsEmpty()) continue;
		td.GetFieldInfo(i,fieldInfo,AFX_DAO_PRIMARY_INFO);
		if(i==0) pClause+="";
		else pClause+="end";
		pClause+=fieldInfo.m_strName;
		pClause+="=";
		switch(fieldInfo.m_nType)
		{
		case (dbBoolean):
		case (dbByte):
		case (dbInteger):
		case (dbLong):
		case (dbSingle):
		case (dbDouble):
				pClause+=pFieldValue.GetAt(i).GetBuffer(100);
				break;
		case (dbText):
			{
				CString cc=(CString) (pFieldValue.GetAt(i));
				pClause+="\\";
				pClause+=cc;
				pClause+="\\";
				break;
			}
		}
	}
	if(td.IsOpen()) td.Close();
	
	char strSQL[200];
	sprintf(strSQL,"SELECT * From %s %s",pTableName,pClause);
	
	CDaoQueryDef qd(m_pDB);
	qd.Create("",strSQL);
	
	CDaoRecordset rs(m_pDB);
	try
	{
		rs.Open(&qd,dbOpenDynaset,dbInconsistent);
	}
	catch(CDaoException* e)
	{
		DisplayDaoException(e);
		e->Delete();
		return FALSE;
	}
	if(rs.IsEOF()) return TRUE;
	while(!rs.IsEOF())
	{
		rs.Delete();
		rs.MoveNext();
	}
	if(rs.IsOpen()) rs.Close();
	if(qd.IsOpen()) qd.Close();
	return TRUE;
}

void CDaosamp1Dlg::OnMenuitem32773() //新建
{
	// TODO: Add your command handler code here
	CDaoDatabase m_pDB1;
	try{
		m_pDB1.Create("d:\\temp\\mydb.mdb");
	}
	catch(CDaoException * e) {
		DisplayDaoException(e);
		e->Delete();
		return;
	}
	try{
		m_pDB1.Open("d:\\temp\\mydb.mdb");
	}
	catch(CDaoException * e) {
		DisplayDaoException(e);
		e->Delete();
		return;
	}
	if(m_pDB1.IsOpen())
	{
		CDaoTableDef m_NewTable(&m_pDB1);
		try{
			m_NewTable.Create("学生");
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
		try{
			m_NewTable.CreateField("ID",dbLong,dbAutoIncrField);
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
		try{
			m_NewTable.CreateField("Name",dbText,20,dbVariableField);
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
		try{
			m_NewTable.CreateField("Age",dbLong,dbAutoIncrField);
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
		try{
			m_NewTable.CreateField("Address",dbText,40,dbVariableField);
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
		try{
			m_NewTable.Append();
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
//		m_NewTable.Close();
//	}
		CDaoRecordset rs(&m_pDB1);
		try{
			rs.Open(&m_NewTable,dbOpenDynaset,dbAppendOnly|dbInconsistent);
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
		for(long i=0;i<2;i++) {
			rs.AddNew();
			COleVariant tempFieldValue;
			long IDNo=i+1;
			tempFieldValue=COleVariant(IDNo,VT_I4);
			rs.SetFieldValue("ID",tempFieldValue);
			long Age=10+i;
			tempFieldValue=COleVariant(Age,VT_I4);
			rs.SetFieldValue("Age",tempFieldValue);		
			try{
				rs.Update();
			}
			catch(CDaoException * e) {
				DisplayDaoException(e);
				e->Delete();
				return;
			}
		}
		if(rs.IsOpen()) rs.Close();
		m_NewTable.Close();



	}
	if(m_pDB1.IsOpen()) m_pDB1.Close();



}

void CDaosamp1Dlg::OnMenuitem32774() //显示
{
	// TODO: Add your command handler code here
	CDaoDatabase m_pDB1;

	try{
		m_pDB1.Open("d:\\temp\\mydb.mdb");
	}
	catch(CDaoException * e) {
		DisplayDaoException(e);
		e->Delete();
		return;
	}

		CDaoTableDef m_openTable(&m_pDB1);
		try{
			m_openTable.Open("学生");
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}

		CDaoRecordset rs(&m_pDB1);
		try{
			rs.Open(&m_openTable,dbOpenDynaset,dbInconsistent);
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}

		int nFields;
		nFields=m_openTable.GetFieldCount();
		while(!rs.IsEOF())
		{
			COleVariant var;
			for(int i=0;i<nFields;i++)
			{
				var=rs.GetFieldValue(i);
				CString FieldValue=CCrack::strVARIANT(var);
				MessageBox(FieldValue);
			}
			rs.MoveNext();
		}

		if(rs.IsOpen()) rs.Close();
		m_openTable.Close();

	if(m_pDB1.IsOpen()) m_pDB1.Close();
	
}

void CDaosamp1Dlg::OnMenuitem32775() //修改
{
	// TODO: Add your command handler code here
	CDaoDatabase m_pDB1;

	try{
		m_pDB1.Open("d:\\temp\\mydb.mdb");
	}
	catch(CDaoException * e) {
		DisplayDaoException(e);
		e->Delete();
		return;
	}
	if(m_pDB1.IsOpen())
	{
		CDaoTableDef m_openTable(&m_pDB1);
		try{
			m_openTable.Open("学生");
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}

		CDaoRecordset rs(&m_pDB1);
		try{
			rs.Open(&m_openTable,dbOpenDynaset,dbInconsistent);
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
		if(!rs.FindFirst("ID=1")) return;

		COleVariant var;
		CString FieldValue;
		rs.GetFieldValue(1,var);
		FieldValue=CCrack::strVARIANT(var);
		MessageBox(FieldValue);

		var=rs.GetFieldValue(2);
		FieldValue=CCrack::strVARIANT(var);
		MessageBox(FieldValue);

		rs.GetFieldValue("Name",var);
		var=rs.GetFieldValue(1);
		FieldValue=CCrack::strVARIANT(var);
		MessageBox(FieldValue);
		
		var=rs.GetFieldValue("Name");
		FieldValue=CCrack::strVARIANT(var);
		MessageBox(FieldValue);

		rs.Edit();
		COleVariant tempFieldValue;
		long Age=88;
		tempFieldValue=COleVariant(Age,VT_I4);
		rs.SetFieldValue("Age",tempFieldValue);		
		try{
			rs.Update();
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
		if(rs.IsOpen()) rs.Close();
		m_openTable.Close();

	}
	if(m_pDB1.IsOpen()) m_pDB1.Close();
	
}

void CDaosamp1Dlg::OnMenuitem32776() //插入
{
	// TODO: Add your command handler code here
	CDaoDatabase m_pDB1;

	try{
		m_pDB1.Open("d:\\temp\\mydb.mdb");
	}
	catch(CDaoException * e) {
		DisplayDaoException(e);
		e->Delete();
		return;
	}
	if(m_pDB1.IsOpen())
	{
		CDaoTableDef m_openTable(&m_pDB1);
		try{
			m_openTable.Open("学生");
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}

		CDaoRecordset rs(&m_pDB1);
		try{
			rs.Open(&m_openTable,dbOpenDynaset,dbAppendOnly|dbInconsistent);
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
			rs.AddNew();
			COleVariant tempFieldValue;
			long IDNo=13;
			tempFieldValue=COleVariant(IDNo,VT_I4);
			rs.SetFieldValue("ID",tempFieldValue);
			long Age=32;
			tempFieldValue=COleVariant(Age,VT_I4);
			rs.SetFieldValue("Age",tempFieldValue);		
			rs.SetFieldValue("Name","事实上");		
			rs.SetFieldValue("Address","小行星");		
			try{
				rs.Update();
			}
			catch(CDaoException * e) {
				DisplayDaoException(e);
				e->Delete();
				return;
			}
		if(rs.IsOpen()) rs.Close();
		m_openTable.Close();



	}
	if(m_pDB1.IsOpen()) m_pDB1.Close();
	
}

void CDaosamp1Dlg::OnMenuitem32777() //删除记录
{
	// TODO: Add your command handler code here
	CDaoDatabase m_pDB1;

	try{
		m_pDB1.Open("d:\\temp\\mydb.mdb");
	}
	catch(CDaoException * e) {
		DisplayDaoException(e);
		e->Delete();
		return;
	}
	if(m_pDB1.IsOpen())
	{
		CDaoTableDef m_openTable(&m_pDB1);
		try{
			m_openTable.Open("学生");
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}

		CDaoRecordset rs(&m_pDB1);
		try{
			rs.Open(&m_openTable,dbOpenDynaset,dbInconsistent);
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
		
		if(rs.FindFirst("ID=13")) rs.Delete();

		if(rs.IsOpen()) rs.Close();
		m_openTable.Close();



	}
	if(m_pDB1.IsOpen()) m_pDB1.Close();
	
}

void CDaosamp1Dlg::OnMenuitem32778() //删除表
{
	// TODO: Add your command handler code here
	CDaoDatabase m_pDB1;
	try{
		m_pDB1.Open("d:\\temp\\mydb.mdb");
	}
	catch(CDaoException * e) {
		DisplayDaoException(e);
		e->Delete();
		return;
	}
	if(m_pDB1.IsOpen())	m_pDB1.DeleteTableDef("学生");
	if(m_pDB1.IsOpen()) m_pDB1.Close();
	
}

void CDaosamp1Dlg::OnMenuitem32779() //新建表
{
	// TODO: Add your command handler code here
	CDaoDatabase m_pDB1;
	try{
		m_pDB1.Open("d:\\temp\\mydb.mdb");
	}
	catch(CDaoException * e) {
		DisplayDaoException(e);
		e->Delete();
		return;
	}
	if(m_pDB1.IsOpen())
	{
		CDaoTableDef m_NewTable(&m_pDB1);
		try{
			m_NewTable.Create("学生");
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
		try{
			m_NewTable.CreateField("ID",dbLong,dbAutoIncrField);
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
		try{
			m_NewTable.CreateField("Name",dbText,20,dbVariableField);
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
		try{
			m_NewTable.CreateField("Age",dbLong,dbAutoIncrField);
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
		try{
			m_NewTable.CreateField("Address",dbText,40,dbVariableField);
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
		try{
			m_NewTable.Append();
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
//		m_NewTable.Close();
//	}
		CDaoRecordset rs(&m_pDB1);
		try{
			rs.Open(&m_NewTable,dbOpenDynaset,dbAppendOnly|dbInconsistent);
		}
		catch(CDaoException * e) {
			DisplayDaoException(e);
			e->Delete();
			return;
		}
		for(long i=0;i<2;i++) {
			rs.AddNew();
			COleVariant tempFieldValue;
			long IDNo=i+1;
			tempFieldValue=COleVariant(IDNo,VT_I4);
			rs.SetFieldValue("ID",tempFieldValue);
			rs.SetFieldValue("Name","笑嘻嘻");
			long Age=10+i;
			tempFieldValue=COleVariant(Age,VT_I4);
			rs.SetFieldValue("Age",tempFieldValue);		
			try{
				rs.Update();
			}
			catch(CDaoException * e) {
				DisplayDaoException(e);
				e->Delete();
				return;
			}
		}
		if(rs.IsOpen()) rs.Close();
		m_NewTable.Close();



	}
	if(m_pDB1.IsOpen()) m_pDB1.Close();
	
}

⌨️ 快捷键说明

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