Beispiel #1
0
        public static void WriteField(IBedValueReader value, BinaryWriter fw)
        {
            var type = value.GetFieldType();

            if (type == TypeStorage.Null)
            {
                fw.Write((byte)'\\');
                fw.Write((byte)'N');
            }
            else if (type == TypeStorage.ByteArray)
            {
                foreach (byte b in value.GetByteArray())
                {
                    var sb = new StringBuilder();
                    StringTool.EncodeOct(b, sb);
                    fw.Write('\\');
                    fw.Write('\\');
                    fw.Write(Encoding.UTF8.GetBytes(sb.ToString()));
                }
            }
            else if (type.IsNumber())
            {
                if (type.IsInteger())
                {
                    fw.Write(Encoding.UTF8.GetBytes(value.GetIntegerValue().ToString()));
                }
                else
                {
                    fw.Write(Encoding.UTF8.GetBytes(value.GetRealValue().ToString(CultureInfo.InvariantCulture)));
                }
            }
            else
            {
                string s = String.Format(CultureInfo.InvariantCulture, "{0}", value.GetValue());
                s = s.Replace("\\", "\\\\");
                s = s.Replace("\t", "\\t");
                s = s.Replace("\n", "\\n");
                s = s.Replace("\r", "\\r");
                fw.Write(Encoding.UTF8.GetBytes(s));
            }
        }
Beispiel #2
0
 public override void SetByteArray(byte[] value)
 {
     m_text = "'" + StringTool.EncodeOct(value, "\\\\") + "'::bytea";
 }