dbcreate.cpp

来自「红外线文件传输 这是我“任何地点办公”理念所想到的」· C++ 代码 · 共 57 行

CPP
57
字号
#include <windows.h>
#include <windowsx.h>
#include <aygshell.h>
#include "resource.h"
#include "DbCreate.h"
#include "ErrorReporting.h"

#pragma warning(disable: 4800)  

ErrorReport err;
HANDLE handleDB;
CEGUID m_guid;
CEOID m_oid;
CEOID m_oidRecord;
PCEPROPVAL prgPropVal;


bool CreateDB(LPTSTR _dbPath,LPTSTR _dbName){
		CEDBASEINFO ced;

	bool bResult=CeMountDBVol(&m_guid,_dbPath,OPEN_ALWAYS);
	bResult ? true:false;
	if(!bResult){     //bResult = false;
		MessageBox(NULL, L"mount error!", L"RESULT",MB_OK);		
		return false;
	}
		ZeroMemory(&ced,sizeof(CEDBASEINFO));
		ced.dwSize = sizeof(CEDBASEINFO);
		ced.dwFlags=CEDB_VALIDNAME;
		wcscpy(ced.szDbaseName,_dbName);
		m_oid=CeCreateDatabaseEx(&m_guid,&ced);

		if(m_oid==NULL){
			MessageBox(NULL, L"create error!", L"RESULT",MB_OK);			
			return false;
		}
			handleDB=CeOpenDatabaseEx(&m_guid,&m_oid,_dbName,NULL,0,NULL); //
			if(handleDB==INVALID_HANDLE_VALUE){
			MessageBox(NULL, L"open error!", L"RESULT",MB_OK);
			err.Report();
			return false;
			}

			prgPropVal=new CEPROPVAL[1024];
			ZeroMemory(prgPropVal,sizeof(CEPROPVAL[1024]));
			prgPropVal[0].propid=MAKELONG(CEVT_I2,1);
			prgPropVal[0].val.iVal =0;   //row number is 0,that is, to me, empty record;
			m_oidRecord=CeWriteRecordProps(handleDB,0,1,prgPropVal);

			if(m_oidRecord==0){
				MessageBox(NULL, L"write fail!", L"RESULT",MB_OK);
				return false;
			}else{
				MessageBox(NULL, L"write done!", L"RESULT",MB_OK);
			    return true;
			}
}

⌨️ 快捷键说明

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