C Veri Tabanına Veri Ekleme Listelem

C Veri Tabanına Veri Ekleme ve Listeleme

Veri tabanları, verileri yapılandırılmış bir şekilde saklamak ve yönetmek için kullanılan temel araçlardır. C programlama dili, veritabanlarıyla etkileşime geçmek için çeşitli işlevler ve kitaplıklar sağlar. Bu makale, C’de veri tabanına veri ekleme ve listeleme işlemlerini ayrıntılı olarak inceleyecektir.

Veri Tabanı Bağlantısı

Veri tabanına erişmek için öncelikle bir bağlantı kurmanız gerekir. C’de, sqlite3 kütüphanesi veri tabanı bağlantıları için yaygın olarak kullanılır. sqlite3_open() işlevi, veritabanı dosyasını açar ve bir bağlantı döndürür.

“`c

include

int main() {
sqlite3 *db;
int rc = sqlite3_open(“mydb.db”, &db);
if (rc != SQLITE_OK) {
fprintf(stderr, “Veritabanı açılamadı: %s\n”, sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
// …
sqlite3_close(db);
return 0;
}
“`

Veri Ekleme

Veri tabanına veri eklemek için sqlite3_exec() işlevi kullanılır. Bu işlev, bir SQL ifadesini yürütür ve etkilenen satır sayısını döndürür.

c
int sqlite3_exec(sqlite3 *db, const char *sql, int (*callback)(void *, int, char **, char **), void *arg, char **errmsg);

sql parametresi, yürütülecek SQL ifadesidir. callback parametresi, her satır için çağrılacak bir geri arama işlevidir. arg parametresi, geri arama işlevine geçirilecek bir kullanıcı verisidir. errmsg parametresi, bir hata oluşursa bir hata mesajı döndürür.

Bir satır eklemek için aşağıdaki SQL ifadesini kullanabilirsiniz:

sql
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);

Örneğin, people adlı bir tabloya bir satır eklemek için aşağıdaki kodu kullanabilirsiniz:

c
char *sql = "INSERT INTO people (name, age) VALUES ('John Doe', 30);";
int rc = sqlite3_exec(db, sql, NULL, NULL, NULL);
if (rc != SQLITE_OK) {
fprintf(stderr, "Veri eklenemedi: %s\n", sqlite3_errmsg(db));
}

Veri Listeleme

Veri tabanından veri listelemek için sqlite3_prepare_v2() ve sqlite3_step() işlevleri kullanılır. sqlite3_prepare_v2() işlevi, bir SQL ifadesini derler ve bir ifade nesnesi döndürür. sqlite3_step() işlevi, ifade nesnesindeki bir sonraki satırı alır ve etkilenen satır sayısını döndürür.

c
int sqlite3_prepare_v2(sqlite3 *db, const char *sql, int nbytes, sqlite3_stmt **stmt, const char **pzTail);
int sqlite3_step(sqlite3_stmt *stmt);

sql parametresi, derlenecek SQL ifadesidir. nbytes parametresi, SQL ifadesinin uzunluğudur. stmt parametresi, derlenmiş ifade nesnesidir. pzTail parametresi, SQL ifadesinin işlenmemiş kısmını döndürür.

Tüm satırları listelemek için aşağıdaki SQL ifadesini kullanabilirsiniz:

sql
SELECT * FROM table_name;

Örneğin, people adlı tablodan tüm satırları listelemek için aşağıdaki kodu kullanabilirsiniz:

c
char *sql = "SELECT * FROM people;";
sqlite3_stmt *stmt;
int rc = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
if (rc != SQLITE_OK) {
fprintf(stderr, "İfade derlenemedi: %s\n", sqlite3_errmsg(db));
}
while ((rc = sqlite3_step(stmt)) == SQLITE_ROW) {
int id = sqlite3_column_int(stmt, 0);
char *name = (char *)sqlite3_column_text(stmt, 1);
int age = sqlite3_column_int(stmt, 2);
printf("ID: %d, İsim: %s, Yaş: %d\n", id, name, age);
}
sqlite3_finalize(stmt);

Faydalı Siteler ve Dosyalar


Yayımlandı

kategorisi