From: | "Warwick Johnston" <i_wok(at)hotmail(dot)com> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | |
Date: | 2000-11-30 05:07:20 |
Message-ID: | LAW2-F258gnLVLYwXA9000069a7@hotmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Hi, Warwick Johnston here, and thanks in advance for any assistance you can
provide.
I'm trying to run postgresql, and am having trouble with the embedded c
compiler. First the facts: I'm running PostgreSQL 6.5.3 on
i686-pc-linux-gnu, compiled by gcc egcs-2.91.66, as stated by the version
information. I'm on a linux OS, and postgres came with Linux 6.2. Following
the directions in the online book accessible from the
http://www.postgresql.org/docs/aw_pgsql_book/node189.html website, and using
a program detailed later, I have come unstuck when trying to precompile the
source code.
when i type ecpg temp.pgc
the system responds
Error: Cannot open include file sqlca in line 29
at line 29 is the command
EXEC SQL INCLUDE sqlca ;
the C libraries stdlib.h, stdio.h, and string.h have been included.
the sqlca.h file is located in directory /usr/include/pgsql/sqlca.h
YOu may also be interesed to know that if I remove the leading whitespace
before the colon in line 29, ie
EXEC SQL INCLUDE sqlca;
the error message becomes
in line 29ot open include file sqlca;
This is all extremely frustrating as I cannot continue to debug my code
before I get rid of this error.
This is the file I am trying to precompile. Obviously I don't want you to
debug it for me, I thought it may help you, that's all:
temp.pgc
/*
* A simple Embedded SQL example using the banking_example database
* described in Database System Concepts by Silberschatz, Korth and
* Sudarshan.
*
* Written by: Evan Harris <evan(at)cs(dot)mu(dot)oz(dot)au>
* Last update: 27 April 1998
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "/usr/include/sys/socket.h" /* for lcompat lks */
#include "/usr/include/pgsql/sqlca.h"
/*
* These lengths must be the length of the string defined in the
* database schema + 1 for the null (string terminating) character.
*/
#define ACCOUNT_NUMBER_LENGTH 16
#define BRANCH_NAME_LENGTH 31
/*
* Some instructions to SQL about error messages and error conditions.
* Be sure to include this.
*/
EXEC SQL INCLUDE sqlca;
EXEC SQL WHENEVER SQLERROR STOP;
int
main(int argc, char** argv)
{
/*
* All variables (and their corresponding structures) that will be
* used by SQL.
*
* If it is used (preceded by a colon), it must be declared here.
*/
EXEC SQL BEGIN DECLARE SECTION;
struct
{
char pname[MAX_NAME_LENGTH];
char pinit;
int ffnum;
char suburb[MAX_NAME_LENGTH];
}
passenger_record;
int minimum_balance = 0;
char arg[80];
/*
* This indicates whether any of the returned structure values are NULL.
* There must be one element for each field.
*/
short null_indicator[3];
EXEC SQL END DECLARE SECTION;
/*
* Parse any program arguments.
*/
if (argc == 2)
{
strcpy(arg, argv[1]);
}
else if (argc > 2)
{
fprintf(stderr, "Usage: %s Branch-name", argv[0]);
exit(EXIT_FAILURE);
}
printf("%s", arg);
/*
* Declaring a cursor allows us to step through the result tuples
* of a query one at a time. The query may also have GROUP BY,
* HAVING, etc., clauses.
*
* Note that the cursor variable can not be named "cursor" because
* the embedded SQL compiler confuses it with the CURSOR keyword.
*/
EXEC SQL DECLARE cursor1 CURSOR FOR
select name, m.descript as WLAN, n.descript as GPS
from mapping m, mapping n, person p, locat l, locat lo
where p.id = l.id
and l.coord = m.coord
and l.method = 'WLAN'
and p.id = lo.id
and lo.coord = n.coord
and lo.method = 'GPS';
/*
* We must connect to the database that we will be accessing.
*/
EXEC SQL CONNECT locationDB;
/*
* This is a trivial example of how to use the cursor facility.
*
* sqlca.sqlcode, the error code, is 0 providing an error
* (including EOF) has not occurred. That is, more tuples are
* available for reading from the cursor.
*
* We assume that the meaning of sqlca.sqlcode != 0 is similar to
* "EOF" of C.
*/
EXEC SQL OPEN cursor1;
EXEC SQL CLOSE cursor1;
/*
* If we wished we could now open the cursor again. If we did so
* after changing the value of the "minimum_balance" variable, we'd
* get a different set of tuples back.
*/
/*
* We must disconnect from the database before finishing.
*/
EXEC SQL DISCONNECT;
exit(EXIT_SUCCESS);
}
Thanks for your help.
_____________________________________________________________________________________
Get more from the Web. FREE MSN Explorer download : http://explorer.msn.com
From | Date | Subject | |
---|---|---|---|
Next Message | Zenon Braga F. | 2000-11-30 10:42:32 | PostgreSQL 7.0.2 doesn't install |
Previous Message | Stephan Szabo | 2000-11-29 22:02:05 | Re: Both cross-named & compound foreign key constaints fail |