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++; } }
public IEnumerable <ICdlRecord> EnumRows(ArrayDataRecord record, string query, int subSetColumnCount) { using (var selcmd = _conn.CreateCommand()) { selcmd.CommandText = query; using (var reader = selcmd.ExecuteReader()) { while (reader.Read()) { for (int i = 0; i < subSetColumnCount; i++) { record.SeekValue(i); var type = (TypeStorage)reader.GetInt32(i * 2); StorageTool.ReadValue(reader, i * 2 + 1, type, record); } yield return(record); } } } }
public CdlTable LoadTableData(string query) { var table = new CdlTable(_table); using (var selcmd = _conn.CreateCommand()) { selcmd.CommandText = query; using (var reader = selcmd.ExecuteReader()) { while (reader.Read()) { var row = new ArrayDataRecord(_table); for (int i = 0; i < _table.ColumnCount; i++) { row.SeekValue(i); var type = (TypeStorage)reader.GetInt32(i * 2); StorageTool.ReadValue(reader, i * 2 + 1, type, row); } table.AddRowInternal(row); } } } return(table); }