亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? db_seq.c

?? 數據庫C語言開發工具包,可以方便地移植到嵌入式系統中
?? C
字號:
/****************************************************************************/
/*                                                                          */
/*                                                                          */
/*      db_seq.c  v1.3  (c) 1987-1990  Ken Harris                           */
/*                                                                          */
/*                                                                          */
/****************************************************************************/
/*                                                                          */
/*      This software is made available on an AS-IS basis. Unrestricted     */
/*      use is granted provided that the copyright notice remains intact.   */
/*      The author makes no warranties expressed or implied.                */
/*                                                                          */
/****************************************************************************/

#include "dblib.h"

/*
 *      db_add_seq  -  Add a record to a sequential file
 */

void db_add_seq(df, user_data)
 DATA_FILE df;
 char *user_data;
{
        FILE_HDR  fh;
        BUFFER   buf;
        char   *rbuf;

        db_error = 0;

        fh  = (FILE_HDR) df->df_fhdr->buf_data;
        buf = df->df_buf;

        db_get_next_avail(df, buf);
        if (db_error) return;

        db_add_blk = buf->buf_cur_blk;
        db_add_rec = buf->buf_rec_inx;

        rbuf = buf->buf_data + (buf->buf_rec_inx - 1) * fh->fh_rec_size;

        memcpy(rbuf+fh->fh_ctl_size, user_data, fh->fh_data_size);

        fh->fh_rec_cnt++;

        db_put_blk(df,df->df_fhdr);
        db_put_blk(df,buf);
}

/*
 *      db_read_first_seq  -  Read First Record in a Sequential File
 */

void db_read_first_seq(df, user_data)
 DATA_FILE df;
 char *user_data;
{
        FILE_HDR fh;
        BUFFER  buf;
        SEQ_REC seq;
        ulong   blk;
        ushort  rec;
        char  *rbuf;

        db_error = 0;

        fh  = (FILE_HDR) df->df_fhdr->buf_data;
        buf = df->df_buf;

        for (blk=1; blk <= fh->fh_last_block; blk++)
        {       db_get_blk(df, blk, buf);
                if (db_error) return;

                rbuf = buf->buf_data;

                for (rec=1; rec <= fh->fh_recs_per_blk; rec++)
                {       seq = (SEQ_REC) rbuf;

                        if (seq->seq_stat == DB_INUSE)
                        {       buf->buf_rec_inx = rec;
                                memcpy(user_data, rbuf+fh->fh_ctl_size,
                                                              fh->fh_data_size);
                                return;
                        }
                        rbuf += fh->fh_rec_size;
                }
        }
        db_error= DB_END_OF_FILE;
}

/*
 *      db_read_next_seq  -  Read Next Record in a Sequential File
 */

void db_read_next_seq(df, user_data)
 DATA_FILE df;
 char *user_data;
{
        FILE_HDR fh;
        BUFFER  buf;
        SEQ_REC seq;
        ulong   blk;
        ushort  rec;
        char  *rbuf;

        db_error = 0;

        fh  = (FILE_HDR) df->df_fhdr->buf_data;
        buf = df->df_buf;

        db_get_blk(df, df->df_prev_blk, buf);
        if (db_error) return;

        buf->buf_rec_inx = df->df_prev_rec + 1;

        rbuf = buf->buf_data + (buf->buf_rec_inx - 1) * fh->fh_rec_size;

        for (rec=buf->buf_rec_inx; rec <= fh->fh_recs_per_blk; rec++)
        {       seq = (SEQ_REC) rbuf;

                if (seq->seq_stat == DB_INUSE)
                {       buf->buf_rec_inx = rec;
                        memcpy(user_data, rbuf+fh->fh_ctl_size, fh->fh_data_size);
                        return;
                }
                rbuf += fh->fh_rec_size;
        }

        for (blk=buf->buf_cur_blk+1; blk <= fh->fh_last_block; blk++)
        {       db_get_blk(df, blk, buf);
                if (db_error) return;

                rbuf = buf->buf_data;

                for (rec=1; rec <= fh->fh_recs_per_blk; rec++)
                {       seq = (SEQ_REC) rbuf;

                        if (seq->seq_stat == DB_INUSE)
                        {       buf->buf_rec_inx = rec;
                                memcpy(user_data, rbuf+fh->fh_ctl_size,
                                                              fh->fh_data_size);
                                return;
                        }
                        rbuf += fh->fh_rec_size;
                }
        }
        db_error= DB_END_OF_FILE;
}

/*
 *	db_read_last_seq  -  Read Last Record in a Sequential File
 */

void db_read_last_seq(df, user_data)
 DATA_FILE df;
 char *user_data;
{
        FILE_HDR fh;
        BUFFER  buf;
        SEQ_REC seq;
        ulong   blk;
        ushort  rec;
        char  *rbuf;

        db_error = 0;

        fh  = (FILE_HDR) df->df_fhdr->buf_data;
        buf = df->df_buf;

	for (blk=fh->fh_last_block; blk >= 1; blk--)
        {       db_get_blk(df, blk, buf);
                if (db_error) return;

		rbuf = buf->buf_data + (fh->fh_recs_per_blk - 1) * fh->fh_rec_size;

		for (rec=fh->fh_recs_per_blk; rec >= 1; rec--)
                {       seq = (SEQ_REC) rbuf;

                        if (seq->seq_stat == DB_INUSE)
                        {       buf->buf_rec_inx = rec;
                                memcpy(user_data, rbuf+fh->fh_ctl_size,
                                                              fh->fh_data_size);
                                return;
                        }
			rbuf -= fh->fh_rec_size;
                }
        }
        db_error= DB_END_OF_FILE;
}

/*
 *	db_read_prev_seq  -  Read Prev Record in a Sequential File
 */

void db_read_prev_seq(df, user_data)
 DATA_FILE df;
 char *user_data;
{
        FILE_HDR fh;
        BUFFER  buf;
        SEQ_REC seq;
        ulong   blk;
        ushort  rec;
        char  *rbuf;

        db_error = 0;

        fh  = (FILE_HDR) df->df_fhdr->buf_data;
        buf = df->df_buf;

        db_get_blk(df, df->df_prev_blk, buf);
        if (db_error) return;

	buf->buf_rec_inx = df->df_prev_rec - 1;

        rbuf = buf->buf_data + (buf->buf_rec_inx - 1) * fh->fh_rec_size;

	for (rec=buf->buf_rec_inx; rec >= 1; rec--)
        {       seq = (SEQ_REC) rbuf;

                if (seq->seq_stat == DB_INUSE)
                {       buf->buf_rec_inx = rec;
                        memcpy(user_data, rbuf+fh->fh_ctl_size, fh->fh_data_size);
                        return;
                }
		rbuf -= fh->fh_rec_size;
        }

	for (blk=buf->buf_cur_blk-1; blk >= 1; blk--)
        {       db_get_blk(df, blk, buf);
                if (db_error) return;

		rbuf = buf->buf_data + (fh->fh_recs_per_blk - 1) * fh->fh_rec_size;

		for (rec=fh->fh_recs_per_blk; rec >= 1; rec--)
                {       seq = (SEQ_REC) rbuf;

                        if (seq->seq_stat == DB_INUSE)
                        {       buf->buf_rec_inx = rec;
                                memcpy(user_data, rbuf+fh->fh_ctl_size,
                                                              fh->fh_data_size);
                                return;
                        }
			rbuf -= fh->fh_rec_size;
                }
        }
        db_error= DB_END_OF_FILE;
}

/*
 *      db_update_seq  -  Update Record in a Sequential File
 */

void db_update_seq(df, user_data)
 DATA_FILE df;
 char *user_data;
{
        FILE_HDR  fh;
        BUFFER   buf;
        SEQ_REC  seq;
        char   *rbuf;

        db_error = 0;

        fh  = (FILE_HDR) df->df_fhdr->buf_data;
        buf = df->df_buf;

        if (buf->buf_cur_blk == 0 || buf->buf_rec_inx == 0)
        {       db_error = DB_NO_CURRENT_REC;
                return;
        }

        rbuf = buf->buf_data + (buf->buf_rec_inx - 1) * fh->fh_rec_size;

        seq = (SEQ_REC) rbuf;

        if (seq->seq_stat != DB_INUSE)
        {       db_error = DB_DELETED_REC;
                return;
        }

        memcpy(rbuf+fh->fh_ctl_size, user_data, fh->fh_data_size);

        db_put_blk(df, buf);
}                           

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99热国产精品| 成人激情小说乱人伦| 亚洲美女淫视频| 亚洲欧美一区二区视频| 中日韩免费视频中文字幕| 国产农村妇女毛片精品久久麻豆| 精品99999| 欧美国产97人人爽人人喊| 中文字幕国产一区| |精品福利一区二区三区| 亚洲精品乱码久久久久久久久 | 国产成人免费视频一区| 精品一区二区三区的国产在线播放| 伦理电影国产精品| 国产真实乱子伦精品视频| 国产成人一级电影| 91网站视频在线观看| 欧洲av一区二区嗯嗯嗯啊| 欧美久久一二区| 欧美一区二区视频在线观看2020| 日韩免费性生活视频播放| 久久无码av三级| 亚洲免费观看高清| 日本午夜精品视频在线观看| 精品一区二区免费看| 不卡一区二区三区四区| 欧美色手机在线观看| 欧美电影免费观看完整版| 国产欧美精品一区| 午夜激情一区二区三区| 国精产品一区一区三区mba视频| 99热这里都是精品| 欧美一区二区三区视频在线| 久久婷婷一区二区三区| 亚洲激情五月婷婷| 精品一区二区在线看| 91蜜桃免费观看视频| 欧美一二三在线| 成人欧美一区二区三区| 日本成人在线不卡视频| 99视频一区二区三区| 欧美一二三区精品| 日韩理论电影院| 国产揄拍国内精品对白| 在线看日本不卡| 国产情人综合久久777777| 亚洲国产成人91porn| 高清久久久久久| 精品国产1区二区| 午夜精品久久久久久久| 成人av网址在线| 精品国产乱码久久久久久图片 | 亚洲欧美日韩人成在线播放| 久久国产婷婷国产香蕉| 欧美性一二三区| 中文字幕中文字幕一区| 久久精品国产一区二区| 欧美久久久久中文字幕| 亚洲乱码精品一二三四区日韩在线 | 久久精品人人做人人爽人人| 午夜成人免费电影| 色婷婷国产精品久久包臀| 欧美激情一区二区三区全黄| 久久精品免费观看| 欧美一区二区免费视频| 亚洲图片欧美综合| 欧美午夜视频网站| 亚洲精品成人精品456| 不卡av电影在线播放| 国产精品色一区二区三区| 激情五月激情综合网| 日韩欧美精品三级| 日本中文字幕一区二区视频| 欧美丝袜第三区| 亚洲bt欧美bt精品| 666欧美在线视频| 日韩成人dvd| 精品国产一二三| 国产精品伊人色| 国产精品免费免费| 色综合激情五月| 亚洲国产欧美在线| 欧美绝品在线观看成人午夜影视| 亚洲成人黄色影院| 日韩视频免费直播| 韩日精品视频一区| 中文字幕不卡在线观看| 99精品欧美一区二区三区综合在线| 最新中文字幕一区二区三区| 色哟哟国产精品| 三级影片在线观看欧美日韩一区二区 | 东方aⅴ免费观看久久av| 日本一区二区动态图| 99精品久久只有精品| 亚洲午夜久久久久久久久电影院| 欧美精品久久久久久久多人混战 | 日韩欧美一二区| 国产99久久久国产精品免费看| 国产精品美女一区二区在线观看| 色婷婷av一区| 精品在线免费观看| 中文字幕一区二区三区不卡 | 粉嫩aⅴ一区二区三区四区五区| 中文字幕免费不卡在线| 欧美体内she精高潮| 国产一区欧美一区| 一色屋精品亚洲香蕉网站| 欧美精品欧美精品系列| 国产精品白丝jk白祙喷水网站| 成人欧美一区二区三区小说| 欧美精品久久久久久久多人混战| 国产精品一区免费视频| 亚洲激情av在线| 欧美精品一区二区三区一线天视频 | 亚洲午夜精品久久久久久久久| 欧美一区二区在线看| 成人av网站在线| 老司机免费视频一区二区三区| 中文字幕二三区不卡| 日韩一级精品视频在线观看| 99热国产精品| 精品一区二区三区不卡| 亚洲va韩国va欧美va| 国产精品视频麻豆| 久久综合久久久久88| 欧美精品视频www在线观看| www..com久久爱| 国产麻豆精品在线观看| 秋霞电影一区二区| 一卡二卡三卡日韩欧美| 国产日韩欧美一区二区三区综合 | 国模套图日韩精品一区二区| 亚洲电影在线播放| 亚洲人成精品久久久久| 国产清纯在线一区二区www| 精品日本一线二线三线不卡| 欧美性一区二区| 色视频一区二区| 91麻豆国产福利精品| 成人av在线播放网站| 国产a久久麻豆| 极品尤物av久久免费看| 免费成人在线视频观看| 天天影视网天天综合色在线播放| 亚洲欧美偷拍三级| 国产精品久久久久天堂| 日本一二三四高清不卡| 国产午夜精品久久久久久久| 亚洲精品一区二区三区在线观看 | 在线视频你懂得一区二区三区| 成人午夜av电影| www.亚洲人| 91麻豆精品在线观看| 99久久夜色精品国产网站| av资源网一区| 91麻豆精品秘密| 在线观看日韩av先锋影音电影院| 99久久婷婷国产综合精品电影| 99re这里只有精品首页| 色婷婷久久99综合精品jk白丝| 91亚洲午夜精品久久久久久| 色中色一区二区| 欧美人成免费网站| 91精品国产综合久久久蜜臀图片| 91精品在线免费| 精品国产一区二区三区不卡| 久久亚洲影视婷婷| 中文字幕国产精品一区二区| 亚洲乱码日产精品bd| 爽好多水快深点欧美视频| 欧美a级一区二区| 国产成人午夜视频| 制服丝袜中文字幕一区| 欧美一级一区二区| 国产清纯白嫩初高生在线观看91| 中文字幕欧美国产| 亚洲国产日韩在线一区模特| 捆绑紧缚一区二区三区视频| 国产成人午夜电影网| 91久久精品网| 精品美女在线播放| 日韩一区在线看| 青娱乐精品视频| 99久久久久久| 日韩午夜在线播放| 国产精品久久久久久久午夜片| 亚洲精品高清在线| 久久99九九99精品| 色综合天天视频在线观看| 91精品国产高清一区二区三区 | 欧美一区二区三区四区久久| 久久婷婷久久一区二区三区| 一区二区三区四区五区视频在线观看| 丝袜亚洲精品中文字幕一区| 国产成人av电影在线| 欧美日本精品一区二区三区| 国产精品女人毛片| 免费观看在线综合色| 色国产综合视频| 国产精品素人一区二区|