Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> OCI (7.3) programming Q

OCI (7.3) programming Q

From: Christoph Kukulies <kuku_at_gil.physik.rwth-aachen.de>
Date: 6 Aug 2001 18:51:23 GMT
Message-ID: <9kmovb$ed2$1@nets3.rz.RWTH-Aachen.DE>

I had written an OCI interface application under 8.0.5 and higher and it worked fine using the newer OCI interface API.

Since I had this problem with some customers who are using 7.3.3 I tried to rewrite my application for the older interface API.

Somehow it doesn't work. I don't get any errors. The connection to the database seems to be made. I'm even observing disk activity on the server but when my database load finishes (via execution of SQL statements over the network) no table is created. Nothing is entered. The database is empty. Also the load process is suspicially fast.

Somehow I must be doing wrong - maybe with the understanding of DEFERED_PARSE. Can someone experienced with OCI help me?

Here is my interface. It looks a bit dumb with the big buffer being filled but that's for compatibility with the upper layer.

-- 
Chris Christoph P. U. Kukulies kuku_at_gil.physik.rwth-aachen.de
/*-------------- Oracle 7.3 Version  C. Kukulies  27.7.1 ---------------------*/


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

#include "oratypes.h"
/* LDA and CDA struct declarations */
#include <ocidfn.h>
#ifdef __STDC__
#include <ociapr.h>
#else
#include <ocikpr.h>
#endif
/* demo constants and structs */
#include <ocidem.h>
FILE *db_log; /*----------------------------------------------------------------------------*/
#define DB_BUF 8000
static char db_buf[DB_BUF]; /*----------------------------------------------------------------------------*/ void err_report(); void insert_data(); void do_exit(); /* oparse flags */
#define DEFER_PARSE 1
#define NATIVE 1
#define VERSION_7 2

#define HDA_SIZE 256
/* exit flags */
#define OCI_EXIT_FAILURE 1
#define OCI_EXIT_SUCCESS 0
Cda_Def cda; Lda_Def lda; ub4 hda[HDA_SIZE/sizeof(ub4)]; /*----------------------------------------------------------------------------*/ DBConnect (char *server, char *username, char *password) { if (olog(&lda, hda, username , -1, password, -1, (text *)server, -1, OCI_LM_DEF)) { err_report((Cda_Def *)&lda); do_exit(OCI_EXIT_FAILURE); } db_buf[0]=0; if (oopen(&cda, &lda, (text *) 0, -1, -1, (text *) 0, -1)) /* open */ { err_report(&cda); do_exit(OCI_EXIT_FAILURE); } } /*----------------------------------------------------------------------------*/ DBDisconnect () { printf("Disconnecting...\n"); if (oclose(&cda)) /* close cursor */ { fprintf(stderr, "Error closing cursor 1.\n"); do_exit(OCI_EXIT_FAILURE); } if (ologof(&lda)) /* log off the database */ { fprintf(stderr, "Error on disconnect.\n"); do_exit(OCI_EXIT_FAILURE); } } /*----------------------------------------------------------------------------*/ DBSql (int lineno, char *where) {
#ifdef DEBUG
printf("[%s]",db_buf);
#endif
if (oparse(&cda, db_buf , (sb4) -1 , DEFER_PARSE, /* parse */ (ub4) VERSION_7)) { err_report(&cda); do_exit(OCI_EXIT_FAILURE); } db_buf[0]=0; } /*----------------------------------------------------------------------------*/ DBOut (char *string, char *where) { if (strlen(db_buf) + strlen (string) < DB_BUF) { strcat (db_buf, string); return (0); } else { fprintf (db_log, "ERROR - buffer overflow in %s\n", where); exit(1); } } void do_exit(status) eword status; { if (status == OCI_EXIT_FAILURE) printf("\n Exiting with FAILURE status %d\n", status); else printf("\n Exiting with SUCCESS status %d\n", status); exit(status); } void err_report(cursor) Cda_Def *cursor; { sword n; text msg[512]; /* message buffer to hold error text */ if (cursor->fc > 0) printf("\n-- ORACLE error when processing OCI function %s \n\n", oci_func_tab[cursor->fc]); else printf("\n-- ORACLE error\n"); n = (sword)oerhms(&lda, cursor->rc, msg, (sword) sizeof msg); fprintf(stderr, "%s\n", msg); }
Received on Mon Aug 06 2001 - 13:51:23 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US