示例#1
0
        public void Write(ICdlRecord row)
        {
            WantTransaction();

            var sb = new StringBuilder();

            sb.AppendFormat("insert into {0} ({1}) values (", TABLE_NAME, ColumnsText);

            for (int i = 0; i < row.FieldCount; i++)
            {
                row.ReadValue(i);
                if (i > 0)
                {
                    sb.Append(",");
                }
                sb.Append((int)row.GetFieldType());
                sb.Append(",");
                string sqldata;
                StorageTool.GetValueAsSqlLiteral(row, out sqldata);
                sb.Append(sqldata);
            }
            sb.Append(")");

            using (var inscmd = _conn.CreateCommand())
            {
                inscmd.Transaction = _tran;
                inscmd.CommandText = sb.ToString().Replace("\0", "\\0");
                inscmd.ExecuteNonQuery();
                _rowCount++;
            }
        }
示例#2
0
 public TypeStorage GetFieldType()
 {
     if (m_fields[m_curField].Changed)
     {
         if (m_fields[m_curField].Value == null)
         {
             return(TypeStorage.Null);
         }
         return(GetDefaultStorage(m_curField));
     }
     if (m_original != null)
     {
         return(m_original.GetFieldType());
     }
     return(TypeStorage.Null);
 }
示例#3
0
 public TypeStorage GetFieldType()
 {
     return(RefObject.GetFieldType());
 }
示例#4
0
        public void Write(ICdlRecord row)
        {
            WantTransaction();

            var sb = new StringBuilder();
            sb.AppendFormat("insert into {0} ({1}) values (", TABLE_NAME, ColumnsText);

            for (int i = 0; i < row.FieldCount; i++)
            {
                row.ReadValue(i);
                if (i > 0) sb.Append(",");
                sb.Append((int)row.GetFieldType());
                sb.Append(",");
                string sqldata;
                StorageTool.GetValueAsSqlLiteral(row, out sqldata);
                sb.Append(sqldata);
            }
            sb.Append(")");

            using (var inscmd = _conn.CreateCommand())
            {
                inscmd.Transaction = _tran;
                inscmd.CommandText = sb.ToString().Replace("\0", "\\0");
                inscmd.ExecuteNonQuery();
                _rowCount++;
            }
        }
示例#5
0
 public string GetDataTypeName(int i)
 {
     WantField(i);
     return(m_record.GetFieldType().GetDotNetType(false).FullName);
 }