Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > cc556cc3ee61bc37dfbf99bf3b8835c8 > files > 46

lib64dbi-devel-0.9.0-2.mga4.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Generic Example Program</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Database Independent Abstraction Layer for C"
HREF="index.html"><LINK
REL="UP"
TITLE="libdbi in a Nutshell (Quickstart Guide)"
HREF="quickstart.html"><LINK
REL="PREVIOUS"
TITLE="Quick Overview"
HREF="quickstart-debriefing.html"><LINK
REL="NEXT"
TITLE="Loading libdbi at runtime"
HREF="loadinglibdbi.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Database Independent Abstraction Layer for C: libdbi Programmer's Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="quickstart-debriefing.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 3. libdbi in a Nutshell (Quickstart Guide)</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="loadinglibdbi.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="QUICKSTART-CODE"
>3.2. Generic Example Program</A
></H1
><P
>The following listing shows how to establish a connection to a MySQL database server and retrieve the results of a SQL query. Only a small number of functions offered by libdbi are shown here. For a more extensive example check out the test program <TT
CLASS="FILENAME"
>tests/test_dbi.c</TT
> in the <A
HREF="http://libdbi-drivers.sourceforge.net"
TARGET="_top"
>libdbi-drivers</A
> source tarball.</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>#include &#60;stdio.h&#62;
#include &#60;dbi/dbi.h&#62;

int main() {
    dbi_conn conn;
    dbi_result result;
    dbi_inst instance;

    double threshold = 4.333333;
    unsigned int idnumber;
    const char *fullname;
    
    dbi_initialize_r(NULL, &#38;instance);
    conn = dbi_conn_new_r("mysql", instance);

    dbi_conn_set_option(conn, "host", "localhost");
    dbi_conn_set_option(conn, "username", "your_name");
    dbi_conn_set_option(conn, "password", "your_password");
    dbi_conn_set_option(conn, "dbname", "your_dbname");
    dbi_conn_set_option(conn, "encoding", "UTF-8");

    if (dbi_conn_connect(conn) &#60; 0) {
      printf("Could not connect. Please check the option settings\n");
    }
    else {
      result = dbi_conn_queryf(conn, "SELECT id, name FROM coders "
                                  "WHERE hours_of_sleep &#62; %0.2f", threshold);
    
      if (result) {
	while (dbi_result_next_row(result)) {
	  idnumber = dbi_result_get_uint(result, "id");
	  fullname = dbi_result_get_string(result, "name");
	  printf("%i. %s\n", idnumber, fullname);
	}
	dbi_result_free(result);
      }
      dbi_conn_close(conn);
    }
    
    dbi_shutdown_r(instance);

    return 0;
}</PRE
></FONT
></TD
></TR
></TABLE
><P
>Compile with: gcc -lm -ldl -ldbi -o foo foo.c</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>The <CODE
CLASS="OPTION"
>-ldl</CODE
> option is not required on systems that implement the dynamic linking in their libc (like FreeBSD). You may also have to throw in something like <CODE
CLASS="OPTION"
>-I/usr/local/include</CODE
> and <CODE
CLASS="OPTION"
>-L/usr/local/lib</CODE
> to help gcc and ld find the libdbi headers and libraries.</P
></BLOCKQUOTE
></DIV
><P
>Of course, a complete program should check for errors more thoroughly. This example keeps error-checking at a minimum for the sake of clarity. There are also other ways to retrieve data after a successful query. Keep reading on to see the rest.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="quickstart-debriefing.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="loadinglibdbi.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Quick Overview</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="quickstart.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Loading libdbi at runtime</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>