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

📄 mdb.c

📁 嵌入式数据Berkeley DB 4.5.20的应用例程.该例是在at91rm9200下运行,实现对数据库表的创建,数据的存取
💻 C
📖 第 1 页 / 共 3 页
字号:
        else    dbp->err(dbp, db_ret, "DB->put");

        strcat(str1,"chancoty");
             strtmp =(char)((chancoty/10)+48);
        strcat(str1,&strtmp);
             strtmp =(char)((chancoty%10)+48);
        strcat(str1,&strtmp);

        memset(&key, 0, sizeof(key));
        memset(&data, 0, sizeof(data));
        key.data = str1;
        key.size = sizeof("chancotyii");
        data.data = eqchannel.ChannelConnType;
        data.size = sizeof(BYTE);
        if ((db_ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0)
                printf("db: %s: key stored.\n", (char *)key.data);
        else    dbp->err(dbp, db_ret, "DB->put");

        strcat(str1,"chancoid");
             strtmp =(char)((chancoid/10)+48);
        strcat(str1,&strtmp);
             strtmp =(char)((chancoid%10)+48);
        strcat(str1,&strtmp);

        memset(&key, 0, sizeof(key));
        memset(&data, 0, sizeof(data));
        key.data = str1;
        key.size = sizeof("chancoidii");
        data.data = eqchannel.ChannelConnID;
        data.size = sizeof(DWORD);
        if ((db_ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0)
                printf("db: %s: key stored.\n", (char *)key.data);
        else    dbp->err(dbp, db_ret, "DB->put");

}
/*********************************************************************************
  Function:     RouteCount_tableCreate(DB *  )
  Descripton:   create table route count ,set default datas to MDB
  Calls:        1,check_routeinfo(struct RouteInfo *) 
                2, singleRoute_tableCreate(int , DB *)

  Called By:  main()
  Table Accessed:table routeCount,table singleRoute

  Table Updated:
  Input:     -
  Output:    -
  Return:    -
  Others:    -
**********************************************************************************/
void RouteCount_tableCreate()
{
        DB *dbp;
        DBT  key,data;

        int ret;
        struct RouteInfo routeCount;

        int i;

        /*check equip infomations from equip through 485 bus*/
        //check_routeinfo(&routeCount);
        if ((ret = db_create(&dbp, NULL, 0)) != 0) {
        fprintf(stderr, "db_create: %s\n", db_strerror(ret));
        exit (1);
        }
        if ((ret = dbp->open(dbp,NULL,"ROUTEDB", NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
        dbp->err(dbp, ret, "%s", "ROUTEDB");
        exit (1);
        }
        memset(&key, 0, sizeof(key));
        memset(&data, 0, sizeof(data));

        key.data = "inputchannel_count";
        key.size = sizeof("inputchannel_count");
        data.data = routeCount.InputChannelCount;
        data.size = sizeof(WORD);
        if ((ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0)
                printf("db: %s: key stored.\n", (char *)key.data);
        else    dbp->err(dbp, ret, "DB->put");

        key.data = "outputchannel_count";
        key.size = sizeof("outputchannel_count");
        data.data = routeCount.OutputChannelCount;
        data.size = sizeof(WORD);
        if ((ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0)
                printf("db: %s: key stored.\n", (char *)key.data);
        else    dbp->err(dbp, ret, "DB->put");

        for(i=0;i<routeCount.InputChannelCount;i++)
            RouteInfo_tableCreate(i,dbp);
        for(i=0;i<routeCount.OutputChannelCount;i++)
            RouteInfo_tableCreate(i,dbp);
}
/*********************************************************************************
  Function:     RouteInfo_tableCreate(int, DB *  )
  Descripton:   create table Route infomation ,set default datas to MDB
  Calls:
  Called By:    RouteCount_tableCreate()
  Table Accessed:
  Table Updated:
  Input:        route i
  Output:
  Return:
  Others:
**********************************************************************************/
void RouteInfo_tableCreate(int i,DB *dbp)
{
        DB *dbp;
        DBT  key,data;

        int db_ret;
        int t_ret;
        int channo1,matrixno,channo2;

        char str1[8];
        char strtmp;
        struct Single_Route_INFO routeInfo;

        /*check port infomations from equip through 485 bus*/
        //check_route(i,&routeInfo);


        /*open matrix database file which located at /mnt/equp.info*/
        if ((db_ret = db_create(&dbp, NULL, 0)) != 0)
        {
        fprintf(stderr, "db_create: %s\n", db_strerror(db_ret));
        exit (1);
        }
        if ((db_ret = dbp->open(dbp,NULL,"ROUTEDB", NULL, DB_BTREE, DB_CREATE, 0664)) != 0)
        {
        dbp->err(dbp, db_ret, "%s", "ROUTEDB");
        exit (1);
        }

        channo1  = (int) (routeInfo.ChannelNO1);
        matrixno = (int) (routeInfo.MatrixNO);
        channo2  = (int) (routeInfo.ChannelNO2);

        /*card code ASCII encode: eg. 1box,2card,15channel ->keyword as b01c02ch15cc*/
        strcat(str1,"channo1");
             strtmp =(char)((channo1/10)+48);
        strcat(str1,&strtmp);
             strtmp =(char)((channo1%10)+48);
        strcat(str1,&strtmp);

        memset(&key, 0, sizeof(key));
        memset(&data, 0, sizeof(data));
        key.data = str1;
        key.size = sizeof("channo1ii");
        data.data = routeInfo.ChannelNO1;
        data.size = sizeof(WORD);
        if ((db_ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0)
                printf("db: %s: key stored.\n", (char *)key.data);
        else    dbp->err(dbp, db_ret, "DB->put");

        strcat(str1,"matrixno");
             strtmp =(char)((matrixno/10)+48);
        strcat(str1,&strtmp);
             strtmp =(char)((matrixno%10)+48);
        strcat(str1,&strtmp);

        memset(&key, 0, sizeof(key));
        memset(&data, 0, sizeof(data));
        key.data = str1;
        key.size = sizeof("matrixnoii");
        data.data = routeInfo.MatrixNO;
        data.size = sizeof(DWORD);
        if ((db_ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0)
                printf("db: %s: key stored.\n", (char *)key.data);
        else    dbp->err(dbp, db_ret, "DB->put");

        strcat(str1,"channo2");
             strtmp =(char)((channo2/10)+48);
        strcat(str1,&strtmp);
             strtmp =(char)((channo2%10)+48);
        strcat(str1,&strtmp);

        memset(&key, 0, sizeof(key));
        memset(&data, 0, sizeof(data));
        key.data = str1;
        key.size = sizeof("channo2ii");
        data.data = routeInfo.ChannelNO2;
        data.size = sizeof(WORD);
        if ((db_ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0)
                printf("db: %s: key stored.\n", (char *)key.data);
        else    dbp->err(dbp, db_ret, "DB->put");

}


/*********************************************************************************
  Function:     DeviceStatus_tableCreate(DB *  )
  Descripton:   create table device status  ,set default datas to MDB
  Calls:        1,check_device(struct Set_DeviceStatus *) 
                
  Called By:  main()
  Table Accessed:table DeviceStatus
                 
  Table Updated:
  Input:     -
  Output:    -
  Return:    -
  Others:    -
**********************************************************************************/
void DeviceStatus_tableCreate()
{
        DB *dbp;
        DBT  key,data;

        int ret;
        struct Set_DeviceStatus devstatus;

        int i;

        /*check equip infomations from equip through 485 bus*/
        //check_device(&devstatus);
        if ((ret = db_create(&dbp, NULL, 0)) != 0) {
        fprintf(stderr, "db_create: %s\n", db_strerror(ret));
        exit (1);
        }
        if ((ret = dbp->open(dbp,NULL,"DEVICEDB", NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
        dbp->err(dbp, ret, "%s", "DEVICEDB");
        exit (1);
        }
        memset(&key, 0, sizeof(key));
        memset(&data, 0, sizeof(data));

        key.data = "devicetype";
        key.size = sizeof("devicetype");
        data.data = devstatus.DeviceType;
        data.size = sizeof(BYTE);
        if ((ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0)
                printf("db: %s: key stored.\n", (char *)key.data);
        else    dbp->err(dbp, ret, "DB->put");

        key.data = "cardcode";
        key.size = sizeof("cardcode");
        data.data = devstatus.CardCode;
        data.size = sizeof(DWORD);
        if ((ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0)
                printf("db: %s: key stored.\n", (char *)key.data);
        else    dbp->err(dbp, ret, "DB->put");

        key.data = "channelcode";
        key.size = sizeof("channelcode");
        data.data = devstatus.ChannelCode;
        data.size = sizeof(WORD);
        if ((ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0)
                printf("db: %s: key stored.\n", (char *)key.data);
        else    dbp->err(dbp, ret, "DB->put");

        key.data = "portno";
        key.size = sizeof("portno");
        data.data = devstatus.PortNO;
        data.size = sizeof(BYTE);
        if ((ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0)
                printf("db: %s: key stored.\n", (char *)key.data);
        else    dbp->err(dbp, ret, "DB->put");

        key.data = "devicestatus";
        key.size = sizeof("devicestatus");
        data.data = devstatus.DeviceStatus;
        data.size = sizeof(BYTE);
        if ((ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0)
                printf("db: %s: key stored.\n", (char *)key.data);
        else    dbp->err(dbp, ret, "DB->put");

}
void ReportdesIP_tableCreate()
{
        DB *dbp;
        DBT  key,data;

        int ret;
        struct Set_ReportMode reportip;

        int i;

        /*check equip infomations from equip through 485 bus*/
        //check_device(&devstatus);
        if ((ret = db_create(&dbp, NULL, 0)) != 0) {
        fprintf(stderr, "db_create: %s\n", db_strerror(ret));
        exit (1);
        }
        if ((ret = dbp->open(dbp,NULL,"REPORTDB", NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
        dbp->err(dbp, ret, "%s", "REPORTDB");
        exit (1);
        }

        memset(&key, 0, sizeof(key));
        memset(&data, 0, sizeof(data));

        key.data = "serverip";
        key.size = sizeof("serverip");
        data.data = reportip.ServerIP;
        data.size = sizeof(DWORD);
        if ((ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0)
                printf("db: %s: key stored.\n", (char *)key.data);
        else    dbp->err(dbp, ret, "DB->put");
}

⌨️ 快捷键说明

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