Use your time well

Welcome to my blog, I hope you will enjoy and you never deny to come back to visit again.
"USE YOUR FINGER TO CODE AND YOUR BRAIN TO THINK"


Search This Blog

Tuesday, July 15, 2014

How to configure C++ with MySQL database in Visual C++

Things to consider:

  • Microsoft Visual C++ 2008
  • MySQL Connector odbc 
  • Wamp or Xamp must be started and make sure that MySQL is started too.
  • otl from http://otl.sourceforge.net/
Download and Install MySQL Connector odbc from http://dev.mysql.com/downloads/connector/odbc/
Open your control panel->Administrative Tools->Data Sources ODBC

Under User DSN Click Add


choose MySQL ODBC you want to use and then click finish


Then

Download otlv4_h2.zip from http://otl.sourceforge.net/

Extract otlv4_h2.zip to C:/ directory

Open your Microsoft Visual C++ 2008, and go to File->New Project->Visual C++->Win32->Win32 Console Application. press ok after writing Name of the project as tatiana



Double click tatiana.cpp from source files and copy and paste the following code to it.

// tatiana.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


#include <iostream>
using namespace std;

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define OTL_ODBC_MYSQL // Compile OTL 4.0/ODBC/MySQL
// #define OTL_ODBC_UNIX // uncomment this line if UnixODBC is used
#include <otlv4.h> // include the OTL 4.0 header file

otl_connect db; // connect object

void insert()
// insert rows into table
 otl_stream o(1, // buffer size should be == 1 always on INSERT
              "insert into test_tab values(:f1<int>,:f2<char[31]>)", 
                 // SQL statement
              db // connect object
             );
 char tmp[32];

 for(int i=1;i<=100;++i){
  sprintf(tmp,"Name%d",i);
  o<<i<<tmp;
 }
}
void update(const int af1)
// insert rows into table
 otl_stream o(1, // buffer size should be == 1 always on UPDATE
              "UPDATE test_tab "
              "   SET f2=:f2<char[31]> "
              " WHERE f1=:f1<int>", 
                 // UPDATE statement
              db // connect object
             );
 o<<"Name changed"<<af1;
 o<<otl_null()<<af1+1; // set f2 to NULL

}
void select(const int af1)
 // MyODBC does not allow any input bind variables in the WHERE clause
 // in a SELECT statement.
 // Therefore, the SELECT statement has to be generated literally.
 char stmbuf[1024];
 sprintf(stmbuf,
         "select * from test_tab where f1>=%d and f1<=%d*2",
         af1,
         af1
        );
 otl_stream i(50, // buffer size may be > 1
              stmbuf, // SELECT statement
              db // connect object
             ); 
   // create select stream

 int f1;
 char f2[31];

 while(!i.eof()){ // while not end-of-data
  i>>f1;
  cout<<"f1="<<f1<<", f2=";
  i>>f2;
  if(i.is_null())
   cout<<"NULL";
  else
   cout<<f2;
  cout<<endl;
 }

}

int main()
{
 otl_connect::otl_initialize(); // initialize ODBC environment
 try{

  db.rlogon("UID=root;PWD=;DSN=tester"); // connect to ODBC
//  db.rlogon("scott/tiger@mysql"); // connect to ODBC, alternative format
                                    // of connect string 

  otl_cursor::direct_exec
   (
    db,
    "drop table test_tab",
    otl_exception::disabled // disable OTL exceptions
   ); // drop table

  otl_cursor::direct_exec
   (
    db,
    "create table test_tab(f1 int, f2 varchar(30))"
    );  // create table

  insert(); // insert records into the table
  update(10); // update records in the table
  select(8); // select records from the table

 }

 catch(otl_exception& p){ // intercept OTL exceptions
  cerr<<p.msg<<endl; // print out error message
  cerr<<p.stm_text<<endl; // print out SQL that caused the error
  cerr<<p.sqlstate<<endl; // print out SQLSTATE message
  cerr<<p.var_info<<endl; // print out the variable that caused the error
 }

 db.logoff(); // disconnect from ODBC

 system("pause");
 return 0;

}


Right click your project and go to property->Configuration Properties->C/C++->General->Additional Include directory....

Add the path of otlv4_h2 as shown below:-



Press ok.

Right click your project tatiana and then go to debug->Start New Instance.



hopefully you enjoyed the tutorial... go to the database from the phpmyadmin under the database name specified in the codes. Look for table test_tab.

******enjoy******


No comments: