Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

Вставка данных в базу   Найти похожие ветки 

 
N&N   (2004-07-01 11:35) [0]

Уважаемые Мастера, подскажите, пожалуйста, как жить дальше.
Суть проблемы проста: не могу вставить данные в базу.
Все делаю по букварю: на форму поместил  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.
Скажите, пожалуйста, как быть?


 
Johnmen ©   (2004-07-01 11:38) [1]

Какой запрос в IBQuery1 ?
Какую литературу читал по программированию БД ?


 
Соловьев ©   (2004-07-01 11:41) [2]


> А в ответ “ Transaction is active” .


> IBTransaction1.StartTransaction;

if not IBTransaction1.Active then
IBTransaction1.StartTransaction;


 
N&N   (2004-07-01 11:51) [3]

to Соловьев ©   (01.07.04 11:41) [2]
1. select * from TableName
2. А.Н.Козявин  Мир InterBase
   С.Бобровский Delphi-7
   В.Гофман Delphi-6
to Соловьев ©   (01.07.04 11:41) [2]
Пробовал-не заносит


 
N&N   (2004-07-01 11:53) [4]

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” :).


 
Соловьев ©   (2004-07-01 11:53) [5]

1. IBDataSet вместо IBQuery.
2. Покажи настройки транзакции - даблклик. Если там пусто то выбери ReadCommited.


 
Соловьев ©   (2004-07-01 11:54) [6]


> Пробовал-просто не заносит,

а как ты проверяешь?


 
N&N   (2004-07-01 12:03) [7]

to Соловьев ©   (01.07.04 11:54) [6]
Заношу тексты в IBEdit"ы, потом давлю кнопочку " Записать"? Потом бегу в IBExpert-добавлений нет.


 
Соловьев ©   (2004-07-01 12:06) [8]

настройки транзакции?
перейди ты на IBDataSet, забудь про IBQuery


 
N&N   (2004-07-01 12:16) [9]

to Соловьев ©   (01.07.04 12:06) [8]
Вообще-то, между нами, ... , говоря, я сначала целый день
и пытался с IBDataSet, и только надпись
“ Transaction is active” и бессильное отчаяние толкнуло меня на экперимент с IBQuery с аналогичным результатом :((


 
Соловьев ©   (2004-07-01 12:21) [10]


> Вообще-то, между нами,

в третий раз спрашиваю о настройках транзакции :)


 
N&N   (2004-07-01 12:29) [11]

to Соловьев ©   (01.07.04 12:21) [10]
Извинясь, конечно...
Даблкликнул на IBDatabase1. Там действительно было пусто. Выбрал рекомендованное ReadCommited, в Settings выпало read_committed
rec_version
nowait.
Но в базу не заносит.


 
Соловьев ©   (2004-07-01 12:32) [12]


> Но в базу не заносит.

а в эксперте жал подтвердить транзакцию? :)


 
N&N   (2004-07-01 12:39) [13]

to Соловьев ©   (01.07.04 12:32) [12]
>а в эксперте жал подтвердить транзакцию? :)

Так ведь эксперт и не просит подтверждения!?


 
Соловьев ©   (2004-07-01 12:40) [14]

просит. открой в експерте таблицу, жми закладку дата, и жми красную птичку. чуть леве.


 
N&N   (2004-07-01 12:59) [15]

to Соловьев ©   (01.07.04 12:40) [14]
>просит. открой в експерте таблицу, жми закладку дата, и жми >красную птичку. чуть леве.

Все сделал, открыл, давнул закладку, давнул красненькую, он попрсил подтверждения, я подтвердил, однако новых данных в таблице не появилось


 
Соловьев ©   (2004-07-01 13:05) [16]


> IBQuery1, IBQuery1, IBDatabase1, IBTransaction1

2 квери? или одна? транзакция к какой подключена?
какой запрос? перейди на датасет


 
N&N   (2004-07-01 13:12) [17]

to Соловьев ©   (01.07.04 13:05) [16]

> IBQuery1, IBQuery1, IBDatabase1, IBTransaction1

>2 квери? или одна? транзакция к какой подключена?
>какой запрос? перейди на датасет

Один-один, это я ошибся в тексте, надо было указать DataSource
Сейчас переделаю обратно на IBDataSet


 
Hawk2   (2004-07-01 13:18) [18]

Даблкликнул на IBDatabase1. Там действительно было пусто. Выбрал рекомендованное ReadCommited, в Settings выпало read_committed
rec_version
nowait.

Вообще-то параметры транзакции настраиваются в IBTransaction, а не в IBDatabase. В IBDatabase, в Settings у меня стоят параметры подключения к базе:
lc_ctype=WIN1251
user_name=SYSDBA
PASSWORD=masterkey


 
ЮЮ ©   (2004-07-02 03:22) [19]

Если ты используешь DBEdit-ы, то для сохранения достаточно сделать Post, а для отмены Cansel. Зачем этот танец с бубном?


 
Соловьев ©   (2004-07-02 09:26) [20]


> Зачем этот танец с бубном?

а транзакцию подтвердить? и почему достаточно сделать пост? может запрос не редактируем.


 
ЮЮ ©   (2004-07-05 05:27) [21]

>и почему достаточно сделать пост? может запрос не редактируем.
Если использовались DB-aware компоненты, то при редактировании DataSet будет переведен в dsEdit, а для вставки новой записи в коде должен присутствовать DataSet.Insert, иначе как можно заполнять поля "новой" записи с помoщью DB-aware компонентов ? (риторический :)


 
Соловьев ©   (2004-07-05 09:51) [22]


> ЮЮ ©   (05.07.04 05:27)

действительно :)
но про транзакцию не забываем.



Страницы: 1 вся ветка

Текущий архив: 2004.07.25;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.025 c
3-1088744616
NAlexey
2004-07-02 09:03
2004.07.25
Прерывание выполнения запроса


3-1088681573
denmin
2004-07-01 15:32
2004.07.25
Помогите завязать таблицы по Mastersource!!!!! Пожалуйста!!!!


3-1088411079
TL
2004-06-28 12:24
2004.07.25
InterBase


3-1088678038
Lord
2004-07-01 14:33
2004.07.25
Delphi6-StringGrid


4-1087052143
juiceman
2004-06-12 18:55
2004.07.25
Типы хуков