2012-02-23 7 views
1

バークレーDBのQUEUEに固定長のレコードを書き込み、各PUTのレコード番号を取得します。私は4私は戻って1取得していたキューのメッセージ、2、3、4Berkeley DB:QUEUEから特定のキーを取得する方法

を置くのであれば、たとえば、今私はそれが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); 

私はキーが1知っている私は(この場合は「2」で)キーで

を指定する1つ、キュー内の最初のレコードを取り戻すない保ちます、待ち行列に2,3,4と書いてありますので、私がここで何をしているのか不思議です。あなたはランダムアクセスが必要な場合は、ヘルプのための

おかげで、多くのaprreciated ;-)

リントン

答えて

0

はDB_QUEUEよりも他のいくつかのデータベース形式をお試しください。

関連する問題