![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вставка данных в базу [D7]
N&N © (2004-07-01 11:35:00)Уважаемые Мастера, подскажите, пожалуйста, как жить дальше.
Суть проблемы проста: не могу вставить данные в базу.
Все делаю по букварю: на форму поместил IBQuery1, IBQuery1, IBDatabase1, IBTransaction1 и несколько DBEdit’ов. Связал, как рекомендовано, в просмотре работает без проблем, а когда дело доходит до вставки- вставлять не хочет.
Обработчик на кнопку “Записать” такой:
IBTransaction1.StartTransaction;
IBQuery1.Insert;
IBQuery1.Fields[0].AsString:=DBEdit1.Text;
........
IBQuery1.Fields[n].AsString:=DBEditN.Text;
IBQuery1.Post;
IBTransaction1.Commit;
А в ответ “ Transaction is active” .
Попробовал дополнить форму компонентом IBUpdateSQL, прописал свойства InsertSql, ModifySql- толку нет, тот же результать.
У меня Delphi-7 и FireBird-1,5.
Скажите, пожалуйста, как быть?
Соловьев (2004-07-05 09:51:00) [1]
> ЮЮ © (05.07.04 05:27)
действительно :)
но про транзакцию не забываем.
ЮЮ (2004-07-05 05:27:00) [2]>и почему достаточно сделать пост? может запрос не редактируем.
Если использовались DB-aware компоненты, то при редактировании DataSet будет переведен в dsEdit, а для вставки новой записи в коде должен присутствовать DataSet.Insert, иначе как можно заполнять поля "новой" записи с помoщью DB-aware компонентов ? (риторический :)
Соловьев (2004-07-02 09:26:00) [3]
> Зачем этот танец с бубном?
а транзакцию подтвердить? и почему достаточно сделать пост? может запрос не редактируем.
ЮЮ (2004-07-02 03:22:00) [4]Если ты используешь DBEdit-ы, то для сохранения достаточно сделать Post, а для отмены Cansel. Зачем этот танец с бубном?
Hawk2 (2004-07-01 13:18:00) [5]Даблкликнул на IBDatabase1. Там действительно было пусто. Выбрал рекомендованное ReadCommited, в Settings выпало read_committed
rec_version
nowait.
Вообще-то параметры транзакции настраиваются в IBTransaction, а не в IBDatabase. В IBDatabase, в Settings у меня стоят параметры подключения к базе:
lc_ctype=WIN1251
user_name=SYSDBA
PASSWORD=masterkey
N&N (2004-07-01 13:12:00) [6]to Соловьев © (01.07.04 13:05) [16]
> IBQuery1, IBQuery1, IBDatabase1, IBTransaction1
>2 квери? или одна? транзакция к какой подключена?
>какой запрос? перейди на датасет
Один-один, это я ошибся в тексте, надо было указать DataSource
Сейчас переделаю обратно на IBDataSet
Соловьев (2004-07-01 13:05:00) [7]
> IBQuery1, IBQuery1, IBDatabase1, IBTransaction1
2 квери? или одна? транзакция к какой подключена?
какой запрос? перейди на датасет
N&N (2004-07-01 12:59:00) [8]to Соловьев © (01.07.04 12:40) [14]
>просит. открой в експерте таблицу, жми закладку дата, и жми >красную птичку. чуть леве.
Все сделал, открыл, давнул закладку, давнул красненькую, он попрсил подтверждения, я подтвердил, однако новых данных в таблице не появилось
Соловьев (2004-07-01 12:40:00) [9]просит. открой в експерте таблицу, жми закладку дата, и жми красную птичку. чуть леве.
N&N (2004-07-01 12:39:00) [10]to Соловьев © (01.07.04 12:32) [12]
>а в эксперте жал подтвердить транзакцию? :)
Так ведь эксперт и не просит подтверждения!?
Соловьев (2004-07-01 12:32:00) [11]
> Но в базу не заносит.
а в эксперте жал подтвердить транзакцию? :)
N&N (2004-07-01 12:29:00) [12]to Соловьев © (01.07.04 12:21) [10]
Извинясь, конечно...
Даблкликнул на IBDatabase1. Там действительно было пусто. Выбрал рекомендованное ReadCommited, в Settings выпало read_committed
rec_version
nowait.
Но в базу не заносит.
Соловьев (2004-07-01 12:21:00) [13]
> Вообще-то, между нами,
в третий раз спрашиваю о настройках транзакции :)
N&N (2004-07-01 12:16:00) [14]to Соловьев © (01.07.04 12:06) [8]
Вообще-то, между нами, ... , говоря, я сначала целый день
и пытался с IBDataSet, и только надпись
“ Transaction is active” и бессильное отчаяние толкнуло меня на экперимент с IBQuery с аналогичным результатом :((
Соловьев (2004-07-01 12:06:00) [15]настройки транзакции?
перейди ты на IBDataSet, забудь про IBQuery
N&N (2004-07-01 12:03:00) [16]to Соловьев © (01.07.04 11:54) [6]
Заношу тексты в IBEdit'ы, потом давлю кнопочку " Записать"? Потом бегу в IBExpert-добавлений нет.
Соловьев (2004-07-01 11:54:00) [17]
> Пробовал-просто не заносит,
а как ты проверяешь?
Соловьев (2004-07-01 11:53:00) [18]1. IBDataSet вместо IBQuery.
2. Покажи настройки транзакции - даблклик. Если там пусто то выбери ReadCommited.
N&N (2004-07-01 11:53:00) [19]to Соловьев © (01.07.04 11:41) [2]
1. select * from TableName
2. А.Н.Козявин Мир InterBase
С.Бобровский Delphi-7
В.Гофман Delphi-6
to Соловьев © (01.07.04 11:41) [2]
Пробовал-просто не заносит, зато теперь не пишет
“ Transaction is active” :).
N&N (2004-07-01 11:51:00) [20]to Соловьев © (01.07.04 11:41) [2]
1. select * from TableName
2. А.Н.Козявин Мир InterBase
С.Бобровский Delphi-7
В.Гофман Delphi-6
to Соловьев © (01.07.04 11:41) [2]
Пробовал-не заносит