Я записываю некоторые записи фиксированной длины в QUEUE в Беркли БД и получаю обратно номер записи после каждого PUT. Так, например, если я помещаю 4 сообщения в очередь, я получаю обратно 1, 2, 3, 4.
НЕТ. Я хотел бы получить сообщение из очереди, основываясь на его КЛЮЧЕ ...
Так что, если я попытаюсь:
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, поэтому мне интересно, какую глупость я здесь делаю?
Спасибо за помощь, очень признателен; -)
Линтон