Функция dbmoveprev
Функция называется dbmoveprev. Работает просто: ты вызываешь dbmoveprev(table) — и указатель в таблице сдвигается назад на одну запись. Всё.
Вот пример живого кода:
table = opentable(dbid, "моя_таблица");
dbseek(dbid, 124);
row=readrowdb(table);
dbmoveprev(table);
row1=readrowdb(table);
Что это значит по факту? Ты только что сказался "давай шаг назад", и теперь читаешь (или редактируешь) предыдущую строчку в таблице. Без фокусов, без магии. Просто навигация в лоб.
Зачем это может понадобиться? Например, ты итерируешься по данным, проверяешь что-то и хочешь вернуться, чтобы делать правки.
Или тебе важно посмотреть, что было до текущей записи. Вот здесь dbmoveprev и выручает.
Работает она не в вакууме. У таблицы может быть ограничение на перемещение — система скажет: "стой, назад нельзя!"
Такое бывает, если, например, таблица — только для чтения или есть какие-то ограничения безопасности.
Как это реализовано под капотом? Обычно с помощью курсоров или индексных указателей. Вариации есть — все зависит от конкретной базы и от того, как ты её строил.
Но снаружи тебе об этом можно не думать: функция прикрывает всё своей обёрткой.
Итог? Это маленькое, но полезное средство для тех, кто часто работает с таблицами и хочет больше контроля — без лишнего кода, без велосипедов.
Один вызов — и ты уже на шаг назад, как по стрелке "Назад" в браузере. Удобно, просто, по делу.
Справка по встроенным функциям
Правила программирования скриптов
Опции программы
Цветовые константы