• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 384
  • 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
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

 
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

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