Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2016, 18:30   #1
TCHProgrammer
 
Регистрация: 15.10.2012
Сообщений: 6
По умолчанию Обновление и отображение данных таблицы в Delphi компонент TIBQuery и TIBTable

В Delphi я сделал добавление записи в таблицу через TIBTable, а в TIBQuery находится sql SELECT * FROM autors. Этот TIBQuery присоединён к таблице отображения TDBGrid. Так вот, новая запись (введённая через TIBTable) в БД попадает, но не отображается сразу же в TDBGrid. Вот код, который у меня написан:

//FM_Data.IBTransaction1.StartTransac tion;
FM_Data.IBT_Autors.Insert;
FM_Data.IBT_Autors.FieldByName('NAM E').AsString := FM_AddAutor.E_AddedAutorName.Text;
FM_Data.IBT_Autors.Post;
//FM_Data.IBTransaction1.Commit;
FM_Data.DS_Autors.Enabled := false;
DBGRid1.Enabled := false;

FM_Data.IBQ_Autors.Close;
FM_Data.IBQ_Autors.Active := false;
//FM_Data.IBQ_Autors.ExecSQL;
FM_Data.IBQ_Autors.Active := true;
FM_Data.IBQ_Autors.Open;
FM_Data.DS_Autors.Enabled := true;
DBGRid1.Enabled := true;
ShowMessage('YES');
Здесь IBQ_Autors - TIBQuery, IBT_Autors - TIBTable, DS_Autors - TDataSource, ну а дальше всё понятно. Наворотил, конечно, здорово. Подскажите, пожалуйста, что мне делать?
TCHProgrammer вне форума Ответить с цитированием
Старый 08.02.2016, 18:40   #2
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

Цитата:
Сообщение от TCHProgrammer Посмотреть сообщение
Наворотил, конечно, здорово. Подскажите, пожалуйста, что мне делать?
Освоить хранимые процедуры
А то, что вы "наворотили" - забыть, как дурной сон...
kropotkina-alice вне форума Ответить с цитированием
Старый 08.02.2016, 19:00   #3
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

для ADO так бы работало:
Код:
FM_Data.IBT_Autors.Insert;
FM_Data.IBT_Autors.FieldByName('NAM E').AsString := FM_AddAutor.E_AddedAutorName.Text;
FM_Data.IBT_Autors.Post;
FM_Data.IBQ_Autors.Active := false;
FM_Data.IBQ_Autors.Active := true;
я не думаю что есть разница
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 08.02.2016, 20:05   #4
TCHProgrammer
 
Регистрация: 15.10.2012
Сообщений: 6
По умолчанию

Я сделал как сказал Dvoishnik,
Цитата:
FM_Data.IBT_Autors.Insert;
FM_Data.IBT_Autors.FieldByName('NAM E').AsString := FM_AddAutor.E_AddedAutorName.Text;
FM_Data.IBT_Autors.Post;
FM_Data.IBQ_Autors.Active := false;
FM_Data.IBQ_Autors.Active := true;
Но запись в БД добавляется, а в таблицу DBGrid1 не добавляется. Может там что-нибудь с транзакциями?
TCHProgrammer вне форума Ответить с цитированием
Старый 08.02.2016, 20:42   #5
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Цитата:
Сообщение от TCHProgrammer Посмотреть сообщение
Я сделал как сказал Dvoishnik,
Но запись в БД добавляется, а в таблицу DBGrid1 не добавляется. Может там что-нибудь с транзакциями?
TIBQuery закройте и откройте заново.
Iron Monk вне форума Ответить с цитированием
Старый 09.02.2016, 13:32   #6
TCHProgrammer
 
Регистрация: 15.10.2012
Сообщений: 6
По умолчанию

Я сделал вот так:
Цитата:
if(not(FM_Data.IBTransaction2.InTra nsaction)) then
begin
FM_Data.IBTransaction2.StartTransac tion;
end;
FM_Data.IBT_Autors.Insert;
FM_Data.IBT_Autors.FieldByName('NAM E').AsString := FM_AddAutor.E_AddedAutorName.Text;
FM_Data.IBT_Autors.Post;
FM_Data.IBTransaction2.Commit;



FM_Data.IBQ_Autors.Close;
FM_Data.IBQ_Autors.Active := false;


FM_Data.IBQ_Autors.Active := true;
FM_Data.IBQ_Autors.Open;
Я проверял: При отключении TIBQuery(IBQ_Autors) - никакого визуального эффекта. В таблице не пропадают записи. Такое ощущение, что отключение никак не подействовало. Что это может быть? Я даже DataSource отключал - никакого эффекта.
TCHProgrammer вне форума Ответить с цитированием
Старый 09.02.2016, 13:38   #7
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Код:
DBGrid1.DataSource:= nil;
DBGrid1.DataSource:= DS_Autors;
Iron Monk вне форума Ответить с цитированием
Старый 09.02.2016, 14:08   #8
TCHProgrammer
 
Регистрация: 15.10.2012
Сообщений: 6
По умолчанию

Да я так попробовал сделать, даже перезагружал DataSource, Таблица дёрнулась, но новая запись в ней не появилась, хотя в базе она появилась. У меня вот какие мысли возникли: Rad Studio XE2 у меня крякнутая, при загрузке её выскакивает ошибка, что не может загрузить какие-то элементы компиллятора. И очень часто приходится перезагружать Rad Studio из-за того, что при компилляции находятся несуществующие ошибки. Перезагрузил - и всё нормально. Может в этом причина?
TCHProgrammer вне форума Ответить с цитированием
Старый 16.02.2016, 21:57   #9
TCHProgrammer
 
Регистрация: 15.10.2012
Сообщений: 6
По умолчанию

Вопрос решился очень просто. Надо просто, чтобы все компоненты, связанные с Базой Данных были на одной форме - на той же самой, где и таблица с кнопками и кодом обработки того, что связано с БД. Короче, если, допустим, TIBDataBase находится на другой форме, то ничего хорошего не выйдет.
TCHProgrammer вне форума Ответить с цитированием
Старый 17.02.2016, 12:17   #10
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от TCHProgrammer Посмотреть сообщение
Вопрос решился очень просто. Надо просто, чтобы все компоненты, связанные с Базой Данных были на одной форме - на той же самой, где и таблица с кнопками и кодом обработки того, что связано с БД. Короче, если, допустим, TIBDataBase находится на другой форме, то ничего хорошего не выйдет.
а как же DataModule??
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Красивый вид таблицы (отображение данных в ячейках) Mpgeshka Microsoft Office Excel 6 16.07.2015 16:04
Изьятие данных из сводной таблицы и их обновление Kroly Microsoft Office Excel 3 31.05.2011 08:24
Отображение вордовских данных при выборе поля таблицы xJohnx БД в Delphi 0 14.04.2011 19:52
Обновление таблицы Access путем импорта данных из DBF TranzitZP Microsoft Office Access 9 11.04.2011 00:26
Запрос на обновление данных таблицы atenon Microsoft Office Access 8 08.03.2011 13:52