Как назначить целочисленное значение для "key.data" в Беркли БД, используя C - PullRequest
1 голос
/ 25 августа 2011

В последнее время я работаю с Berkeley DB.Я видел примеры, в которых люди использовали «string» в качестве значений для «key.data» при создании базы данных с использованием Berkeley DB.Я хочу присвоить ему целочисленное значение.Как я могу это сделать?Должен ли я создать структуру, в которой есть член int, или есть другой способ?

DBT key, data;
memset(&key, 0, sizeof(key));
memset(&data, 0, sizeof(data));
key.data = "fruit";
key.size = sizeof("fruit");

Поэтому вместо "fruit" выше я хочу назначить целочисленное значение.Мы будем благодарны за любую помощь.

1 Ответ

2 голосов
/ 25 августа 2011

структуры DBT предоставляют пустое * поле, которое вы используете, чтобы указать на ваш данные и другое поле, которое идентифицирует длину данных. Они могут поэтому использоваться для хранения чего-либо от простых примитивных данных до сложные структуры, пока информация, которую вы хотите хранить находится в одном непрерывном блоке памяти.

См. http://download.oracle.com/docs/cd/E17076_02/html/gsg/C/DBEntry.html

Для хранения целых чисел вы должны назначить указатель на int на key.data, например ::

int x = 42;
key.data = &x;
key.size = sizeof(x);
...