Внесение информации в набор записей
dbSetValue <ID> <Field> <Value>
Команда dbSetValue задаёт значение <Value> поля <Field> текущей (или новой) записи набора записей с идентификатором <ID>. В качестве имени поля может использоваться либо число с порядковым номером поля (начиная с нуля), либо строка с именем поля. Значение поля <Value> должно соответствовать его типу.
dbAddNew <ID>
Команда dbAddNew переводит набор записей <ID> в режим добавления новой записи. После обращения к ней в памяти создаётся новый пустой буфер записи и команды dbGetValue, dbSetValue будут обращаться к нему, а не к текущей записи. Закончить режим добавления и сохранить новую запись в таблице можно с помощью команды dbUpdate. При этом в качестве текущей восстанавливается та запись, которая была текущей до входа в режим добавления.
Команды перехода (dbMove..., dbFind...) также сбрасывают режим добавления, но при этом информация о новой записи теряется.
dbUpdate <ID>
Команда dbUpdate сохраняет в файле "DBF" таблицы изменения, внесенные в текущую (или новую) запись набора записей с идентификатором <ID> командой dbSetValue. Если перед этим набор был в режиме добавления новой записи, восстанавливает режим текущей записи.
dbDelete <ID>
Команда dbDelete удаляет из набора записей с идентификатором <ID> и из файла таблицы текущую запись. Текущей при этом становится следующая запись.
Пример:
// Создаём новый файл таблицы geos.dbf и набор записей
// В таблице будут поля: NAME – строковое
// AGE — числовое целое
// HEIGHT – числовое, два знака после точки
// MAN – логическое
DbCreate id, "geos.dbf",
"NAME", "C", 50, 0,
"AGE", "N", 3, 0,
"HEIGHT", "N", 5, 2,
"MAN", "L", 1, 0;
// Получаем различную информацию о полях
=DbFldCount(id);
4
=DbFieldNum(id,"NAME");
0
=DbFieldNum(id,"MAN");
3
=DbFieldName(id,1);
"AGE"
=DbFieldType(id,"NAME");
"C"
=DbFieldSize(id,1);
3
=DbFieldPrec(id,2);
2
// Добавляем 3 записи
DbAddNew id;
DbSetValue id, "NAME", "Иванов";
DbSetValue id, "AGE", 42;
DbSetValue id, "HEIGHT", 1.75;
DbSetValue id, "MAN", 1;
DbUpdate id;
DbAddNew id;
DbSetValue id, 0 "Шубин";
DbSetValue id, 1 41;
DbSetValue id, 2 1.86;
DbSetValue id, 3 1;
DbUpdate id;
DbAddNew id;
DbSetValue id, "NAME", "Аристова";
DbSetValue id, "AGE", 18;
DbSetValue id, "HEIGHT", 1.65;
DbSetValue id, "MAN", 0;
DbUpdate id;
=DbRecCount(id); // Сколько записей в наборе ?
3
DbClose id; // Закрываем набор
// Открываем набор снова, отбирая записи, где AGE>30
DbOpen id, "geos.dbf", "AGE>30";
=DbRecCount(id); // Сколько записей в наборе ?
2
// Переустанавливаем фильтр;
DbFilter id, "!MAN";
=DbRecCount(id); // Сколько записей в наборе ?
1
// Удаляем текущую запись
DbDelete id;
=DbRecCount(id); // Сколько записей в наборе ?
0
DbClose id; // Закрываем набор
// Открываем без фильтра
DbOpen id, "geos.dbf";
=DbRecCount(id); // Сколько записей в наборе ?
2