Test.db is a test database that I created with \"touch test.db\" C/C++ programmi
ID: 3803103 • Letter: T
Question
Test.db is a test database that I created with "touch test.db"
C/C++ programming with sqlite3 (with Week05 Activity - sqlite3 example) Project Description Design and implement C/C++ program (test6.c) to do the following tasks with test db (which you have worked for Week05 Activity), to compile with a Makefile, and to run the program to show each task done. Your program does: (1) add a record (shown below) to test.db, (2) get all the records using select, (3) print the records from (2) to the console, with a heading (e.g., "-----Task1-----") ID = 20 NAME = Luke AGE = 20 ADDRESS = Dallas SALARY = 100000.0 ID = 21 NAME = Matthew AGE = 21 ADDRESS = Piano SALARY = 80000.0 Your C/C++ program (interfacing with sqlite3 in Part1 test.db) will do: update the record (of ID = 20 inserted in Task2) so that the name updated will be "John", get all the records using select and print all the records from select, to the console with a heading for Task2. Provide a Makefile file to compile your program.Explanation / Answer
Assumptions :
1) You already have "test.db" created into your sqlite3.
2) "COMPANY" table has been created into test.db with below columns :
"ID INT PRIMARY KEY NOT NULL,"
"NAME TEXT NOT NULL,"
"AGE INT NOT NULL,"
"ADDRESS CHAR(50),"
"SALARY REAL );";
3) If you have NOT created above table into your test.db, then please create using below sql :
CREATE TABLE COMPANY("
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL );
------------------------------ANSWERS-------------------------------------------------
1)
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
static int callback(void *NotUsed, int argc, char **argv, char **azColName){
int i;
for(i=0; i<argc; i++){
printf("%s = %s ", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf(" ");
return 0;
}
int main(int argc, char* argv[])
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
char *sql;
/* Open database */
rc = sqlite3_open("test.db", &db);
if( rc ){
fprintf(stderr, "Can't open database: %s ", sqlite3_errmsg(db));
return(0);
}else{
fprintf(stderr, "Opened database successfully ");
}
/* Create SQL statement */
sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "
"VALUES (20, 'Luke', 20 'Dallas', 100000.0 ); "
"INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "
"VALUES (21, 'Mathew', 21, 'Plano', 80000.0 ); "
"INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY);";
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
if( rc != SQLITE_OK ){
fprintf(stderr, "SQL error: %s ", zErrMsg);
sqlite3_free(zErrMsg);
}else{
fprintf(stdout, "Records created successfully ");
}
sqlite3_close(db);
return 0;
}
--------------------------------------------------------------------------------------------------
2)
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
static int callback(void *data, int argc, char **argv, char **azColName){
int i;
fprintf(stderr, "%s: ", (const char*)data);
for(i=0; i<argc; i++){
printf("%s = %s ", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf(" ");
return 0;
}
int main(int argc, char* argv[])
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
char *sql;
const char* data = "Callback function called";
/* Open database */
rc = sqlite3_open("test.db", &db);
if( rc ){
fprintf(stderr, "Can't open database: %s ", sqlite3_errmsg(db));
return(0);
}else{
fprintf(stderr, "Opened database successfully ");
}
/* Create SQL statement */
sql = "SELECT * from COMPANY";
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
if( rc != SQLITE_OK ){
fprintf(stderr, "SQL error: %s ", zErrMsg);
sqlite3_free(zErrMsg);
}else{
fprintf(stdout, "Operation done successfully ");
}
sqlite3_close(db);
return 0;
}
-------------------------------------------------------------------------------------------
3)
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
static int callback(void *data, int argc, char **argv, char **azColName){
int i;
fprintf(stderr, "%s: ", (const char*)data);
for(i=0; i<argc; i++){
printf("%s = %s ", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf(" ");
return 0;
}
int main(int argc, char* argv[])
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
char *sql;
const char* data = "Callback function called";
/* Open database */
rc = sqlite3_open("test.db", &db);
if( rc ){
fprintf(stderr, "Can't open database: %s ", sqlite3_errmsg(db));
return(0);
}else{
printf("---------------------Task1--------------------- ");
fprintf(stderr, "Opened database successfully ");
}
/* Create SQL statement */
sql = "SELECT * from COMPANY";
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
if( rc != SQLITE_OK ){
fprintf(stderr, "SQL error: %s ", zErrMsg);
sqlite3_free(zErrMsg);
}else{
fprintf(stdout, "Operation done successfully ");
}
sqlite3_close(db);
return 0;
}
-------------------------------------------------------------------------------------------------
Task 2->1)
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
static int callback(void *data, int argc, char **argv, char **azColName){
int i;
fprintf(stderr, "%s: ", (const char*)data);
for(i=0; i<argc; i++){
printf("%s = %s ", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf(" ");
return 0;
}
int main(int argc, char* argv[])
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
char *sql;
const char* data = "Callback function called";
/* Open database */
rc = sqlite3_open("test.db", &db);
if( rc ){
fprintf(stderr, "Can't open database: %s ", sqlite3_errmsg(db));
return(0);
}else{
fprintf(stderr, "Opened database successfully ");
}
/* Create merged SQL statement */
sql = "UPDATE COMPANY set NAME = 'John' where ID=20; "
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
if( rc != SQLITE_OK ){
fprintf(stderr, "SQL error: %s ", zErrMsg);
sqlite3_free(zErrMsg);
}else{
fprintf(stdout, "Operation done successfully ");
}
sqlite3_close(db);
return 0;
}
-----------------------------------------------------------------------------------------------
Task 2->2)
3)
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
static int callback(void *data, int argc, char **argv, char **azColName){
int i;
fprintf(stderr, "%s: ", (const char*)data);
for(i=0; i<argc; i++){
printf("%s = %s ", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf(" ");
return 0;
}
int main(int argc, char* argv[])
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
char *sql;
const char* data = "Callback function called";
/* Open database */
rc = sqlite3_open("test.db", &db);
if( rc ){
fprintf(stderr, "Can't open database: %s ", sqlite3_errmsg(db));
return(0);
}else{
printf("---------------------Task2--------------------- ");
fprintf(stderr, "Opened database successfully ");
}
/* Create SQL statement */
sql = "SELECT * from COMPANY";
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
if( rc != SQLITE_OK ){
fprintf(stderr, "SQL error: %s ", zErrMsg);
sqlite3_free(zErrMsg);
}else{
fprintf(stdout, "Operation done successfully ");
}
sqlite3_close(db);
return 0;
}
Task 3) We cannot provide attachment to you. I would request you to create this file of your own.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.