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 ----
|