📄 daosamp1dlg.cpp
字号:
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 + -