From 3c9cc7d383df019dacbd80480730723fe4b20b44 Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Sat, 11 Jul 2026 16:01:16 +0200 Subject: Infrastruktur hinzugefügt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/db-test.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/db-test.c (limited to 'src/db-test.c') diff --git a/src/db-test.c b/src/db-test.c new file mode 100644 index 0000000..439ed79 --- /dev/null +++ b/src/db-test.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include +#include + +#define USERNAME_LENGTH 20 +#define FULLNAME_LENGTH 50 + +typedef struct { + char username[USERNAME_LENGTH]; + char fullname[FULLNAME_LENGTH]; + int age; +} user_type; + +int main(void) +{ + DB *db = dbopen("./database.db", O_RDWR | O_CREAT, 0644, DB_BTREE, NULL); // NOLINT + if ( db != NULL ) { + (void) fprintf(stderr, "Datenbank eröffnet...\n"); + +#if INSERT + user_type users[] = { + { "datengott", "Thomas Schmucker", 44 }, + { "user1", "Sabine Müller", 23 }, + { "sql-user", "SQL Database User", -1 } + }; + + for ( int i = 0; i != 3; ++i ) { + DBT data = { .data = &users[i], .size = sizeof(users[i]) }; + DBT key = { .data = &users[i].username, .size = sizeof(users[i].username) }; + + int res = db->put(db, &key, &data, 0); + if ( res == -1 ) { + fprintf(stderr, "failed to insert data!\n"); + } + } +#endif + +#if LOOKUP + { + DBT key = { .data = &users[0].username, .size = sizeof(users[0].username) }; + DBT data; + + int res = db->get(db, &key, &data, 0); + if ( res == 0 ) { + user_type *user = data.data; + printf("Fullname: %s, Age: %d\n", user->fullname, user->age); + } + } +#endif + + { + DBT key; + DBT data; + + int err = db->seq(db, &key, &data, R_FIRST); + while ( !err ) { + user_type *user = data.data; + printf("Fullname: %s, Age: %d\n", user->fullname, user->age); + + err = db->seq(db, &key, &data, R_NEXT); + } + } + + db->close(db); + } + return EXIT_SUCCESS; +} -- cgit v1.3