Обсуждение: Postgresql 9.0.8 - ECPG - COPY FROM returning COUNT
Dear List, I'm trying to copy an unknown amount of data from a file to a table unsing a copy command. This is working without any problems. Now I want to get the number of copied rows. In psql this is retuned as a text 'COPY XXX' How can I get this in ECPG? Using a prepared DELETE- or INSERT- statement I can simply execute the statement INTO a var. EXEC SQL BEGIN DECLARE SECTION;const char *stmt_1 = "DELETE FROM my_table;";int myVar; EXEC SQL END DECLARE SECTION; EXEC SQL PREPARE stmt_1 FROM :stmt_1; EXECUTE stmt_1 INTO :myVar; Var now contains the number of deleted rows. But... EXEC SQL BEGIN DECLARE SECTION;const char *stmt_1 = "COPY my_table FROM '/tmp/file.data';";int myVar; EXEC SQL END DECLARE SECTION; EXEC SQL PREPARE stmt_1 FROM :stmt_1; EXECUTE stmt_1 INTO :myVar; mvVar is always 0. Any suggestions how to get the numer? Mit freundlichen Grüßen aus Krefeld, With best regards from Krefeld, CS-Lab GmbH i. A. René Grün E-Mail: rgr@cslab.de Fon: +49 2151 72949-0 Fax: +49 2151 72949-9 --- CS-Lab GmbH (Creativ Software Labor GmbH) Römerstr. 15 D-47809 Krefeld Geschäftsführer: Dieter Schmitz Registergericht Krefeld, HRB 12257, USt.-ID: DE 263 834 180
On Fri, May 24, 2013 at 04:42:21PM +0200, Rene Grün wrote: > In psql this is retuned as a text 'COPY XXX' > > How can I get this in ECPG? sqlca.sqlerrd[2] is supposed to carry the "number of rows processed after an INSERT, UPDATE or DELETE statement". Should work in your case, too. > Mit freundlichen Grüßen aus Krefeld, > With best regards from Krefeld, Best regards from Moenchengladbach. :) Explanation for the non-locals, it's like 10 miles between the two cities. Michael -- Michael Meskes Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org) Michael at BorussiaFan dot De, Meskes at (Debian|Postgresql) dot Org Jabber: michael.meskes at gmail dot com VfL Borussia! Força Barça! Go SF 49ers! Use Debian GNU/Linux, PostgreSQL
It's working. Thanks a lot. Mit freundlichen Grüßen aus Krefeld, With best regards from Krefeld, CS-Lab GmbH i. A. René Grün E-Mail: rgr@cslab.de Fon: +49 2151 72949-0 Fax: +49 2151 72949-9 --- CS-Lab GmbH (Creativ Software Labor GmbH) Römerstr. 15 D-47809 Krefeld Geschäftsführer: Dieter Schmitz Registergericht Krefeld, HRB 12257, USt.-ID: DE 263 834 180 -----Ursprüngliche Nachricht----- Von: Michael Meskes [mailto:meskes@postgresql.org] Gesendet: Samstag, 25. Mai 2013 18:45 An: Rene Grün Cc: pgsql-interfaces@postgresql.org Betreff: [ Spamverdacht ]Re: [INTERFACES] Postgresql 9.0.8 - ECPG - COPY FROM returning COUNT On Fri, May 24, 2013 at 04:42:21PM +0200, Rene Grün wrote: > In psql this is retuned as a text 'COPY XXX' > > How can I get this in ECPG? sqlca.sqlerrd[2] is supposed to carry the "number of rows processed after an INSERT, UPDATE or DELETE statement". Shouldwork in your case, too. > Mit freundlichen Grüßen aus Krefeld, > With best regards from Krefeld, Best regards from Moenchengladbach. :) Explanation for the non-locals, it's like 10 miles between the two cities. Michael -- Michael Meskes Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org) Michael at BorussiaFan dot De, Meskes at (Debian|Postgresql)dot Org Jabber: michael.meskes at gmail dot com VfL Borussia! Força Barça! Go SF 49ers! Use Debian GNU/Linux, PostgreSQL