Friday, 11 May 2012

How to link SQL Server to C++



#define DBNTWIN32
#include <stdio.h>
#include <windows.h>
#include <sqlfront.h>
#include <sqldb.h>


int err_handler(PDBPROCESS, INT, INT, INT, LPCSTR, LPCSTR);
int msg_handler(PDBPROCESS, DBINT, INT, INT, LPCSTR, LPCSTR,
LPCSTR, DBUSMALLINT);
main()
{
   PDBPROCESS dbproc; 
   PLOGINREC login; 
   DBCHAR name[100];
   DBCHAR city[100];


   dberrhandle (err_handler);
   dbmsghandle (msg_handler);
   dbinit ();
   login = dblogin ();
   DBSETLUSER (login, "my_login");
   DBSETLPWD (login, "my_password");
   DBSETLAPP (login, "example");
   dbproc = dbopen (login, "my_server");
   dbcmd (dbproc, "SELECT au_lname, city FROM pubs..authors");
   dbcmd (dbproc, " WHERE state = 'CA' ");
   dbsqlexec (dbproc);
   if (dbresults (dbproc) == SUCCEED)
   {
      dbbind (dbproc, 1, NTBSTRINGBIND, 0, name);
      dbbind (dbproc, 2, NTBSTRINGBIND, 0, city);
      while (dbnextrow (dbproc) != NO_MORE_ROWS)
      {
         printf ("%s from %s\n", name, city);
      }
   }


   dbexit ();
   return (0);
}


int err_handler (PDBPROCESS dbproc, INT severity,
INT dberr, INT oserr, LPCSTR dberrstr, LPCSTR oserrstr)
{
   printf ("DataBaseLibrary Error %i: %s\n", dberr, dberrstr);
   if (oserr != DBNOERR)
   {
      printf ("OperatingSystem Error %i: %s\n", oserr, oserrstr);
   }
   return (INT_CANCEL);
}


int msg_handler (PDBPROCESS dbproc, DBINT msgno, INT msgstate,
INT severity, LPCSTR msgtext, LPCSTR server,
LPCSTR procedure, DBUSMALLINT line)
{
   printf ("SQL Server Message %ld: %s\n", msgno, msgtext);
   return (0);
}

No comments:

Post a Comment