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

📄 test.cpp

📁 This a simple database management system. It doesn t use any other code (i.e. ODBC, ADO, etc.) and h
💻 CPP
字号:
#include "test.h"

char* g_szFileName = "D:\\db.tdb";

TDDBColumn	g_colColumns[3] = {	{"intCol", sizeof(int)},
								{"doubleCol", sizeof(double)},
								{"strCol",	30}
							};

TDDBTable	g_tabTableDef = { 3, &g_colColumns[0] };

int main(){
	CTDDatabase dbMain;
	int iRet;
	printf( "Attemping to open database\n" );
	iRet = dbMain.Open( g_szFileName );
	if( iRet != TDDB_OK ){
		if( iRet == TDDBERR_FILE_NOT_FOUND ){
			printf( "File not found. Attemping to create new database\n" );
			iRet = dbMain.CreateNew( g_szFileName, &g_tabTableDef );
			if( iRet != TDDB_OK ){
				printf( "Could not create not database\n" );
			}else{
				printf( "Database created successfully\n" );
				printf( "Attempting to open new database\n" );
				iRet = dbMain.Open( g_szFileName );
				if( iRet == TDDB_OK )
					printf( "New database opened successfully\n" );
				else
					printf( "Failed to open new database\n" );
			}
		} else {
			printf( "Error opening database\n" );
		}	
	}

	if( !dbMain.IsOpen() ){
		getch();
		return 0;
	}

	printf( "Adding 3 new records\n" );

    CTDRecord rec1 = dbMain.CreateRecord();

	int iColVal = 1;
	double dColVal = -3;
	char* strColVal = "String Column Value";
	rec1.SetField("intCol", (void*) &iColVal, sizeof(iColVal));
	rec1.SetField("doubleCol", (void*) &dColVal, sizeof(dColVal));
	rec1.SetField("strCol", (void*) strColVal, (int)strlen(strColVal) + 1);

	if( dbMain.AddRecord( &rec1 ) != TDDB_OK ){
		printf( "Error adding record 1\n" );
		getch();
		return 0;
	}else{
		printf( "Record 1 added\n" );
	}

	iColVal = 2;
	rec1.SetField("intCol", (void*)&iColVal, sizeof(iColVal));
	if( dbMain.AddRecord( &rec1 ) != TDDB_OK ){
		printf( "Error adding record 2\n" );
		getch();
		return 0;
	}else{
		printf( "Record 2 added\n" );
	}

	iColVal = 3;
	rec1.SetField("intCol", (void*)&iColVal, sizeof(iColVal));
	if( dbMain.AddRecord( &rec1 ) != TDDB_OK ){
		printf( "Error adding record 3\n" );
		getch();
		return 0;
	}else{
		printf( "Record 3 added\n" );
	}

	
	dbMain.DeleteRecord( 3 );
	dbMain.DeleteRecord( 4 );
	dbMain.DeleteRecord( 5 );	

	printf("Closing database\n");
	dbMain.Close();
	printf("Opening database again\n");
	iRet = dbMain.Open( g_szFileName );
	if( iRet != TDDB_OK ){
		printf("Could not open database\n");
		getch();
		return 0;
	} else {
		printf("Database opened successfully\n");
	}

	CTDRecord& rec2 = dbMain.CreateRecord();
	unsigned int iRecordCount;
	dbMain.GetValidRecordCount( &iRecordCount );
	printf("printing all %i records:\n", iRecordCount);
	getch();
	for(unsigned int i = 0; i < iRecordCount; i++){
		int iCol;
		double dCol;
		char strCol[30];

		dbMain.GetRecord(&rec2, i);
		rec2.GetField("intCol", &iCol, sizeof(iCol));
		rec2.GetField("doubleCol", &dCol, sizeof(dCol));
		rec2.GetField("strCol", &strCol[0], 30);

		if( rec2.IsValid() )
			printf("Record %i: %i, %f, %s\n", i, iCol, dCol, &strCol[0]);
	}
	printf("Closing database\n");
	dbMain.Close();
	printf("Done.");
	getch();

	return 0;
}

⌨️ 快捷键说明

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