C program to get record from a database table using parameterized SELECT query in SQLite

Here, we are going to write a C program to get record from a database table using parameterized SELECT query 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 using parameterized SELECT query in Linux is given below. The given program is compiled and executed successfully on Ubuntu 20.04.

// C program to get record from a database table using 
//parameterized SELECT query in linux.

#include <sqlite3.h>
#include <stdio.h>
#include <string.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[64];

    strcpy(sql_stmt, "SELECT * FROM Employee where eid=");
    strcat(sql_stmt, "201");

    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
201 Vikas 25000

Explanation

In the above program, we included the sqlite3.h header file to uses SQLite related functions. Here, we get a record of the employee table in the "MyDb.db" database using a specified parameterized SELECT query.

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.