Click here to Skip to main content
Click here to Skip to main content

The alxBase classes for work with DBF files

, 5 Nov 2002
Rate this:
Please Sign up or sign in to vote.
The alxBase classes for work with dbf files.

Introduction

This classes is useful for work with dbf files. The current version supports formats: FoxPro, Visual FoxPro, dBASEIII - dBASE 5.x, Clipper and HiPer-SIx. The memo fields also are supported. CDBFRecordset provides all the useful functions for navigation and modification in table. CDBFCursorset it is possible to use for work only with the selected records. CDBFTableDef it is used for creation and updating of structure of the table.

Create/Update table structure

For creation/updating of structure of the table are available functions:

    <li><code>CreateTable
  • ModifyTable
  • AddField
  • InsertField
  • ModifyField
  • MoveField
  • DeleteField
  • UpdateTable

For cancels any pending updates you may call function CanselUpdateTable().

try
{
	CDBFTableDef mNewTable;
	// begin create
	mNewTable.CreateTable(szFileName);

	// add field
	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);

	// ...

	// end create
	mNewTable.UpdateTable();
}
catch(CDBFException* e)
{
	e->ReportError();
	e->Delete();
}

Navigation

For navigation are supported functions:

    <li><code>Move
  • MoveNext
  • MovePrev
  • MoveFirst
  • MoveLast
  • SetAbsolutePosition

You also may use functions: 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();
}

Append/Edit record

For addition, changes of record are functions:

    <li><code>AddNew
  • Edit
  • SetFieldValue
  • Delete
  • Undelete
  • Update

You also may use functions: 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();
}

Find Functions

For find are supported functions:

    <li><code>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();
}

Parameter of functions: FindFirst(), FindLast(), ... string expression of dBASE language.

Filter

For the filter SetFilter function is used:

    <li><code>SetFilter
try
{
	m_Set.SetFilter("LIKE('*Club*', NAME)");
	m_Set.Requery()
	// ...
}
catch(CDBFException* e)
{
	e->ReportError();
	e->Delete();
}

This function is supported only in classes CDBFCursorset and CDBFMemCursorset.

DBFView Demo

This sample shows some opportunities of library alxBASE.

More information about the product can be found at http://www.alxsoft.narod.ru.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Alexey
Web Developer
Russian Federation Russian Federation
Year of birth - 1974.
Eeducation - was ended by Kaliningrad State University in 1997.
Now I work as the engineer-programmer in Kaliningrad (RUSSIA).

Comments and Discussions

 
QuestionAssertion Failed! PinmemberGoa3-Jul-07 7:36 
AnswerRe: Assertion Failed! PinmemberGoa4-Jul-07 5:18 
QuestionalxBase without mfc Pinmemberjoviens19-Dec-06 5:44 
AnswerRe: alxBase without mfc PinmemberS Mario26-Oct-09 18:08 
Generalfield content PinmemberJoao Araujo21-Jan-06 15:51 
GeneralDelete records Pinmemberpgiustinoni7-Jul-05 6:49 
GeneralGood work But... Pinmemberali TEKE11-Apr-05 3:37 
Your project solved my problem thanx alot. I want to use it under winCE platform but i have alxBASEa3.zip file (the latest) and i think indexing not supported in this source is that true ?, or how can add indexing support to my project, thanx.
GeneralProblem in adding new records PinmemberMr.V.Stephen29-Jan-05 23:04 
GeneralRe: Problem in adding new records PinmemberEndlessWinter10-Feb-05 16:18 
GeneralIts really a very nice project Pinmembervstephen200221-Jan-05 23:37 
GeneralUsing the FindFirst function PinmemberAlex Evans1-Nov-04 11:14 
GeneralRe: Using the FindFirst function PinmemberEndlessWinter10-Feb-05 16:23 
GeneralConverted library for Windos CE PinmemberAlex Evans2-Oct-04 21:53 
GeneralUsing this with Windows CE PinmemberAlex Evans1-Oct-04 20:51 
GenerallockRecord() Pinmemberthangoftin29-Aug-04 18:18 
GeneralUsing the FindFirst function PinmemberAlex Evans1-Nov-04 11:17 
QuestionHow can i insert/update/delete image file? PinmemberMr.Ahn7-Jul-04 1:21 
QuestionHow to pack deleted record Pinmembersimranjeet11-Jun-04 3:08 
AnswerRe: How to pack deleted record PinmemberAlexey14-Jun-04 19:28 
QuestionHow to pack deleted record Pinsusssimranjit11-Jun-04 3:02 
QuestionSample db files? Pinmemberchenhuisheng13-Apr-04 15:21 
GeneralGreat!! - one question Pinmemberbdiamond29-Mar-04 3:30 
GeneralRe: Great!! - one question PinmemberAlexey29-Mar-04 18:33 
Generalcan't write header info correctly Pinmemberbdiamond18-Mar-04 7:10 
GeneralRe: can't write header info correctly PinmemberAlexey18-Mar-04 19:42 
Generale:\temp\alxBASE\SRC\ALXParserFuncDef.cpp(1221): error C2666: &#8220;pow&#8221; : 7 overloads have the similar conversion PinmemberTom_lyd17-Dec-03 20:10 
GeneralRe: e:\temp\alxBASE\SRC\ALXParserFuncDef.cpp(1221): error C2666: ?pow? : 7 overloads have the similar conversion PinmemberDmitry Naumov21-Jan-04 21:14 
GeneralRe: e:\temp\alxBASE\SRC\ALXParserFuncDef.cpp(1221): error C2666: ?pow? : 7 overloads have the similar conversion Pinmemberm0xx22-Jun-04 21:57 
GeneralRe: e:\temp\alxBASE\SRC\ALXParserFuncDef.cpp(1221): error C2666: ?pow? : 7 overloads have the similar conversion Pinmembershaunwerkhoven28-Sep-04 0:15 
GeneralRe: e:\temp\alxBASE\SRC\ALXParserFuncDef.cpp(1221): error C2666: ?pow? : 7 overloads have the similar conversion PinsussGanjoo11-Oct-04 4:00 
GeneralRe: e:\temp\alxBASE\SRC\ALXParserFuncDef.cpp(1221): error C2666: ?pow? : 7 overloads have the similar conversion PinmemberAnthony_Yio17-May-05 23:11 
GeneralHelp, I'm a newbie Pinmemberarktow6-Nov-03 8:06 
GeneralRe: Help, I'm a newbie PinmemberAlexey9-Nov-03 19:53 
GeneralAssertion Failed! Pinmemberdade8888817-Oct-03 0:20 
GeneralRe: Assertion Failed! PinmemberAlexey17-Oct-03 3:02 
GeneralVC60.pdb Pinmemberdade8888816-Oct-03 22:01 
GeneralRe: VC60.pdb PinmemberAlexey16-Oct-03 23:36 
GeneralRe: VC60.pdb PinmemberKarstenK17-Oct-03 0:18 
Generaldata not updated in DBFMemCursor Pinsussliyuncheng5-Oct-03 17:23 
GeneralRe: data not updated in DBFMemCursor Pinsussliyuncheng5-Oct-03 17:27 
GeneralSource for other apps - DBFNavigator, NTXFiew, etc. Pinmemberdrpc26-Jul-03 1:46 
GeneralRe: Source for other apps - DBFNavigator, NTXFiew, etc. PinsussAnonymous27-Jul-03 19:49 
GeneralUpdating table structure of 1 file from another. PinsussAnonymous21-Jul-03 7:30 
GeneralRe: Updating table structure of 1 file from another. PinmemberAlexey21-Jul-03 19:15 
GeneralRe: Updating table structure of 1 file from another. PinsussAnonymous23-Jul-03 9:40 
GeneralOracle Export to DBF PinmemberHamed Abnagar19-Jul-03 17:12 
QuestionHow to create a datetime field and what format is the datetime for input? Pinmemberliyuncheng17-Jul-03 16:40 
AnswerRe: How to create a datetime field and what format is the datetime for input? PinmemberAlexey17-Jul-03 19:15 
QuestionHow to pack deleted record? Pinmemberliyuncheng14-Jul-03 16:21 
AnswerRe: How to pack deleted record? PinmemberAlexey14-Jul-03 19:22 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web02 | 2.8.140721.1 | Last Updated 6 Nov 2002
Article Copyright 2002 by Alexey
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid