# operations

> ## Directory

> > eXtremeDB_rt/samples/operations

> ## Description

> > Demonstrates basic insert, read, and update operations

> ## Used API

> > Classname_fieldname_put(), Classname_fieldname_get()

> ## Code snippet

> >         schema.mco

> >         declare database simpledb;

> >         struct B {
> >             signed<1> i1;
> >             signed<2> i2;
> >             signed<4> i4;
> >             float     f;
> >             char<10>  c10;
> >         };

> >         class A {
> >             unsigned<1>   ui1;
> >             unsigned<2>   ui2;
> >             unsigned<4>   ui4;
> >             double        d;
> >             numeric<10,3> num;
> >             decimal<10,3> dec;
> >             B             b;
> >             string        s;

> >             list;
> >         };

> >         ....

> >            rc = mco_trans_start(connection, MCO_READ_WRITE, MCO_TRANS_FOREGROUND, &t);

> >             ....

> >             mco_cursor_t csr; /* Cursor to navigate database contents */

> >             /* Allocate an object */
> >             A_new ( t, &a );

> >             /* Put values to scalar fields */
> >             A_ui1_put ( &a, 1 );
> >             A_ui2_put ( &a, 2 );
> >             A_ui4_put ( &a, 3 );
> >             A_d_put   ( &a, d );

> >             /* Put value to string field using db_name as a value */
> >             A_s_put   ( &a, db_name, (mco_uint2)strlen( db_name ) );

> >             /* Put mco_int8 value to numeric field */
> >             A_num_from_chars( &i8, "1234567");
> >             A_num_put ( &a, i8 );

> >             /* Put char array value to decimal field */
> >             A_dec_to_chars( 987654321, buf, sizeof(buf));
> >             A_dec_put_chars( &a, buf );

> >             /* Get struct handle to write it */
> >             A_b_write_handle ( &a, &b );
> >        /* Put values to the struct fields */
> >             B_i1_put ( &b, 4 );
> >             B_i2_put ( &b, 5 );
> >             B_i4_put ( &b, 6 );
> >             B_f_put  ( &b, f );
> >             B_c10_put( &b, db_name, (mco_uint2)strlen( db_name ) );

> >             rc = mco_trans_commit( t );

> ## What to expect as an output

> >         ./target/bin/operations
> >         Sample 'operations' performs basic insert, read, and update operations.

> >         eXtremeDB/rt runtime version 1.4,  Debug
> >         Copyright (c) 2001-2024 McObject LLC. All Rights Reserved.

> >         	Open : Successful
> >         	Connect : Successful
> >         	Open Transaction : Successful
> >         	Commit Transaction : Successful
> >         	Contents of first record A:
> >         		ui1=1, ui2=2, ui4=3, d=2.200000
> >         		num=1234567000, chars(1234567.000)
> >         		dec=987654321, chars(987654.321)
> >         	string s=(operations), (length = 10)
> >         	Struct b: b.i1=4, b.i2=5, b.i4=6, b.f=1.100000, b.c10=(operations)

> >         	Using A_fixed :
> >         		_a.ui1=1, _a.ui2=2, _a.ui4=3, _a.d=2.200000

> >         	Using B_fixed :
> >         		_b.i1=4, _b.i2=5, _b.i4=6, _b.f=1.100000, _b.c10=(operations)

> >         	Disconnect : Successful
> >         	Close : Successful