Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Подключение к InterBase  (Прочитано 8195 раз)
0 Пользователей и 1 Гость смотрят эту тему.
akylina
Гость
« : 23-04-2007 04:07 » 

Всем привет.
Господа знатоки, помогите пожалуйста начинающему. У меня такая проблема. Через Delphi подключаюсь к базе interbase. База открывается, но только для чтения. Как прописать открытие базы для модификации?  Здесь была моя ладья...
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #1 : 23-04-2007 11:48 » new

База всегда открывается на чтение / запись. чтобы получить в дельфях read-only транзакцию - надо предпринять определённые телодвижения. а если сделать всё по умолчанию - то база будет открыта на чтение / запись.

но. подключение к базе состоит из нескольких этапов. во-первых, это сама база ( TIbDatabase). к ней цепляется транзакция (TIbTransaction). к транзакции цепляется один из потомков TDataSet - TIbQuery либо TIbTable. к ним, в свою очередь, цепляется источник данных - TDataSource. и вот уже к нему - один из db-aware визуальных контролов, например - TDbGrid.

в большинстве этих компонентов можно выставить свойство read-only в TRUE, получив, таким образом, базу, которую невозможно поменять. хотя технически, повторюсь, созданный запрос на изменения и скормленный напрямую в движок безо всяких борландовских компонентов - пройдёт ВСЕГДА, вообще говоря, ограничить запись на уровне подключения в IB - достаточно нетривиальная задача.

теперь, по вашему вопросу. первое, что приходит на ум - это то, что вы используете компонент TIBQuery (либо его Фибовский аналог). по умолчанию результат запроса (TIbQuery) - редактировать нельзя. Для простых запросов это решается установкой свойства RequestLive в TRUE. для сложных запросов - надо цеплять TUpdateSql и настраивать в нём запросы на модификацию / удаление данных.

альтернативы:

1. использовать TIbTable.
2. все изменения проводить отдельным запросом (TIbSql), после которого каждый раз переоткрывать основной запрос.

если у вас используется НЕ TIbQuery - то опишите подробно логику подключения (все компоненты, участвующие в "доставке" пользователю данных из БД.
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines