您现在的位置: 天极网 > 开发频道 > NOTES数据库中的未读文档操作
全文

NOTES数据库中的未读文档操作

2001-07-02 11:56作者:代翔出处:yesky责任编辑:方舟

  主要程序如下:

//////////////////////////////////////////////////////
// InitNotes:初始化Notes环境,打开数据库
// szServerName:服务器名
// szDBName:数据库名
// szDirectory:Notes系统目录
// 返回值:1 - 成功
// 0 - 失败


int CNotes::InitNotes(char *szServerName,char *szDBName,char *szDirectory)

{

STATUS status;

char szPathName[MAX_PATH];

char szpInitPara[1][260];



// 数据库路径名=服务器名+“!!”+数据库名

if (strlen(szServerName)==0)

strcpy(szPathName,szDBName);

else {

strcpy(szPathName,szServerName);

strcat(szPathName,"!!");

strcat(szPathName,szDBName);

}

strcpy(szpInitPara[0],szDirectory);

if (!m_bOpened)

NotesInitExtended(1,(char**)szpInitPara); // 初始化Notes环境

status=NSFDbOpen(szPathName,&hDb); // 打开数据库

if (status!=NOERROR) {

m_bOpened=false;

return 0;

}

m_bOpened=true;

return 1;

}



///////////////////////////////////////////////////
// GetUnread:取得指定视图或文件夹中的未读文档数
// szViewName:视图或文件夹名
// 返回值:-1 - 失败
// 其他 - 未读文档数


int CNotes::GetUnread(char *szViewName)

{

STATUS status;

char szUserName[MAX_PATH];



status=SECKFMGetUserName(szUserName); // 得到当前用户名

if (status!=NOERROR) {

m_bGetUnread=false;

return -1;

}

status=NSFDbGetUnreadNoteTable(hDb,szUserName,_
strlen(szUserName),true,&hTable);
// 取得数据库的未读文档列表


if (status!=NOERROR) {

m_bGetUnread=false;

return -1;

}

if (hTable==NULL) {

m_bGetUnread=false;

return -1;

}



status=NSFDbUpdateUnread(hDb,hTable); // 更新未读文档列表

if (status!=NOERROR) {

OSMemFree(hTable);

m_bGetUnread=false;

return -1;

}



status = NIFFindView(hDb, szViewName, &ViewID); file://得到数据库的某视图或文件夹

if (status!=NOERROR) {

OSMemFree(hTable);

m_bGetUnread=false;

return -1;

}



status=NIFOpenCollection(hDb,hDb,ViewID,0,hTable,_
&hCollection,NULL,NULL,NULL,NULL);


if (status!=NOERROR) {

OSMemFree(hTable);

m_bGetUnread=false;

return -1;

}



status =NIFUpdateCollection(hCollection);

if (status!=NOERROR) {

NIFCloseCollection(hCollection);

OSMemFree(hTable);

m_bGetUnread=false;

return -1;

}



COLLECTIONPOSITION CollPosition;

CollPosition.Level = 0;

CollPosition.Tumbler[0] = 0;

HANDLE hBuffer;

DWORD NotesFound;

WORD SignalFlags;

Status=NIFReadEntries(hCollection,&CollPosition,_
NAVIGATE_NEXT,1L,NAVIGATE_NEXT,0xFFFF,READ_MASK_NOTEID,_
&hBuffer,NULL,NULL,&NotesFound,&SignalFlags);


if (status!=NOERROR) {

NIFCloseCollection(hCollection);

OSMemFree(hTable);

m_bGetUnread=false;

return -1;

}

int iViewUnread=0;

NOTEID NoteID;

BOOL fFirst=TRUE;

unsigned int i;

NOTEID* IdList;

if (hBuffer != NULLHANDLE)

{

IdList = (NOTEID far *)OSLockObject(hBuffer);



while(IDScan(hTable, fFirst, &NoteID)) // 依次取得hTable表中的文档号

{

fFirst = FALSE;

for (i=0; i

if (NoteID==IdList[i]) {

iViewUnread++;

break;

}

}

OSUnlockObject(hBuffer);

OSMemFree(hBuffer);

}



NIFCloseCollection(hCollection);

OSMemFree(hTable);

m_bGetUnread=true;

return iViewUnread;

}



//////////////////////////////////////////
// CloseNotes:关闭Notes数据库


void CNotes::CloseNotes()

{

if (m_bOpened)

NSFDbClose(hDb);

m_bOpened=false;

m_bGetUnread=false;

}


共3页。 9 1 2 3 :

软件资讯·软件下载尽在天极软件

相关搜索:
相关文章及软件
关注此文读者还看过
热门关注
特别推荐
网友关注
软件下载
娱乐下载
驱动下载
文章排行
本周
本月
最近更新
关于我们|About us|网站律师|天极服务|电子杂志|RSS订阅|加入我们|网站地图
TMG
Copyright (C) 1999-2009 Chinabyte.com, All Rights Reserved 版权所有 天极网络
商务联系、网站内容、合作建议:010-82657868
版权声明 在线提交意见反馈 渝ICP证B2-20030003号
经营性网站备案信息 网警备案 中国网站排名
天极传媒:天极网|比特网|IT专家网|IT商网|52PK游戏网|IT分众