irmao posso ate estar errado pq dei uma olhada rapida
na sua tabela nregra é um int4 e no seu codigo é um vetor de caratcteres 
char[4]...
----- Original Message ----- 
From: "José Antônio Marcondes de Salles" <[EMAIL PROTECTED]>
To: "Brasil-Usuarios" <[email protected]>
Sent: Monday, April 10, 2006 4:34 PM
Subject: [PostgreSQL-Brasil] Problemas com o INSERT


Pessoal,

agradeço se alguem puder me dar uma ideia da solução para o problema abaixo
:

Programa simples que recebe uma tela form do ncurses e grava os dados em uma
tabela no PostgreSql. Conexão com o banco ok, SELECT ok, GRANT ok, e no
memento do INSERT recebo o seguinte return code : Attribute "nregra" not
found.

segue a linha do comando :

    /* ---------------------------------------------------------------------
- */
    /* Definicoes de variaveis diversas
*/
    /* ---------------------------------------------------------------------
- */

    int carac;
    int conta;
    char nregra[4];


    strcpy(nregra, field_buffer(field[0], 0));  // nregra recebe de field[0]
>> field e ligado a ncurses

    res = PQexec(conn, "BEGIN");

        if (PQresultStatus(res) != PGRES_COMMAND_OK)
         {
           mvprintw(LINES - 3, 8, "O comando BEGIN falhou !!!!          %s",
PQerrorMessage(conn));
           refresh();
           carac = getch();
           PQclear(res);
           PQfinish(conn);
           return(0);
         }

        res = PQexec(conn, "GRANT SELECT, INSERT, UPDATE ON regras TO
jantonio");

        if (PQresultStatus(res) != PGRES_COMMAND_OK)
         {
           mvprintw(LINES - 3, 8, "O comando GRANT falhou !!!!          %s",
PQerrorMessage(conn));
           refresh();
           carac = getch();
           PQclear(res);
           PQfinish(conn);
           return(0);
         }

        res = PQexec(conn, "SELECT * FROM regras;");

        if (PQresultStatus(res) != PGRES_TUPLES_OK)
         {
           mvprintw(LINES - 3, 8, "O comando SELECT falhou !!!!
%s", PQerrorMessage(conn));
           refresh();
           carac = getch();
           PQclear(res);
           PQfinish(conn);
           return(0);
         }

        res = PQexec(conn, "INSERT INTO regras (numeroregra) VALUES
(nregra)");

        if (PQresultStatus(res) != PGRES_COMMAND_OK)
         {
           mvprintw(LINES - 3, 8, "O comando INSERT falhou !!!!
%s", PQerrorMessage(conn));
           refresh();
           carac = getch();
           PQclear(res);
           PQfinish(conn);
           return(0);
         }

        res = PQexec(conn, "COMMIT");

        if (PQresultStatus(res) != PGRES_COMMAND_OK)
         {
           mvprintw(LINES - 3, 8, "O comando COMMIT falhou !!!!
%s", PQerrorMessage(conn));
           refresh();
           carac = getch();
           PQclear(res);
           PQfinish(conn);
           return(0);


Segue aabaixo o SQL :

-- Table: regras

-- DROP TABLE regras;

CREATE TABLE regras
(
  numeroregra int4,
  colunas int4,
  linhas int4,
  razao int4,
  cores int4,
  "exclusao[95]" int4
  )
WITHOUT OIDS;
ALTER TABLE regras OWNER TO jantonio;
COMMENT ON TABLE regras IS 'Tabela de regras';


Grato,

José Antônio


_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
http://www.postgresql.org.br

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
http://www.postgresql.org.br

Responder a