[pgsqlclient-checkins] pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient PgStatement.cs,1.
Status: Inactive
Brought to you by:
carlosga_fb
From: <car...@us...> - 2003-12-02 11:38:48
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient In directory sc8-pr-cvs1:/tmp/cvs-serv27985 Modified Files: PgStatement.cs Log Message: 2003-12-02 Carlos Guzmán Álvarez <car...@te...> * source/PgCommand.cs: * source/NPgClient/PgStatement.cs: - Minor uimprovement to prepare process. Index: PgStatement.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgStatement.cs,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** PgStatement.cs 26 Nov 2003 14:59:12 -0000 1.14 --- PgStatement.cs 2 Dec 2003 11:38:44 -0000 1.15 *************** *** 180,183 **** --- 180,212 ---- #region METHODS + public void Prepare() + { + lock (db) + { + this.Parse(); + this.Describe(); + + // Flush pending messages + db.Flush(); + + // Receive Parse response + PgResponsePacket response = new PgResponsePacket(); + while (response.Message != PgBackendCodes.PARSE_COMPLETE) + { + response = db.ReceiveResponsePacket(); + processSqlPacket(response); + } + + // Receive Describe response + response = new PgResponsePacket(); + while ((response.Message != PgBackendCodes.ROW_DESCRIPTION && + response.Message != PgBackendCodes.NODATA)) + { + response = db.ReceiveResponsePacket(); + processSqlPacket(response); + } + } + } + public void Parse() { *************** *** 186,189 **** --- 215,226 ---- try { + // Clear actual row list + rows = null; + rowIndex = 0; + + // Initialize RowDescriptor and Parameters + rowDescriptor = new PgRowDescriptor(0); + parameters = new PgParameter[0]; + PgOutputPacket packet = new PgOutputPacket(db.Settings.Encoding); *************** *** 194,219 **** // Send packet to the server db.SendData(packet.GetPacketBytes(PgFrontEndCodes.PARSE)); - - // Flush pending messages - db.Flush(); - - // Read until PARSE COMPLETE message is received - PgResponsePacket response = new PgResponsePacket(); - while (response.Message != PgBackendCodes.PARSE_COMPLETE) - { - response = db.ReceiveResponsePacket(); - processSqlPacket(response); - } - - // Clear actual row list - rows = null; - rowIndex = 0; // Update status this.status = PgStatementStatus.Parsed; - - // Initialize RowDescriptor and Parameters - rowDescriptor = new PgRowDescriptor(0); - parameters = new PgParameter[0]; } catch (PgClientException ex) --- 231,237 ---- *************** *** 252,275 **** // Send packet to the server db.SendData(packet.GetPacketBytes(PgFrontEndCodes.DESCRIBE)); - - // Flush pending messages - db.Flush(); - - // Receive response - PgResponsePacket response = new PgResponsePacket(); - while (response.Message != PgBackendCodes.ROW_DESCRIPTION && - response.Message != PgBackendCodes.NODATA) - { - response = db.ReceiveResponsePacket(); - processSqlPacket(response); - } - - /* - // Set a default row descriptor for NODATA query result - if (response.Message == PgBackendCodes.NODATA) - { - rowDescriptor = new PgRowDescriptor(0); - } - */ // Update status --- 270,273 ---- *************** *** 660,668 **** case PgBackendCodes.BIND_COMPLETE: - break; - case PgBackendCodes.PARSE_COMPLETE: - break; - case PgBackendCodes.CLOSE_COMPLETE: break; --- 658,662 ---- |