• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 379
  • Last Modified:

How to access an sql database from a c++ program

I am a beginner programmer. So please, keep it simple.
I use MS VS.
I need to access an sql table and print (cout<<) the first 5 lines of the table in a table format.
the sql table has 6 columns and a very large number of rows.

Thanks for the help.
0
pgmerLA
Asked:
pgmerLA
  • 5
  • 3
  • 2
  • +3
1 Solution
 
evilrixSenior Software Engineer (Avast)Commented:
Generally, the simplest way to access a database from C++ is to use an ODBC driver. All the popular databases have drivers available.

http://en.wikipedia.org/wiki/Open_Database_Connectivity
0
 
wdosanjosCommented:
Check the following article it has a working sample code:

http://www.codeproject.com/KB/mcpp/adodemo.aspx
0
 
evilrixSenior Software Engineer (Avast)Commented:
@wdosanjos, that example is for managed c++. The question has been asked in the non-managed C++ zone.
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
Ephraim WangoyaCommented:

Here is another set of tutorials
http://www.caspercomsci.com/pages/mfcsource.htm#10
0
 
evilrixSenior Software Engineer (Avast)Commented:
Additional info on using ODBC to access MS SQL.
http://msdn.microsoft.com/en-us/library/ms811006.aspx

General info on using ODBC
http://support.microsoft.com/kb/110093

More info on developing with ODBC
http://msdn.microsoft.com/en-us/library/aa198030(v=sql.80).aspx
0
 
evilrixSenior Software Engineer (Avast)Commented:
ewangoya, again that documentation is for managed C++ and yet the question is not in a managed C++ zone. It is also for Access databases yet the question is in the SQL 2008 zone.

Please think before you just Google for links and post them.
0
 
Ephraim WangoyaCommented:

@evilrix
The zone is C++ Programming Language, Unless I don't know how to read which I think I do,there is nothing that says unmanaged code

The tutorial is on MS Access, so what?
This is generally how to connect to a database. It does not matter which database you connect to, you learn how to use ODBC or OLEDB, you will be fine for any kind of database.

I don't like being rude
Be open minded, there are many ways to look at solutions, not just what you think is right
0
 
evilrixSenior Software Engineer (Avast)Commented:
>>  I do,there is nothing that says unmanaged code
The "C++ Programming" zone is unmanaged C++. There is a separate managed C++ zone.
http://www.experts-exchange.com/Programming/Languages/.NET/Visual_CPP/

Absolutely nothing about this question indicates a managed solution is required.

>> The tutorial is on MS Access, so what?
The question is in the SQL Server 2008 zone so providing links on how to connect to an Access database is a little of the mark specially when there is plenty of documentation in the MSDN on how to connect to an MS SQL database using ODDB or OLEDB.
0
 
lomo74Commented:
ok the first post was a copy paste from MSDN -
this one was written from scratch -
I cannot understand why you insist on removing my posts, since this is the most *basic* example I can imagine.
so any attempt to write down a simple example of connect to SQL/fetch data/print out must be considered plagiarism?
can you write down a simple example that does not look like the one found on MSDN?
0
 
lomo74Commented:
put it this way.
anyone writing

#include <stdio.h>
int main(void)
{
  printf("Hello, World!\n");
}

is plagiarizing Mr Kernighan and Mr Ritchie.
0
 
gopiseraCommented:
In order to access the sql table from c.

See the proc  document of mircosoft vc++.

'PROC'  helps you to connect to the database and acess the tables.
0
 
pgmerLAAuthor Commented:
could you give me a simple sample code using 'PROC'?

Thanks.
0
 
gopiseraCommented:
Sure .....  

Here is the sample code for proc

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#include <math.h>


EXEC SQL BEGIN DECLARE SECTION;
VARCHAR uid[80];
VARCHAR pwd[20];
EXEC SQL END DECLARE SECTION;
EXEC SQL INCLUDE SQLCA.H;

void main()
{

   int option,tmp;

   extern int openaccount();
   extern void display();
   extern int deposit();


   strcpy(uid.arr,"home");
   uid.len =strlen(uid.arr);
   strcpy(pwd.arr,"ramesh");
   pwd.len = strlen(pwd.arr);

   EXEC SQL WHENEVER SQLERROR GOTO errexit;
   EXEC SQL CONNECT :uid IDENTIFIED BY :pwd;

   printf("Connected to Oracle");
      
      
   
   do
      {
            printf("\n            Main Menu              \n");
            printf("1.Opening an Account\n");
            printf("2.Display Account Details \n");
            printf("3.Deposit\n");
            printf("4.With Draw\n");
            printf("5.Exit");
            printf("Enter your option \t:\t");
            scanf("%d",&option);
            switch(option)
            {

                  case 1:

                                    tmp=openaccount();
                                    if(tmp==1)
                                           printf("You Have Not Opened the Account");
                                    else
                                          printf("Successfully you hv created the Account");
                                    break;

                  case  2:

                                    display();
                                    break;

                  case 3:
                                    tmp=deposit();
                                    if(tmp==1)
                                           printf("Not Deposited the money");
                                    else
                                          printf("Successfully you hv Deposited the money in the Account");

                                    break;

            /*      case 4:
                                    
                                    withdraw();
                                    break;          */
                  
                  case 5:
                                    exit(0);


                  default:
                                    printf("\nYou Have Entered the wrong option\n");
                                    printf("\n Enter the current option");
            }

      }while(1);

 
   goto end;
errexit:

   printf("Error: %70s", sqlca.sqlerrm.sqlerrmc);

end:
   printf("Program completed");




}


Will give you more information.....  with in an hour
0
 
gopiseraCommented:
Please find more details about ProC in the documents.

Which give you a clear cut idea.

Let me know if you faces any issues still....

Will clear your doubts....
#include <stdio.h>
#include <stdlib.h>

EXEC SQL BEGIN DECLARE SECTION;
VARCHAR uid[80];
VARCHAR pwd[20];
EXEC SQL END DECLARE SECTION;
EXEC SQL INCLUDE SQLCA.H;
void main()
{
   strcpy(uid.arr,"SCOTT");
   uid.len =strlen(uid.arr);
   strcpy(pwd.arr,"TIGER");
   pwd.len = strlen(pwd.arr);

   EXEC SQL WHENEVER SQLERROR GOTO errexit;
   EXEC SQL CONNECT :uid IDENTIFIED BY :pwd;

   printf("Connected to Oracle");
   goto end;

errexit:
   printf("Error: %70s", sqlca.sqlerrm.sqlerrmc);
end:
   printf("Program completed");
}

Open in new window

ProC.pdf
Compiling-ProC-Programs.doc
0

Featured Post

Take Control of Web Hosting For Your Clients

As a web developer or IT admin, successfully managing multiple client accounts can be challenging. In this webinar we will look at the tools provided by Media Temple and Plesk to make managing your clients’ hosting easier.

  • 5
  • 3
  • 2
  • +3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now