Re: C++Builder table exist - Mailing list pgsql-general

From Raymond O'Donnell
Subject Re: C++Builder table exist
Date
Msg-id 51405E0A.2020204@iol.ie
Whole thread Raw
In response to C++Builder table exist  (Charl Roux <charl.roux@hotmail.com>)
List pgsql-general
On 13/03/2013 10:59, Charl Roux wrote:
> Hi,
>
> I have migrated from MySQL to PostgreSQL. I am running on WindowsXP SP3,
> C++Builder6, PostgreSQL9.2, pgExpress4.6(database driver)
> I have the following scenarion. If my applications starts up, it will
> test if a certain table exists within the database. If not, it will
> create the table, else it will not re-create the table. This worked fine
> when I used MySQL, but with PostgreSQL not. The first time that I run
> the application, I do not get an error and the table is created. The
> second time I run the application, the application gives an error that
> the table already exists. This means that my method of testing if the
> table does exist, does not work with PostgreSQL, with the following
> message: ERROR: relation "querybackup" already exists
> My code is as follows:

Well, if the table already exists and you try to create it, you're
naturally going to get an error; so you'll need to check for its
existence first. You probably want to do:

  create table if not exists querybackup ....

>
> void __fastcall TfrmMain::FormCreate(TObject *Sender)
> {
>   int errorCode;
>   TStringList *tableList = new TStringList;
>   frmDataModule->eyeConnection->GetTableNames(tableList);
>
>   // create queryBackup table if does not exist
>   AnsiString SQL = "CREATE TABLE queryBackup( queryName VARCHAR(30)
> PRIMARY KEY,query VARCHAR(10000))";

You could just use the "text" type for the "query" column, and then you
don't have to worry about the length of data going into it; the downside
is that in Delphi/C++ Builder I think it gets mapped to a memo type
rather than a string.

Ray.

--
Raymond O'Donnell :: Galway :: Ireland
rod@iol.ie


pgsql-general by date:

Previous
From: Charl Roux
Date:
Subject: C++Builder table exist
Next
From: Raymond O'Donnell
Date:
Subject: Re: C++Builder table exist