File: tut.cc

package info (click to toggle)
animals 201207131226-2.1
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye, buster
  • size: 216 kB
  • sloc: cpp: 1,809; makefile: 36
file content (87 lines) | stat: -rw-r--r-- 1,643 bytes parent folder | download | duplicates (11)
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <sys/types.h>
#include <stdio.h>
#include <db2/db_cxx.h>


#define DATABASE "access.db"

int main(void)
{
  Db *dbp;
  Dbt key, data;
  int ret, t_ret, openBad;
  int getBad, putBad, delBad;
  int result = 0;
  
  // create a dbp

  openBad = Db::open(DATABASE, DB_BTREE, DB_CREATE, 0600, NULL, NULL, &dbp);

  if(! openBad) 
    {
      //      // open (creating if necessary) the file name DATABASE
      //      ret = dbp->open(dbp, DATABASE, NULL, DB_BTREE, DB_CREATE, 0664);
      
      // set key to "fruit"
      key.set_data((void*) "fruit");
      key.set_size(sizeof("fruit"));
      
      // set data to "apple"
      data.set_data((void*) "apple");
      data.set_size(sizeof("apple"));
      
      // try to put it in the database

      putBad = dbp->put(NULL, &key, &data, 0);

      if (! putBad)
	printf("db: %s: key stored.\n", (char*) key.get_data());
      else 
	{
	  printf("DB->put\n");
	  goto err;
	}

      // try to get it back

      getBad = dbp->get(NULL, &key, &data, 0);

      if (! getBad)
	printf
	  (
	    "db: %s: key retrieved: data was %s.\n",
	    (char *)key.get_data(), 
	    (char *)data.get_data()
	  );
      else 
	{
	  printf("DB->get\n");
	  goto err;
	}

      // remove the key

      delBad = dbp->del(NULL, &key, 0);

      if (! delBad)
	printf("db: %s: key was deleted.\n", (char *)key.get_data());
      else 
	{
	  printf("DB->del\n");
	  goto err;
	}
      
    err: 
      t_ret = dbp->close(0);

      if (t_ret != 0 && ret == 0)
	result = t_ret; 
    }
  else
    {
      fprintf(stderr, "db_create: %s\n", "couldn't open");
      result = 1;
    }
  
  return result;
}