Pro*C++ HELP!
Date: 1998/12/18
Message-ID: <3679A830.F06F812E_at_la.usweb.com>#1/1
First off... TO all the idiots that "designed" Pro*C/C++...
You're idiots.
Pro*C/C++ is *easiliest* the most non standard, non portable, sloppy
non-intuitive, non-functional "language" I have ever had the
dissapointment to be forced to use.
What the hell was wrong with simply implenting a class "SQLServer" or
other such standard C++ constructs and then forgetting about your
stupid Pro*C/C++ pre-pre-processor????
I guess it would too easy to have users just use:
#include <sqlstuff.h>
and then allowing the user to use normal ANSI C++ stuff???????
And what the HELL is with all the libraries I have to include on the
compiling command line. (Not that I've gotten that far yet.
Ok now. Hopefully somebody has gotten a C++ program to work using
"Pro"*C/C++ and can help me out...
All I want right now is to make a class wrapper so that I can easily
use this stuff in the future.
So I did this...
File: oracle_wrapper.h
extern unsigned char SQLerror[1024];
class SqlServer
and then I made a simple oracle_wrapper.C file to provide me with the
methods... (Of which I will only show you the first method "Connect".
File: oracle_wrapper.pc
EXEC ORACLE OPTION (ORACA=NO);
EXEC ORACLE OPTION (RELEASE_CURSOR=YES);
extern SQLDA *sqlald();
SQLDA *bind_descriptor; // descriptor area for bind variables
SQLDA *select_descriptor; // descriptor area for select list items
#include "oracle_wrapper.h"
/*
int SqlServer::Connect(char *username, char *password)
{
return -1;
return 1;
When I run "proc code=cpp oracle_wrapper.pc I get this...
Pro*C/C++: Release 8.0.5.0.0 - Production on Thu Dec 17 16:50:59 1998
(c) Copyright 1998 Oracle Corporation. All rights reserved.
{
private:
int connected;
public:
SqlServer(void) : connected(0) {};
int Connect(char *username, char *password);
int Disconnect(void);
int Commit(void);
int Init(void);
int Execute(const char *sql_statement);
int Prepare(const char *sql_statement);
int Fields(char *buffer, int max);
int Ignore(void);
int Fetch(char *buffer, int max);
int Done(void);
int Quit(void);
};
unsigned char memory[MEMSIZE];
unsigned char SQLerror[1024];
EXEC SQL INCLUDE sqlca;
EXEC SQL INCLUDE sqlda;
EXEC SQL INCLUDE oraca;
extern void sqlnul();
establish an RDBMS connection
*/
EXEC SQL CONNECT :username IDENTIFIED BY :password;
if (sqlca.sqlcode < 0)
}
System default option values taken from:
/usr/lib/Oracle/8.0.5/precomp/admin/pcscfg.cfg
Semantic error at line 26, column 21, file oracle_wrapper.pc:
EXEC SQL CONNECT :username IDENTIFIED BY :password;
....................1
PCC-S-02322, found undefined identifier
So it seems a bit like this Pro*C/C++ preprocessor doesn't really know C++ at all cause "username" is declared and defined on the very previous line as an argument to the function.
If Pro*C/C++ doesn't allow argument definitions then its a pretty piss poor C++ "language".
Sorry for the tone of this message but I've been working on this for days now and haven't gotten anywhere with it and the documentation is so cryptic as to be completely useless.
Even the cppdemo included don't compile. They preprocess ok but thats because that only have global variables and we all know from school that global variables are not good.
Please Help me if you can. Thanks,
J E F F W I E G L E Y, Ph.D.
Systems Analyst
USWeb/CKS Corporation http://www.uswebcks.com/ 8522 National Blvd, Suite 101
Culver City, CA 90232
ph 310 815 1177 x 216 fax 310 815 1133 mailto:jeff_at_usweb.com
USWeb - A Strategic Partner for the Information Age Received on Fri Dec 18 1998 - 00:00:00 CET