How to use embedded sql to define an array

From: Jeffrey Graham <jgraham(at)lincom-asg(dot)com>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: How to use embedded sql to define an array
Date: 2002-06-10 16:07:52
Message-ID: 3D04CED8.2020202@lincom-asg.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

Hello everyone,

Can someone please tell me how to declare an array of double (float8)
using esql when you
don't know how long the array is until runtime?

I have the code work for a fixed length of 10, but at run-time I might only
put 2 values or there could just as easily be 100 or 200 or 5000!

I tried several variations declaring my array as a pointer, but ecpg did
not like
any of my attempts.

Thanks,
Jeff

void myinsert(const std::vector<double>& myVector)
{
EXEC SQL BEGIN DECLARE SECTION;

/* this would be ideal but ecpg does not like it */
/* double m_data[myVector.length()]; */

/* This works but length might actually be 1 or 200! */
double m_data[10];

EXEC SQL END DECLARE SECTION;

/* stuff the sql array with data from my stl vector */
for ( unsigned int i=0; i < myVector.length(); i++ )
m_data[i] = myVector[i];

EXEC SQL
insert into eraDATA
( data )
VALUES( :m_data );
return sqlOK();
}

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Friedrich Dodt 2002-06-11 13:09:39 Re: Where is PLbash ??
Previous Message Bruce Momjian 2002-06-10 15:54:04 Re: Where is PLbash ??