请问谁有BTRIEVE调用的SOURCE?(内无) btrieve是什么意思啊?用在什么方面的呢??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 it is a database used in novell network.it is rarely used now,but i have to find some document . 到http://www.programmersheaven.com中去找吧,记得曾经看见过。 呵!找到啦! 给分,给分!#include <stdio.h>#include <string.h>#include "btrv.x"#include "dos.h"#include "string.h"#define MAX_NODE 64typedef struct { char IFreqId; char EFreqId;} GW_FREQ_TABLE;typedef struct { unsigned Node; /* Key 0# */ unsigned StationId; /* Key 1# */ unsigned UserIdZone; /* Key 2# */ char Name[12];} NODE_REC;typedef struct { int Node; int ConnectType; // 0:Roam, 1:BTR, 2:BEW char ManufacturerID[4]; // "BTR","BEW" int TotalFreqs; GW_FREQ_TABLE FreqTab[10]; char reserved[70];} GATE_WAY;typedef struct { int Nodes; GATE_WAY GateWay[MAX_NODE];} GATE_WAY_TABLE;typedef struct { short int nDataBufOffset; short int nDataBufSeg; short int nDataBufLen; short int nPosOffset; short int nPosSeg; short int nFCBOffset; short int nFCBSeg; short int nOPCode; short int nKeyBufOffset; short int nKeyBufSeg; short int nKeyLenNum; short int nStatusOffset; short int nStatusSeg; short int nInterfaceId;}BTRV_INTERFACE;GATE_WAY_TABLE GateWayTable;char _SPSNET_DIR[]="f:\\data\\net";main(){ int stat; int i; char PosBlk[128]; char KeyBuf[80]; int DBufLen; char KBufLen; NODE_REC NodeRec; sprintf(KeyBuf,"%s\\NODE.DBF",_SPSNET_DIR); KBufLen=(char )strlen(KeyBuf); DBufLen=sizeof(NodeRec); if ((stat=BTRV(B_OPEN,(char huge *)PosBlk,(char huge *)&NodeRec,&DBufLen,(char far *)KeyBuf,KBufLen,0))!=0) { printf("fail,stat=%d\n",stat); return(stat); } KBufLen=80; DBufLen=sizeof(NodeRec); if ((stat=BTRV(B_GET_FIRST,(char huge *)PosBlk,(char huge *)&NodeRec,&DBufLen,(char far *)KeyBuf,KBufLen,0))!=0) { printf("get first fail,stat=%d \n",stat); BTRV(B_CLOSE,(char huge *)PosBlk,(char huge *)&NodeRec,&DBufLen,(char far *)KeyBuf,KBufLen,0); printf("after open fail,close return=%d",stat); } else { printf("get first success,return=%d\n",stat); printf("node=%d,stationid=%d,useridzone=%d,name=%s\n",NodeRec.Node,NodeRec.StationId,NodeRec.UserIdZone,NodeRec.Name); printf("get key=%x,size of key=%d\n",KeyBuf,sizeof(KeyBuf)); for(i=0;i<80;i++) { printf("%02x ",KeyBuf[i]); } printf("after get first,close return=%d\n",stat); } while(stat!=9) { printf("now enter the loop part\n"); KBufLen=80; DBufLen=sizeof(NodeRec); if ((stat=BTRV(B_GET_NEXT,(char huge *)PosBlk,(char huge *)&NodeRec,&DBufLen,(char far *)KeyBuf,KBufLen,0))!=0) { printf("get next fail,stat=%d",stat); break; } else { printf("node=%d,stationid=%d,useridzone=%d,name=%s\n",NodeRec.Node,NodeRec.StationId,NodeRec.UserIdZone,NodeRec.Name); } } printf("now ready to close\n"); BTRV(B_CLOSE,(char huge *)PosBlk,(char huge *)&NodeRec,&DBufLen,(char far *)KeyBuf,KBufLen,0); printf("now close,stat=%d\n",stat); return(0);}int BTRV(int OP,char huge *PSBP,char far *DBUF,int *DBUFLEN, char far *KBUF,unsigned char KBUFLEN,unsigned char KEYNUM){ BTRV_INTERFACE interface; interface.nOPCode=OP; printf("dbuflen=%d\n",*DBUFLEN); interface.nDataBufLen=*DBUFLEN; interface.nPosOffset=6; interface.nPosSeg=*PSBP; interface.nFCBOffset=10; interface.nDataBufOffset=0; interface.nInterfaceId=26; interface.nDataBufLen=4; interface.nOPCode=14; interface.nKeyBufOffset=16; interface.nStatusSeg=22; interface.nKeyLenNum=20; interface.nDataBufSeg=*DBUF; interface.nStatusSeg=*KBUF;} 双击.ocx或.dll格式的控件的时候,系统在做什么? Vc6.0里的Project->Setting->Link问题 mfc程序一般用什么方式读写文件? 怎样从一个CString中取出一些字符? 今天买到了MFC Internals的中文版,散分!!! 请问鼠标中间的滑轮的滚动消息是什么? 多线程问题? snmp问题求教,SnmpSetVb函数参数怎么个设置法。 有没有显示Auto CAD文件的东东? Atl 怎么加命名空间 深圳的大虾们能不能帮帮忙--有谁知道/提供有关Topway(天威)的证券数据有线信号解调卡的资料 基于对话框的应用程序,如何通过ODBC连接数据库?
呵!找到啦! 给分,给分!#include <stdio.h>
#include <string.h>
#include "btrv.x"
#include "dos.h"
#include "string.h"#define MAX_NODE 64typedef struct {
char IFreqId;
char EFreqId;
} GW_FREQ_TABLE;typedef struct {
unsigned Node; /* Key 0# */
unsigned StationId; /* Key 1# */
unsigned UserIdZone; /* Key 2# */
char Name[12];
} NODE_REC;
typedef struct {
int Node;
int ConnectType; // 0:Roam, 1:BTR, 2:BEW
char ManufacturerID[4]; // "BTR","BEW"
int TotalFreqs;
GW_FREQ_TABLE FreqTab[10];
char reserved[70];
} GATE_WAY;typedef struct {
int Nodes;
GATE_WAY GateWay[MAX_NODE];
} GATE_WAY_TABLE;
typedef struct {
short int nDataBufOffset;
short int nDataBufSeg;
short int nDataBufLen;
short int nPosOffset;
short int nPosSeg;
short int nFCBOffset;
short int nFCBSeg;
short int nOPCode;
short int nKeyBufOffset;
short int nKeyBufSeg;
short int nKeyLenNum;
short int nStatusOffset;
short int nStatusSeg;
short int nInterfaceId;
}BTRV_INTERFACE;GATE_WAY_TABLE GateWayTable;char _SPSNET_DIR[]="f:\\data\\net";
main()
{
int stat;
int i; char PosBlk[128];
char KeyBuf[80];
int DBufLen;
char KBufLen;
NODE_REC NodeRec; sprintf(KeyBuf,"%s\\NODE.DBF",_SPSNET_DIR);
KBufLen=(char )strlen(KeyBuf);
DBufLen=sizeof(NodeRec);
if ((stat=BTRV(B_OPEN,(char huge *)PosBlk,(char huge *)&NodeRec,&DBufLen,(char far *)KeyBuf,KBufLen,0))!=0)
{
printf("fail,stat=%d\n",stat);
return(stat);
} KBufLen=80;
DBufLen=sizeof(NodeRec); if ((stat=BTRV(B_GET_FIRST,(char huge *)PosBlk,(char huge *)&NodeRec,&DBufLen,(char far *)KeyBuf,KBufLen,0))!=0)
{ printf("get first fail,stat=%d \n",stat);
BTRV(B_CLOSE,(char huge *)PosBlk,(char huge *)&NodeRec,&DBufLen,(char far *)KeyBuf,KBufLen,0);
printf("after open fail,close return=%d",stat);
}
else
{
printf("get first success,return=%d\n",stat);
printf("node=%d,stationid=%d,useridzone=%d,name=%s\n",NodeRec.Node,NodeRec.StationId,NodeRec.UserIdZone,NodeRec.Name);
printf("get key=%x,size of key=%d\n",KeyBuf,sizeof(KeyBuf));
for(i=0;i<80;i++)
{
printf("%02x ",KeyBuf[i]);
}
printf("after get first,close return=%d\n",stat);
} while(stat!=9)
{
printf("now enter the loop part\n");
KBufLen=80;
DBufLen=sizeof(NodeRec);
if ((stat=BTRV(B_GET_NEXT,(char huge *)PosBlk,(char huge *)&NodeRec,&DBufLen,(char far *)KeyBuf,KBufLen,0))!=0)
{
printf("get next fail,stat=%d",stat);
break;
}
else
{
printf("node=%d,stationid=%d,useridzone=%d,name=%s\n",NodeRec.Node,NodeRec.StationId,NodeRec.UserIdZone,NodeRec.Name);
}
}
printf("now ready to close\n");
BTRV(B_CLOSE,(char huge *)PosBlk,(char huge *)&NodeRec,&DBufLen,(char far *)KeyBuf,KBufLen,0);
printf("now close,stat=%d\n",stat); return(0);
}
int BTRV(int OP,char huge *PSBP,char far *DBUF,int *DBUFLEN,
char far *KBUF,unsigned char KBUFLEN,unsigned char KEYNUM)
{
BTRV_INTERFACE interface; interface.nOPCode=OP; printf("dbuflen=%d\n",*DBUFLEN);
interface.nDataBufLen=*DBUFLEN; interface.nPosOffset=6;
interface.nPosSeg=*PSBP;
interface.nFCBOffset=10;
interface.nDataBufOffset=0;
interface.nInterfaceId=26;
interface.nDataBufLen=4;
interface.nOPCode=14;
interface.nKeyBufOffset=16;
interface.nStatusSeg=22;
interface.nKeyLenNum=20;
interface.nDataBufSeg=*DBUF;
interface.nStatusSeg=*KBUF;}