Внесение информации в набор записей
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