[pgsqlclient-checkins] pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient PgResponsePacket.
Status: Inactive
Brought to you by:
carlosga_fb
From: <car...@us...> - 2004-01-03 15:43:48
|
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: |