Update of /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient
In directory sc8-pr-cvs1:/tmp/cvs-serv26231
Modified Files:
PgResponsePacket.cs
Log Message:
2004-01-03 Carlos Guzmán Álvarez <car...@te...>
* source/PgCommand.cs:
* source/NPgClient/PgStatement.cs:
* source/NPgClient/PgResponsePacket.cs:
- Added an initial implementation of the simple query protocol
that will be available using an SIMPLE_PROTOCOL define at build time.
Index: PgResponsePacket.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgResponsePacket.cs,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** PgResponsePacket.cs 18 Dec 2003 10:27:32 -0000 1.22
--- PgResponsePacket.cs 3 Jan 2004 15:43:45 -0000 1.23
***************
*** 441,446 ****
case PgDataType.Decimal:
! string numericValue = this.ReadString(length);
! return Decimal.Parse(numericValue, NumberFormatInfo.InvariantInfo);
case PgDataType.Currency:
--- 441,447 ----
case PgDataType.Decimal:
! return Decimal.Parse(
! this.ReadString(length),
! NumberFormatInfo.InvariantInfo);
case PgDataType.Currency:
***************
*** 500,503 ****
--- 501,607 ----
case PgDataType.Path:
return this.ReadPath();
+
+ default:
+ return ReadBytes(length);
+ }
+ }
+
+ public object ReadValueFromString(PgType type, int length)
+ {
+ string stringValue = this.ReadString(length);
+
+ switch (type.DataType)
+ {
+ case PgDataType.Array:
+ return null;
+
+ case PgDataType.Vector:
+ return null;
+
+ case PgDataType.Binary:
+ return null;
+
+ case PgDataType.Char:
+ case PgDataType.VarChar:
+ return stringValue;
+
+ case PgDataType.Boolean:
+ switch (stringValue.ToLower())
+ {
+ case "t":
+ case "true":
+ case "y":
+ case "yes":
+ case "1":
+ return true;
+
+ default:
+ return false;
+ }
+
+ case PgDataType.Byte:
+ return Byte.Parse(stringValue);
+
+ case PgDataType.Decimal:
+ return Decimal.Parse(
+ stringValue,
+ NumberFormatInfo.InvariantInfo);
+
+ case PgDataType.Currency:
+ case PgDataType.Float:
+ return Single.Parse(
+ stringValue,
+ NumberFormatInfo.InvariantInfo);
+
+ case PgDataType.Double:
+ return Double.Parse(
+ stringValue,
+ NumberFormatInfo.InvariantInfo);
+
+ case PgDataType.Int2:
+ return Int16.Parse(
+ stringValue,
+ NumberFormatInfo.InvariantInfo);
+
+ case PgDataType.Int4:
+ return Int32.Parse(
+ stringValue,
+ NumberFormatInfo.InvariantInfo);
+
+ case PgDataType.Int8:
+ return Int64.Parse(
+ stringValue,
+ NumberFormatInfo.InvariantInfo);
+
+ case PgDataType.Interval:
+ return null;
+
+ case PgDataType.Date:
+ case PgDataType.Timestamp:
+ case PgDataType.Time:
+ case PgDataType.TimeWithTZ:
+ case PgDataType.TimestampWithTZ:
+ return DateTime.Parse(stringValue);
+
+ case PgDataType.Point:
+ return PgPoint.Parse(stringValue);
+
+ case PgDataType.Circle:
+ return PgCircle.Parse(stringValue);
+
+ case PgDataType.Line:
+ return PgLine.Parse(stringValue);
+
+ case PgDataType.LSeg:
+ return PgLSeg.Parse(stringValue);
+
+ case PgDataType.Box:
+ return PgBox.Parse(stringValue);
+
+ case PgDataType.Polygon:
+ return PgPolygon.Parse(stringValue);
+
+ case PgDataType.Path:
+ return PgPath.Parse(stringValue);
default:
|