fmII
Sun, May 18th home | browse | articles | contact | chat | submit | faq | newsletter | about | stats | scoop 08:42 PDT
in
Section
login «
register «
recover password «
[Project] add release | add branch | add screenshot | broken links | change owner | email subscribers | update project | update branch (urls) [Project]

 libsqlora8 - Stable branch
Section: Unix

 

Added: Sun, Jul 9th 2000 12:53 PDT (7 years, 10 months ago) Updated: Thu, Aug 14th 2003 10:34 PDT (4 years, 9 months ago)


About:
libsqlora8 is a library that makes Oracle access for C programmers much easier than using Oracle's OCI interface. The library is built on top of OCI8 and simplifies some common tasks.

Author:
Kai Poitschke [contact developer]

Rating:
8.47/10.00 (2 votes)

Homepage:
http://www.poitschke.de/libsqlora8/
Tar/GZ:
http://www.poitschke.de/libsqlora8/libsqlora8-2.2.12.tar.gz
Changelog:
http://www.poitschke.de/libsqlora8/NEWS-2.2

Trove categories: [change]
[Development Status]  5 - Production/Stable
[Intended Audience]  Developers
[License]  Freely Distributable, Freeware
[Operating System]  POSIX :: HP-UX, POSIX :: Linux, POSIX :: SunOS/Solaris
[Programming Language]  C
[Topic]  Database, Database :: Database Engines/Servers, Software Development :: Libraries

Dependencies: [change]
No dependencies filed

 
Project admins: [change]
» Kai Poitschke (Owner)

» Rating: 8.47/10.00 (Rank N/A)
» Vitality: 0.01% (Rank 6352)
» Popularity: 1.18% (Rank 4768)

project statsdownload stats
(click to enlarge graphs)
   Record hits: 13,663
   URL hits: 9,309
   Subscribers: 22

Other projects from the same categories:
radiusclient
GPI
avr-libc
OpenCT
xlsjdbc

Users who subscribed to this project also subscribed to:
Securepoint Security Suite
Brutalcopy
memgrep
latd
PXE daemon


Add comment · Rate this project · Subscribe to new releases · Ignore this project · Email this project to a friend · Project record in XML

 Branches

Branch Version Last release License URLs
Stable 2.2.11 14-Aug-2003 Freeware Homepage Tar/GZ Changelog

 Comments

[»] Can it install on Red Hat 7.2 successfully?
by Michael Zhou - Apr 22nd 2002 21:53:52

The environment is Redhat 7.2, oracle8.1.7,and I copy the package to "/root". And the errors echo as follow:
#make
make all-recursive
make[1]: Entering directory `/root/libsqlora8-2.2.0'
Making all in .
make[2]: Entering directory `/root/libsqlora8-2.2.0'
source='sqlora.c' object='sqlora.lo' libtool=yes \
depfile='.deps/sqlora.Plo' tmpdepfile='.deps/sqlora.TPlo' \
depmode=gcc3 /bin/sh ./depcomp \
/bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -I/oracle/product/8.1.7/rdbms/demo -I/oracle/product/8.1.7/rdbms/public -I/oracle/product/8.1.7/precomp/public -DBUILD_DATE="\"Tue Apr 23 09:35:40 CST 2002\"" -O3 -Wall -c -o sqlora.lo `test -f sqlora.c || echo './'`sqlora.c
rm -f .libs/sqlora.lo
gcc -DHAVE_CONFIG_H -I. -I. -I. -I/oracle/product/8.1.7/rdbms/demo -I/oracle/product/8.1.7/rdbms/public -I/oracle/product/8.1.7/precomp/public "-DBUILD_DATE=\"Tue Apr 23 09:35:40 CST 2002\"" -O3 -Wall -c sqlora.c -MT sqlora.lo -MD -MP -MF .deps/sqlora.TPlo -fPIC -DPIC -o .libs/sqlora.lo
sqlora.c:772: conflicting types for `strdup'
/usr/include/string.h:120: previous declaration of `strdup'
make[2]: *** [sqlora.lo] Error 1
make[2]: Leaving directory `/root/libsqlora8-2.2.0'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/libsqlora8-2.2.0'
make: *** [all] Error 2

Your assistance will be high appreciated! : )

[reply] [top]


    [»] Re: Can it install on Red Hat 7.2 successfully?
    by Kai Poitschke - Apr 23rd 2002 02:06:28

    Please send problem reports directly to libsqlora8@poitschke.de. Please include the output of your configure run. Kai

    [reply] [top]


[»] Has This Been Successfully Referenced In COM?
by benbahrenburg - Apr 17th 2002 12:28:42

Has this library been successfully reference in a Windows COM environment (ie VB)? I would be very interested in exploring any information or suggestions you have on this. Due to the shortcomings of Oracle Objects For OLE. Please let me know if you have any information on this topic

[reply] [top]


    [»] Re: Has This Been Successfully Referenced In COM?
    by Kai Poitschke - Apr 17th 2002 12:45:15


    > Has this library been successfully
    > reference in a Windows COM environment
    > (ie VB)? I would be very interested in
    > exploring any information or suggestions
    > you have on this.

    AFAIK, no. Maybe it never will be :( Most of the users are Unix users which don't care about (D)COM. I have not enough know-how to do it.

    Sorry
    Kai

    [reply] [top]


[»] Please add comments
by Kai Poitschke - Aug 16th 2001 03:44:50

Hello,
as the maintainer of the package I would like to see some comments here.
Please add some feedback and rate the project.

Happy computing
Kai

[reply] [top]


    [»] A little problem with sqlo_ocol_names and memory alloc size
    by Ignacio Holgado Mazariegos - Jul 22nd 2003 07:31:58



    Hello :

    My name is Ignacio Holgado. Apologies for my english ( I am spanish ).
    I am developping an aplication server with oracle support in a multithreaded environment in a SuSe O.S.
    I have developped a "cursor object" in order to allow the access to a generic database from the aplications dispatched by my aplication server.
    The first implementation of this cursor object was implemented using the "easy interface" but now I need some functionalities from the advanced interface
    and i have 2 litle problems:

    1 - My first problem is that i can't obtain the column names from the advanced interface. It seams that it don't works with the "advanced interface". Maybe i am not using it propertly. I have made a bad solution and i would like to have a better solution.
    I use it with the following code :



    ...
    *cursor = sqlo_prepare ( *connection, sql_stmt ); // runs OK
    ...
    status = SQLexecute(cursor,0); // runs OK ( this is a wrapper to sqlo_execute )
    ...
    result->n_ocols = sqlo_ncols(*cursor, 0); // returns the number of columns OK !!
    ...
    ...
    for (type = SQLgetColType(cursor,i+1); (type>=0) && (in_ocols);type = SQLgetColType(cursor,(++i)+1))
    {
    ...
    if (SQLO_SUCCESS != (status = sqlo_define_by_pos(*cursor, i+1, type, result->data[2*i], size, result->data[2*i+1],&(result->length[i]),0)))
    {
    ....
    ....
    }
    }

    ...
    status = SQLexecute(cursor,0); // OK
    ...
    status = SQLfetch(cursor,0); // OK
    ...


    sqlo_loadNames(*cursor, result->n_ocols + 1); // This function is mine


    result->ocol_names = sqlo_ocol_names(*cursor, &type); // returns an array of null pointers





    The sqlo_loadNames function is a function that a have made to allow mi aplication to access the private function _define_ocol_by_pos
    that is non available from my aplication.

    In order to get the names I have put the following code inside the sqlora.c file.

    //
    // by ihm
    //

    //
    // Ampliation to enable getNames from Advanced interface
    //

    int sqlo_loadNames(sqlo_stmt_handle_t sth, int num_cols)
    {
    register sqlo_stmt_ptr_t stp;
    int status = SQLO_SUCCESS;

    register unsigned int col_pos; /* The column position (1based) */
    // ub4 num_cols; /* number of columns in the select list */
    sqlo_col_ptr_t colp;

    CHECK_STHANDLE(stp, sth, "sqlo_reopen", SQLO_INVALID_STMT_HANDLE);

    /* define all columns */
    for (col_pos = 1, colp = stp->ocolsv; col_pos

    [reply] [top]


      [»] A little problem with sqlo_ocol_names... ( part II )
      by Ignacio Holgado Mazariegos - Jul 22nd 2003 07:37:22


      /* define all columns */
      for (col_pos = 1, colp = stp->ocolsv; col_pos

      [reply] [top]


      [»] Re: A little problem with sqlo_ocol_names and memory alloc size
      by Ignacio Holgado Mazariegos - Jul 22nd 2003 07:40:41



      Hello :

      My name is Ignacio Holgado. Apologies for my english ( I am spanish ).
      I am developping an aplication server with oracle support in a multithreaded environment in a SuSe O.S.
      I have developped a "cursor object" in order to allow the access to a generic database from the aplications dispatched by my aplication server.
      The first implementation of this cursor object was implemented using the "easy interface" but now I need some functionalities from the advanced interface
      and i have 2 litle problems:

      1 - My first problem is that i can't obtain the column names from the advanced interface. It seams that it don't works with the "advanced interface". Maybe i am not using it propertly. I have made a bad solution and i would like to have a better solution.
      I use it with the following code :



      ...
      *cursor = sqlo_prepare ( *connection, sql_stmt ); // runs OK
      ...
      status = SQLexecute(cursor,0); // runs OK ( this is a wrapper to sqlo_execute )
      ...
      result->n_ocols = sqlo_ncols(*cursor, 0); // returns the number of columns OK !!


      for (type = SQLgetColType(cursor,i+1); (type>=0) && (i<=result->n_ocols);type = SQLgetColType(cursor,(++i)+1))
      {
      ...
      if (SQLO_SUCCESS != (status = sqlo_define_by_pos(*cursor, i+1, type, result->data[2*i], size, result->data[2*i+1],&(result->length[i]),0)))
      {
      ....
      ....
      }
      }

      ...
      status = SQLexecute(cursor,0); // OK
      ...
      status = SQLfetch(cursor,0); // OK
      ...


      sqlo_loadNames(*cursor, result->n_ocols + 1); // This function is mine


      result->ocol_names = sqlo_ocol_names(*cursor, &type); // returns an array of null pointers





      The sqlo_loadNames function is a function that a have made to allow mi aplication to access the private function _define_ocol_by_pos
      that is non available from my aplication.

      In order to get the names I have put the following code inside the sqlora.c file.

      //
      // by ihm
      //

      //
      // Ampliation to enable getNames from Advanced interface
      //

      int sqlo_loadNames(sqlo_stmt_handle_t sth, int num_cols)
      {
      register sqlo_stmt_ptr_t stp;
      int status = SQLO_SUCCESS;

      register unsigned int col_pos; /* The column position (1based) */
      // ub4 num_cols; /* number of columns in the select list */
      sqlo_col_ptr_t colp;

      CHECK_STHANDLE(stp, sth, "sqlo_reopen", SQLO_INVALID_STMT_HANDLE);

      /* define all columns */
      for (col_pos = 1, colp = stp->ocolsv; col_pos <= (unsigned int) num_cols ;
      ++col_pos, ++colp)
      {
      _define_ocol_by_pos(stp, colp, col_pos);
      }
      return 1;
      }

      I know that this is a bad solution but is the only one that i have.


      2 - My second problem is that i don't know how much space allocate in a string when i call tho the sqlo_define_by_pos function.
      Maybe a solution can be to implement a new sqlo_define_by_pos3 function with a double pointer to the data:

      sqlo_define_by_pos3 ( stmt , pos, type, void **the_data, int *size, ...

      And the sqlo_fetch, command allocates the memory and stores a pointer of the data inside the the_data double pointer when the true size of the data will be know:

      *the_data = __malloc(...);
      snprintf ( *the_data, the_size, ... ); // or some similar.

      The followind problem is who frees the memory: the sqlora library or the user. But i thing this situation is the same that the situation of the
      allocation of "alloc_lob" and "free_lob" with the lob's API.

      Thanks in advance:

      [reply] [top]




© Copyright 2008 SourceForge, Inc., All Rights Reserved.
About freshmeat.net •  Privacy Statement •  Terms of Use •  Trademark Guidelines •  Advertise •  Contact Us • 
ThinkGeek •  Slashdot  •  ITMJ •  Linux.com •  NewsForge  •  SourceForge.net  •  Surveys •  Jobs •  PriceGrabber