Программирование на С для SQLite

Программирование на С для SQLite

1
sqlite3 ljdata.sl3 < create.sql

create.sql:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TABLE people (
        id              INTEGER,
        firstname       VARCHAR(20),
        lastname        VARCHAR(20),
        phonenumber     CHAR(10)
);
 
INSERT INTO people (id, firstname, lastname, phonenumber) VALUES
        (1, 'Вася', 'Пупкин', '5055551234');
 
INSERT INTO people (id, firstname, lastname, phonenumber) VALUES
        (2, 'Лена', 'Похер', '5055551234');
 
INSERT INTO people (id, firstname, lastname, phonenumber) VALUES
        (3, 'Серёжа', 'молодец', '5055554321');
1
2
3
4
5
6
7
8
9
10
11
# strings < ljdata.sl3
SQLite format 3
atablepeoplepeople
CREATE TABLE people (
        id              integer,
        firstname       varchar(20),
        lastname        varchar(20),
        phonenumber     char(10)
BarnyRubble5055559999
WilmaFlintstone5055551234
FredFlintstone5055551234
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 #include <stdio.h>
 #include <sqlite3.h>
 
 int main(void) {
   sqlite3 *conn;
   sqlite3_stmt    *res;
   int     error = 0;
   int     rec_count = 0;
   const char*errMSG;
  const char*tail;
 
  error = sqlite3_open("ljdata.sl3", &conn);
  if (error) {
    puts("Нет позможности открыть базу");
    exit(0);
  }
 
  error = sqlite3_exec(conn,"update people set phonenumber=\'5055559999\' where id=3",0, 0, 0);
 
  error = sqlite3_prepare_v2(conn,"select lastname,firstname,phonenumber,id from people order by id",1000, &res, &tail);
 
  if (error != SQLITE_OK) {
    puts("Мы не получили не одной строки!");
    exit(0);
  }
 
  puts("==========================");
 
  while (sqlite3_step(res) == SQLITE_ROW) {
    printf("%s|", sqlite3_column_text(res, 0));
    printf("%s|", sqlite3_column_text(res, 1));
    printf("%s|", sqlite3_column_text(res, 2));
    printf("%u\n", sqlite3_column_int(res, 3));
 
    rec_count++;
  }
 
  puts("==========================");
  printf("Мы получили %d записей.\n", rec_count);
 
  sqlite3_finalize(res);
 
  sqlite3_close(conn);
 
  return 0;
}
gcc ./db.c -o db -lsqlite3
# ./db
==========================
Flintstone|Fred|5055551234|1
Flintstone|Wilma|5055551234|2
Rubble|Barny|5055559999|3
==========================
мы получили 3 записей.

Leave a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Загрузка...
Menu Title