Thread: ...
Hello!
I have a code (libpq):
char textbuffer[120];
res = PQexec(conn, "COPY table_name(\"serial_column",\"int_column",\"bytea_column\") FROM STDIN");
if(PQresultStatus(res) == PGRES_COPY_IN)
{
for(int n=0; n < 10; n++) {
sprintf(textbuffer, "1\t%i\t'text'\n", n);
int copydatares = PQputCopyData(conn, textbuffer, strlen(textbuffer));
}
PQputCopyEnd(conn, NULL);
}
For text data it's ok, but binary data may have '\n' or '\t' characters.
How correctly write int STDIN binary data?
Help me please!
Thanks in advance.
I have a code (libpq):
char textbuffer[120];
res = PQexec(conn, "COPY table_name(\"serial_column",\"int_column",\"bytea_column\") FROM STDIN");
if(PQresultStatus(res) == PGRES_COPY_IN)
{
for(int n=0; n < 10; n++) {
sprintf(textbuffer, "1\t%i\t'text'\n", n);
int copydatares = PQputCopyData(conn, textbuffer, strlen(textbuffer));
}
PQputCopyEnd(conn, NULL);
}
For text data it's ok, but binary data may have '\n' or '\t' characters.
How correctly write int STDIN binary data?
Help me please!
Thanks in advance.
On Tue, Jun 7, 2011 at 7:46 AM, Юрий EGO <mail_ego@list.ru> wrote: > Hello! > > I have a code (libpq): > > char textbuffer[120]; > res = PQexec(conn, "COPY > table_name(\"serial_column",\"int_column",\"bytea_column\") FROM STDIN"); > if(PQresultStatus(res) == PGRES_COPY_IN) > { > for(int n=0; n < 10; n++) { > sprintf(textbuffer, "1\t%i\t'text'\n", n); > int copydatares = PQputCopyData(conn, textbuffer, strlen(textbuffer)); > } > PQputCopyEnd(conn, NULL); > } > > For text data it's ok, but binary data may have '\n' or '\t' characters. > How correctly write int STDIN binary data? the binary format doesn't use delimiters like that. you have to basically study the format if you want to craft data that wasn't produced by the server :(. merlin