数据库表操作与查询示例

在本文中,将探讨如何使用CDBF库来执行数据库表的基本操作,包括创建表结构、导航记录、修改记录以及执行查询和过滤。CDBF库支持多种数据库格式,如FoxPro、Visual FoxPro、dBASEIII至dBASE 5.x、Clipper和HiPer-SIx,同时支持memo字段。

创建/更新表结构

要创建或更新表结构,可以使用以下函数:

  • CreateTable
  • ModifyTable
  • AddField
  • InsertField
  • ModifyField
  • MoveField
  • DeleteField
  • UpdateTable

如果要取消任何待处理的更新,可以调用函数CancelUpdateTable()

以下是一个创建表结构的示例:

try { CDBFTableDef mNewTable; // 开始创建 mNewTable.CreateTable(szFileName); // 添加字段 FIELD_REC FieldRec; memset(&FieldRec, 0, sizeof(FIELD_REC)); memcpy(FieldRec.field_name, szFieldName, 10); FieldRec.field_type = FLD_TYPE_CHARACTER; FieldRec.len_info.char_len = 20; mNewTable.AddField(&FieldRec); // ... // 结束创建 mNewTable.UpdateTable(); } catch (CDBFException* e) { e->ReportError(); e->Delete(); }

导航

支持以下导航函数:

  • Move
  • MoveNext
  • MovePrev
  • MoveFirst
  • MoveLast
  • SetAbsolutePosition

还可以使用以下函数:

  • IsEOF()
  • IsBOF()
  • GetRecordCount()
  • GetAbsolutePosition()

以下是使用导航函数的示例:

try { CDBFRecordset m_Set; m_Set.Open("test.dbf"); while (!m_Set.IsEOF()) { // ... m_Set.MoveNext(); } } catch (CDBFException* e) { e->ReportError(); e->Delete(); }

添加/编辑记录

用于添加、更改记录的函数有:

  • AddNew
  • Edit
  • SetFieldValue
  • Delete
  • Undelete
  • Update

还可以使用以下函数:

  • LockRecord()
  • UnlockRecord()
  • GetFieldValue()

以下是添加或编辑记录的示例:

try { m_Set.Edit(); m_Set.SetFieldValue("Key", varKey); m_Set.SetFieldValue("NAME", varName); m_Set.SetFieldValue("PHONE", varPhone); m_Set.Update(); } catch (CDBFException* e) { e->ReportError(); e->Delete(); }

查找函数

支持以下查找函数:

  • FindFirst
  • FindNext
  • FindLast
  • FindPrev

以下是使用查找函数的示例:

try { BOOL bFind = m_Set.FindFirst("LIKE('*Club*', NAME)"); while (bFind) { // ... bFind = m_Set.FindNext(); } } catch (CDBFException* e) { e->ReportError(); e->Delete(); }

过滤

使用SetFilter函数来设置过滤条件:

try { m_Set.SetFilter("LIKE('*Club*', NAME)"); m_Set.Requery(); // ... } catch (CDBFException* e) { e->ReportError(); e->Delete(); }
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485