C program to get records from a database table in SQLite

Here, we are going to write a C program to get records from a database table in SQLite.
By Nidhi Last updated : March 10, 2024

Prerequisites

The following packages need to be installed in the ubuntu machine for Sqlite connectivity using the C program.

sudo apt install sqlite3
sudo apt install gcc
sudo apt install libsqlite3-dev

Problem Solution

In this program, we will get records from the employee table using source code and print all records on the console screen.

Program/Source Code

The source code to get records from a database table in SQLite is given below. The given program is compiled and executed successfully on Ubuntu 20.04.

//C program to get records from a database table in SQLite.

#include <sqlite3.h>
#include <stdio.h>

int main(void)
{
    sqlite3* db_ptr;
    sqlite3_stmt* stmt;
    char* errMesg = 0;

    int ret = 0;

    ret = sqlite3_open("MyDb.db", &db_ptr);

    if (ret != SQLITE_OK) {
        printf("Database opening error\n");
    }

    char* sql_stmt = "SELECT * FROM Employee";

    ret = sqlite3_prepare_v2(db_ptr, sql_stmt, -1, &stmt, 0);

    if (ret != SQLITE_OK) {
        printf("\nUnable to fetch data");
        sqlite3_close(db_ptr);
        return 1;
    }

    printf("Employee records\n");
    while (sqlite3_step(stmt) == SQLITE_ROW) {
        printf("%s %s %s\n", sqlite3_column_text(stmt, 0), sqlite3_column_text(stmt, 1), sqlite3_column_text(stmt, 2));
    }

    sqlite3_finalize(stmt);
    sqlite3_close(db_ptr);

    return 0;
}

Output

$ gcc select.c -o select -lsqlite3 -std=c99
$ ./select
Employee records
101 Amit 15000
102 Arun 20000
103 Anup 22000
104 Ramu 9000

Explanation

In the above program, we included the sqlite3.h header file to uses SQLite related functions. Here, we get records of the employee table in the "MyDb.db" database.

The above function is used to compile the "SELECT" statement.

ret = sqlite3_step(stmt);

The above function is used to execute the specified select statement and get the resulted record.

while(sqlite3_step(stmt)==SQLITE_ROW)
{
    printf("%s %s %s\n", sqlite3_column_text(stmt, 0),
    sqlite3_column_text(stmt, 1),
    sqlite3_column_text(stmt, 2));
}

In the above code, we get records from the employee table one by one and then print employee records on the console screen.

sqlite3_finalize(stmt);
sqlite3_close(db_ptr);

The above functions are used to close database properly.

C SQLite Programs »

Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.