Chapter 4. Show data of a column

Now we try to show data of a specific column. For this we get a hk_column object. hk_column represents a specific column of a datasource. To display the data of the actual row use the command mycolumn->asstring(). The hk_datasource::column_by_name method allows you to select a column by it's name.

When you enable a datasource the row selector is in row 0 (the first row). To move the row selector use one of the hk_datasource methods:


Example 4-1. Show data of a column

   1 #include <hk_classes.h>
   2 #include <iostream>
   3 int main()
   4 {
   5    hk_drivermanager* mydrivermanager = new hk_drivermanager();
   6    if (mydrivermanager==NULL) {cout <<"error creating mydrivermanager"<<endl;exit(1);}
   7    hk_connection* myconnection = mydrivermanager->new_connection("mysql");
   8    if (myconnection==NULL) {cout <<"error creating myconnection"<<endl;exit(1);}
   9    myconnection->set_host("localhost");
  10    myconnection->set_user("root");
  11    myconnection->set_password("mypasswd");
  12    myconnection->connect();
  13 
  14    hk_database* mydatabase=myconnection->new_database("exampledb");
  15    if (mydatabase==NULL) {cout <<"error creating mydatabase"<<endl;exit(1);}
  16    hk_datasource* mydatasource= mydatabase->new_table("authors");
  17    if (mydatasource==NULL) {cout <<"error creating mydatasource"<<endl;exit(1);}
  18    mydatasource->enable();
  19 
  20    hk_column* mycolumn = mydatasource->column_by_name("name");
  21    if (mycolumn==NULL) {cout <<"error getting column"<<endl;exit(1);}
  22    cout <<"Value of the first row: "<<mycolumn->asstring()<<endl;
  23    mydatasource->goto_next();
  24    cout <<"Value of the second row: "<<mycolumn->asstring()<<endl;
  25 
  26    delete mydrivermanager;
  27 }