Обсуждение: ADO.NET ExecuteReader returns no rows

Поиск
Список
Период
Сортировка

ADO.NET ExecuteReader returns no rows

От
roman.motyka@gmail.com
Дата:
Hello,

Someitmes ExectueReader doesn't return rows, if I repeat the method it
does!!

I've got code like that:
            using (NpgsqlDataReader readFrames =
command.ExecuteReader())
            {
                if (!readFrames.HasRows)
                {
                    System.Diagnostics.Debugger.Break();
                }

                while (readFrames.Read())
                {
                    currentMaxDate =
(DateTime)readFrames["idvideodate"];
                    mediaData.Add((byte[])readFrames["mediabinary"]);
                }

                readFrames.Close();
            }

That part of code executes multiple times and always, soon or later
I've got reader without rows.. When I execute that statement again:
the same parameters - ExecuteReader() returns rows (as it should).

The problem occurs in both versions: 0.71 and in 1.0 beta 2.
I've also tried commercial driver from Core Lab.. with the same
result.
PostgresSQL version 8.1.2.

The field idvideodate is Timestamp and mediabinary is bytea.

Probably it's  a problem not with ado.net driver, but with
PostgressSQL but how to cope with that?

Roman.


Re: ADO.NET ExecuteReader returns no rows

От
roman.motyka@gmail.com
Дата:
I've compared Debug log between correct and wrong activity:
Good activity:
2006-03-24 16:30:36    2632    Debug    String written: select * from
getvideodata(2::int4, 1::int4, '2006-03-24 16:30:31.400000'::timestamp,
1::int4) AS (idvideodate timestamp, mediabinary bytea).
2006-03-24 16:30:36    2632    Debug    Entering
NpgsqlState.ProcessBackendResponses()
2006-03-24 16:30:36    2632    Debug    RowDescription message received from
server.
2006-03-24 16:30:36    2632    Debug    Entering
NpgsqlRowDescription.ReadFromStream_Ver_3()
2006-03-24 16:30:36    2632    Debug    Entering PGUtil.ReadString()
2006-03-24 16:30:36    2632    Debug    String read: idvideodate.
2006-03-24 16:30:36    2632    Debug    Entering PGUtil.ReadString()
2006-03-24 16:30:36    2632    Debug    String read: mediabinary.
2006-03-24 16:30:36    2632    Debug    DataRow message received from server.
2006-03-24 16:30:36    2632    Debug    Entering NpgsqlAsciiRow.NpgsqlAsciiRow()
2006-03-24 16:30:36    2632    Debug    Entering
NpgsqlAsciiRow.ReadFromStream_Ver_3()
2006-03-24 16:30:36    2632    Debug    Entering
NpgsqlTypesHelper.ConvertBackendStringToSystemType()
2006-03-24 16:30:37    2632    Debug    Entering
NpgsqlTypesHelper.ConvertBackendStringToSystemType()
2006-03-24 16:30:38    2632    Debug    Entering PGUtil.ReadString()
2006-03-24 16:30:38    2632    Debug    String read: SELECT.
2006-03-24 16:30:38    2632    Debug    CompletedResponse message from Server:
SELECT.
2006-03-24 16:30:38    2632    Debug    ReadyForQuery message received from
server.
2006-03-24 16:30:38    2632    Debug    Entering PGUtil.ReadString()
2006-03-24 16:30:38    2632    Debug    String read: I.
...
Wrong activity:
2006-03-24 16:30:38    2632    Debug    String written: select * from
getvideodata(2::int4, 1::int4, '2006-03-24 16:30:35.400000'::timestamp,
1::int4) AS (idvideodate timestamp, mediabinary bytea).
2006-03-24 16:30:38    2632    Debug    Entering
NpgsqlState.ProcessBackendResponses()
2006-03-24 16:30:38    2632    Debug    RowDescription message received from
server.
2006-03-24 16:30:38    2632    Debug    Entering
NpgsqlRowDescription.ReadFromStream_Ver_3()
2006-03-24 16:30:38    2632    Debug    Entering PGUtil.ReadString()
2006-03-24 16:30:38    2632    Debug    String read: idvideodate.
2006-03-24 16:30:38    2632    Debug    Entering PGUtil.ReadString()
2006-03-24 16:30:38    2632    Debug    String read: mediabinary.
2006-03-24 16:30:38    2632    Debug    Entering PGUtil.ReadString()
2006-03-24 16:30:38    2632    Debug    String read: SELECT.
2006-03-24 16:30:38    2632    Debug    CompletedResponse message from Server:
SELECT.
2006-03-24 16:30:38    2632    Debug    ReadyForQuery message received from
server.
2006-03-24 16:30:38    2632    Debug    Entering PGUtil.ReadString()
2006-03-24 16:30:38    2632    Debug    String read: I.
2006-03-24 16:30:38    2632    Debug    Entering NpgsqlState.ChangeState()
2006-03-24 16:30:38    2632    Debug    Entering
NpgsqlCommand.UpdateOutputParameters()
2006-03-24 16:30:38    2632    Debug    Get NpgsqlCommand.Connection
2006-03-24 16:30:48    2632    Debug    Entering NpgsqlDataReader.Read()
2006-03-24 16:30:48    2632    Debug    Entering NpgsqlDataReader.Dispose()
2006-03-24 16:30:48    2632    Debug    Entering NpgsqlConnection.Close()