[pgsqlclient-checkins] pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient PgStatement.cs,1.
Status: Inactive
Brought to you by:
carlosga_fb
From: <car...@us...> - 2004-01-03 15:43:13
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient In directory sc8-pr-cvs1:/tmp/cvs-serv26115 Modified Files: PgStatement.cs Log Message: Updated file Index: PgStatement.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgStatement.cs,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** PgStatement.cs 18 Dec 2003 10:27:32 -0000 1.20 --- PgStatement.cs 3 Jan 2004 15:43:07 -0000 1.21 *************** *** 33,36 **** --- 33,37 ---- Binded, Executed, + OnQuery, Error } *************** *** 430,433 **** --- 431,436 ---- public void Query() { + ArrayList innerRows = new ArrayList(); + lock (db) { *************** *** 441,444 **** --- 444,453 ---- db.SendData(packet.GetPacketBytes(PgFrontEndCodes.QUERY)); + // Update Status + this.status = PgStatementStatus.OnQuery; + + // Set fetch size + this.fetchSize = 1; + // Receive response PgResponsePacket response = new PgResponsePacket(); *************** *** 447,451 **** --- 456,482 ---- response = db.ReceiveResponsePacket(); processSqlPacket(response); + + if (this.hasRows && + response.Message == PgBackendCodes.DATAROW) + { + innerRows.Add(this.rows[0]); + this.rowIndex = 0; + } } + + if (this.hasRows) + { + // Obtain all the rows + this.rows = (object[])innerRows.ToArray(typeof(object)); + + // reset rowIndex + this.rowIndex = 0; + + // Set allRowsFetched flag + this.allRowsFetched = true; + } + + // reset fetch size + this.fetchSize = 200; // Update status *************** *** 487,490 **** --- 518,522 ---- if (this.rows != null && (this.rowIndex >= this.fetchSize || + this.rowIndex >= this.rows.Length || this.rows[this.rowIndex] == null)) { *************** *** 720,726 **** default: ! values[i] = packet.ReadValue( ! rowDescriptor.Fields[i].DataType, ! length); break; } --- 752,767 ---- default: ! if (this.status == PgStatementStatus.OnQuery) ! { ! values[i] = packet.ReadValueFromString( ! rowDescriptor.Fields[i].DataType, ! length); ! } ! else ! { ! values[i] = packet.ReadValue( ! rowDescriptor.Fields[i].DataType, ! length); ! } break; } |