Советы по Delphi. Версия 1.4.3 от 1.1.2001
Шрифт:
Физическое имя/путь будет содержаться в поле szPhyName структуры DBDesc.
Возможные
DBIERR_NONE Описание базы данных для pszName было успешно извлечено. DBIERR_OBJNOTFOUND База данных, указанная в pszName, не была обнаружена.
Приведенный ниже пример кода показывает как можно получить физический путь для компонента TTable, использующего псевдоним DBDemos:
Cancel в связанных таблицах
Delphi 1
В книге 'Delphi unleashed' на странице 520 автор написал:
'…, вы можете делать откат все время до тех пор, пока прямо или косвенно не сделаете постинг данных.'
Моя проблема дважды возникала в случае ExTable.Edit в различных процедурах. Код был примерно таким:
Процедура CancelSpdBtnClick была вызвана после этих двух процедур. Действительно, прежде, чем делать откат, постинг был косвенно вызван между двумя вызовами ExTable.Edit. Теперь после такой модификации все работает как часы.
Отображение формы ввода в БД CUSTOMER из рабочей формы ORDER
Delphi 1
В моем проекте имеется подобная функция, определяющая количество элементов:
В обработчике события OnClick я создаю форму ввода данных и вывожу ее командой .ShowModal. Затем я проверяю результат .ModalResult – и, если он равен mrOk, я передаю запись, в противном случае делаю отмену.
Я поместил имя модуля с формой ввода данных в список используемых модулей главной формы. Вот базовая схема моего кода:
Отображение определенных полей БД
Delphi 1
Вот что можно сделать во время выполнения программы:
или
Из базы данных в переменные
Delphi 1
Примерно так вы можете программным путем извлечь содержимое поля:
или
или
В действительности здесь вы получаете объект TField от объекта TTable (или TQuery), и затем вызываете соответствующий метод объекта TField для получения самих данных. Вы можете также изменить значение самого поля, но только в случае, если объект TTable находится в режиме вставки (Insert) или редактирования (Edit). Члены AsFloat, AsInteger, AsDateTime и AsString в действительности являются свойствами, и как таковые также могут принимать значения. С помощью Редактора Полей (Fields Editor, для вызова которого достаточно дважды щелкнуть на объекте TTable или TQuery) также возможно создание объектов-полей. Эти объекты могут быть использованы вместо получения их каждый раз от объекта TTable или TQuery.
Получение информации о таблице
Вам нужно воспользоваться свойством FieldDefs. В следующем примере список полей и их соответствующий размер передается компоненту TMemo (расположенному на форме) с именем Memo1:
end;
Если вам просто нужны имена полей (FieldNames), то используйте метод TTable GetFieldNames:
GetIndexNames для получения имен индексов: