我正在向伯克利数据库中的一个队列写一些固定长度的记录,并获取每个PUT的记录号。因此,例如,如果我在队列中放入4条消息,我将返回1,2,3,4。
否我想根据它的KEY ......从队列中检索一条消息。
所以,如果我尝试:
db_recno_t keyval;
DBT key, data;
memset(&key, 0, sizeof(DBT));
memset(&data, 0, sizeof(DBT));
keyval = 2;
key.data = &keyval;
key.ulen = sizeof(keyval);
ret = q->get(q, NULL, &key, &data, DB_CONSUME);
printf("Key peek = %i\n", keyval);
printf("Data peek = %s\n", data.data);
我一直收到队列中的第一条记录,而不是我用密钥指定的记录(在这种情况下" 2")
我知道队列中的密钥是1,2,3,4所以我想知道我在这做什么蠢事?
感谢您的帮助,非常感谢; - )
林顿
答案 0 :(得分:0)
如果您需要随机访问,请尝试使用DB_QUEUE以外的其他数据库格式。