将数据从qt插入postgres数据库错误

时间:2012-04-05 10:41:36

标签: c++ qt postgresql

在过去的2-3天里,我遇到了从我制作的Qt程序向postgres数据库插入数据的问题。

我已与数据库建立连接,但当我尝试插入数据时,程序会向我发送此消息:

ERROR:  syntax error at or near "("
LINE 1: EXECUTE  ('thisIsSomeName', 4, '0000')
                 ^
QPSQL: Unable to create query

以下是Qt中插入值的代码。

QSqlQuery qsql;
qsql.prepare("INSERT INTO baza(Name, ID, Birth Date)"
                     "VALUES (?, ?, ?)");

        qsql.bindValue(0, "thisIsSomeName");
        qsql.bindValue(1, 4);
        qsql.bindValue(2, "0000");

        if (qsql.exec())
        {
            label->setText("all is good");
        }

请告诉我如何做这项工作。谢谢。 巴扎的脚本

CREATE TABLE baza
(
  "Name" name NOT NULL DEFAULT 50,
  "ID" integer NOT NULL,
  "Birth Date" text DEFAULT 0,
  CONSTRAINT baza_pkey PRIMARY KEY ("ID")
)
WITH (
  OIDS=FALSE
);
ALTER TABLE baza OWNER TO postgres;

1 个答案:

答案 0 :(得分:2)

试试这个

    CREATE TABLE baza
      (
         Name  name NOT NULL DEFAULT 50,
         ID  integer NOT NULL,
         Birth_Date  text DEFAULT 0,
       CONSTRAINT baza_pkey PRIMARY KEY ("ID")
    )
     WITH (
        OIDS=FALSE
     );
       ALTER TABLE baza OWNER TO postgres;

然后尝试这个

  QSqlQuery qsql;
  qsql.prepare("INSERT INTO baza(Name, ID, Birth_Date)"
                 "VALUES (?, ?, ?)");

    qsql.bindValue(0, "thisIsSomeName");
    qsql.bindValue(1, 4);
    qsql.bindValue(2, "0000");

    if (qsql.exec())
    {
        label->setText("all is good");
    }

这里有一些例子 sql sqlstatements