Re: Function return number of affected rows

From: "Francisco Figueiredo Jr(dot)" <fxjrlists(at)yahoo(dot)com(dot)br>
To: Michael Fuhr <mike(at)fuhr(dot)org>
Cc: pgsql-interfaces(at)postgresql(dot)org
Subject: Re: Function return number of affected rows
Date: 2005-02-12 18:42:24
Message-ID: 420E4E10.6090104@yahoo.com.br
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Michael Fuhr wrote:

Hi Michael!

|
| I haven't used Npgsql, but the documentation has an example with
| the following code:
|
| NpgsqlCommand command = new NpgsqlCommand("insert into table1
values(1, 1)", conn);
| Int32 rowsaffected;
|
| try
| {
| rowsaffected = command.ExecuteNonQuery();
| }
|
| Is that what you're trying to do? Does it not work?
|

Yeap. This works perfectly.

| I downloaded the latest Npgsql source and found the following in
| ExecuteNonQuery():
|
| // The number of rows affected is in the third token for insert queries
| // and in the second token for update and delete queries.
| // In other words, it is the last token in the 0-based array.
|
| return Int32.Parse(ret_string_tokens[ret_string_tokens.Length - 1]);
|
| It looks like ExecuteNonQuery() is at least attempting to return
| the number of rows affected.
|
| Have I misunderstood what you're doing?
|

I think I didn't make myself clear enough :)

When I send the update directly, Postgresql sends me back the
CompletedResponse and I can see how many rows were affected.

But if I create a function like:

create function inserttest() returns void as ' insert into table1
values(1, 1)' language 'sql';

and I do a select * from inserttest();

I can't get the CompletedResponse saying one row was affected :(

PS.: Michael, you can talk more protocol-specific way. I'm one of the
authors of Npgsql and I do have a little bit of protocol background. I
didn't talk directly about protocol and etc because I wanted to explain
my problem first :)

Also, I did a test with psql and I could check that it also doesn't say
me how many rows were affected. Can this mean that what I want may not
be possible?

Thank you very much for your feedback Michael.

- --
Regards,

Francisco Figueiredo Jr.
Membro Fundador do Projeto MonoBrasil - MonoBrasil Project Founder Member
http://monobrasil.softwarelivre.org

- -------------
"Science without religion is lame;
religion without science is blind."

~ ~ Albert Einstein
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iQEVAwUBQg5OEP7iFmsNzeXfAQLrAAf/XBi3nKXcye0S+AA4+jlKjMvJ6Vz0AOr+
/wRbBo7qJo0Zh7kdLC+ClYTeLBmVUUwMwOjqucJ+RqbrXHKbK0bSzbeKIhtRduAG
6pK3k2GUPYPy33EbEcPF8cBeD5E07xSgUEIPbt4ncKVU8IWVIcoTRDUPhQpCY9dF
2WQ5ZbFpvk4nEgrLxQLU08WVahTnqiqs+9xpLHw88sxeIfaNTM7Eow4doV//s2I7
2lKerVIyQrQ0RECHzRGwHTX93wa9s3h+sfbFDy+ZzTT3st4KXknbqqOFTEuwSMRd
24shXMmWZ8WzWU8bKrPmKG5ZICpNhwMg3dfWSbkjRETCkXsZeUQenA==
=KIXu
-----END PGP SIGNATURE-----

In response to

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Tom Lane 2005-02-12 19:08:00 Re: Function return number of affected rows
Previous Message Guy Rouillier 2005-02-11 04:18:00 Re: Pgsql conditions do not short circuit?