11. Как в Delphi управлять транзакциями?
В Delphi может управлять транзакции так:
1. Implicitly — сам стартует и коммитит транзакции по необходимости, когда программа вызывает метод Post .
2. Explicitly —
1. StartTransaction , Commit & RollBack методы TDatabase .
2. При помощи SQL запросов через TQuery — это зависит от конкретного SQL сервера.
Неявные (1) транзакции выполняют TTable & TQuery .
Для явных (2.1) транзакций требуется TDatabase .
Для явных (2.2) транзакций требуется TQuery .
Важно:
При определении параметров драйвера SQLPASSTHRU MODE - определяет будут ли passthrough SQL (PSQL) & стандартные вызовы BDE (BDEC) использовать один и тот же connect к SQL серверу.
Возможные варианты:
1. NOT SHARED — PSQL & BDEC используют разные соединения с базой и следовательно влияют (интерферируют) друг на друга также как разные пользователи одной базы (см. Transaction isolation levels)
2. SHARED:
1. SHARED AUTOCOMMIT — PSQL & BDEC используют одно соединение с базой, каждый PSQL запрос автоматически коммитятся.
2. SHARED NOAUTOCOMMIT — PSQL & BDEC используют одно соединение с базой, PSQL запросы коммитятся 'вручную' (способом 2.1).
Еще важнее:
Если Вы все-таки решили управлять транзакциями при помощи SQL запросов через TQuery , то SQLPASSTHRU MODE должно быть NOT SHARED, иначе Implicit & Explicit транзакции могут влиять друг на друга и привести к 'неожиданным результатам'!
12. Использование формата Access 2.0 в Delphi.
Подробное описание подключения:
• Откройте Windows Control Panel, откройте икону ODBC.
• Добавьте драйвер Access в список доступных, если он не указан в списке текущих драйверов.
• Укажите какое-либо имя в "Data Source Name".
• Выберите файл БД кнопкой Select Database.
• Если вы хотите создать новый — выполните пункт Create Database
• Запустите Database Engine Configuration
• Нажмите кнопку New ODBC Driver
• Выберите драйвер типа ACCESS DATA
• В качестве Default Data Source Name выберите предложенное.
• Создайте новый псевдоним в разделе Alias
• Укажите тип драйвера, путь и имя к нужному файлу БД Access.
• Сохраните изменения и закройте Database Engine Configuration
Примечание: избегайте русских названий имен таблиц, использования пробела в именах таблиц, а также русских имен полей в DB Access.
13. Можно ли при помощи Delphi реализовывать проекты, не имеющие отношения к базам данных? Если да, то имеет ли это смысл?
В таком случае стоит воспользоваться вариантом Delphi Desktop или Developer. Выигрыш по скорости разработки очевидно будет значительным; в частности, разработка интерфейса программы под Windows производится действительно скоростными методами. Хороший пример — Screen Saver для Windows.
Общие вопросы по Delphi и данному FAQ (часть 2)
Базы данных — компоненты и VCL.
1. Какие визуальные компоненты для работы с данными входят в Delphi?
Различные версии Delphi содержат следующие наборы компонентов:
Компоненты |
Краткое описание |
Версии Delphi |
TDBGrid |
Представление данных в виде таблицы (очень сложный и наиболее популярный компонент) |
1 2 3 |
TDBEdit |
Редактирования одного поля |
1 2 3 |
TDBNavigator |
Как видно из названия, компонент позволяет перемещаться по таблице |
1 2 3 |
TDBLabel |
Статическое отображение содержимого поля |
1 2 3 |
TDBMemo |
Редактирования текста в поле типа BLOB |
1 2 3 |
TDBImage |
Отображение картинок из BLOB-а |
1 2 3 |
TDBRadioGroup, TDBCheckBox |
Дополнительные средства отображения данных |
1 2 3 |
TDBComboBox, TDBListBox |
Упрощают ввод данных, предлагая несколько заранее определенных вариантов |
1 2 3 |
TDBLookupListBox, TDBLookupComboBox |
То же самое, но возможные варианты выбираются из другой таблички |
1 2 3 |
TDBCtrlGrid |
Вариант представления записей с произвольным расположением полей |
2 3 |
TDBChart |
Компонент для построение графиков и диаграмм на основании данных, хранящихся в таблице |
3 |
TDecisionGrid, TDecisionChart |
Компоненты для поддержки принятия решений |
3 |
2. Использование псевдонимов в запросе SQL.
Я делаю запрос по двум таблицам разных форматов, находящихся по разным псевдонимам.
SELECT DB1.Column1, DB2.Column2 FROM :Alias1:DB1, :Alias2:DB2
но в результате получаю ошибку 'неизвестный тип поля "Alias1:DB1"'
На самом деле вы получаете ошибку Unknown Keyword, следовательно всего-лишь нужно заключить псевдоним и имя таблицы в двойные кавычки.
Читать дальше