![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
cvi |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.9.2003 Где: Украина, Киев Репутация: нет Всего: нет |
Здравствуйте,
Задача, которую я тут собираюсь описать, очень проста и делалась много раз на Delphi 5. А вот на Delphi 7 не получаеться. Есть процедура, которая вставляет данные в базу данных Interbase 6.0 procudere InsSQL(SQL_Text : TMemo; SQL_Comment : TEdit) var Q_SQL : TIBQuery; Trans : TIBTransaction; begin Q_SQL := nil; Trans := nil; try try Q_SQL := TIBQuery.Create(Application); Trans := TIBQuery.Create(Application); Q_SQL.DataBase := MyIBBase; Q_SQL.Transaction := Trans; Trans.DefaultDataBase := MyIBBase; Q_SQL.SQL.Add('insert into mytable(name1, name2) values(:name1, :name2)'); Q_SQL.ParamByName('name1').AsString := SQL_Comment.Text; Q_SQL.ParamByName('name2').AsBlob := SQL_Text.Text; Trans.StartTransaction; Q_SQL.Execute; Trans.Commit; except Trans.RollBack; ShowMessahe('Error'); end; finally Trans.Free; Q_SQL.Free; end end; и процедура, которая выбирает данные из таблицы procedure GetSQL; begin // компонент лежит на форме и подключен к DBGrid и DBMemo SQL_List.Active := False; SQL_LIst.Active := True; end; код вставки MyMemo.Text := 'Первый текст Memo'; MyEdit.Text := 'Первый текст Edit'; InsSQL(MyMemo, MyEdit); GetSQL; MyMemo.Text := 'Второй текст Memo'; MyEdit.Text := 'Второй текст Edit'; InsSQL(MyMemo, MyEdit); GetSQL; все свойства компонентов установленны по умолчанию А теперь вопрос. Добавляю запись. В базе есть. В Гриде отображаеться только при выходе из программы и запуске приложения снова. Убираю с процедуры вставки все, что связано с компонентом TIBTransaction. Обновление происходит при каждой вставке, что и надо. Почему не работает с транзакцией и как надо изменить код, чтобы работало? |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Попробуй не Commit, а IBDataSet1.Transaction.CommitRetaining
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |