Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > добавление записи в БД и обновление


Автор: Skodina 10.5.2010, 22:33
здравствуйте, возникла такая проблема
есть справочник, добавляю туда запись, вот код программы
Код

DataModule3.ADOQuery2.Active:=false;
DataModule3.ADOQuery2.SQL.Clear;
DataModule3.ADOQuery2.SQL.Text := 'INSERT INTO Магазины (код_магазина, название_магазина) VALUES ( ' + QuotedStr(Edit1.Text) + ',' + QuotedStr(Edit2.Text) + ')';
DataModule3.ADOQuery2.ExecSQL;
DataModule3.ADOQuery2.Active:=true;


нужно чтобы после добавления на форме вновь обновлялась таблица и показывала данные с добавленным полем. думаю что я не совсем правильно написала :( добавлять то добавляяет, а не показывает, еще и ошибку сыплет
может подскажете как правильно?

Автор: k0rvin 10.5.2010, 22:42
дык это... ты зачем у запроса Active туда-сюда дергаешь? оставь false и не трогай. а вот таблицу (TADOTable, или что там у тебя) -- переоткрывай, после выполнения запроса.

Автор: ~FoX~ 10.5.2010, 22:46
Skodina, Какую ошибку?
Вместо SQLText используй ADOQuery1.SQL.Add

Добавлено @ 22:49
Цитата(k0rvin @  10.5.2010,  23:42 Найти цитируемый пост)
дык это... ты зачем у запроса Active туда-сюда дергаешь? оставь false и не трогай. а вот таблицу (TADOTable, или что там у тебя) -- переоткрывай, после выполнения запроса. 

Зачем? Если у нее квери  рекордсет и предоставляет...???

Добавлено через 6 минут и 32 секунды
И еще, через что доступ осуществляется? Jet, ODBC, etc?

Автор: Skodina 10.5.2010, 23:20
Цитата(~FoX~ @ 10.5.2010,  22:46)
Skodina, Какую ошибку?
Вместо SQLText используй ADOQuery1.SQL.Add


Добавлено @ 22:52
И еще, через что доступ осуществляется? Jet, ODBC, etc?

через Jet

Автор: Данкинг 10.5.2010, 23:29
Переоткрывай источник данных - таблицу или запрос - откуда данные выводятся в Grid.

Автор: Skodina 11.5.2010, 09:55
Цитата(Данкинг @ 10.5.2010,  23:29)
Переоткрывай источник данных - таблицу или запрос - откуда данные выводятся в Grid.

а как это правильно сделать?

Автор: Данкинг 11.5.2010, 10:18
Цитата(Skodina @  11.5.2010,  10:55 Найти цитируемый пост)
а как это правильно сделать? 

А источник данных какой?

Автор: Skodina 11.5.2010, 11:30
Цитата(Данкинг @ 11.5.2010,  10:18)
Цитата(Skodina @  11.5.2010,  10:55 Найти цитируемый пост)
а как это правильно сделать? 

А источник данных какой?

база данных сама сделана в Access связана с программой через ADOQuery

Автор: Данкинг 11.5.2010, 11:45
Цитата(Skodina @  11.5.2010,  12:30 Найти цитируемый пост)
база данных сама сделана в Access связана с программой через ADOQuery 

Вот и делай select... тогда заново. smile 

Автор: Skodina 11.5.2010, 12:26
Цитата(Данкинг @ 11.5.2010,  11:45)

Вот и делай select... тогда заново. smile

т. е. после моего кусочка написать заново запрос? или как? smile 

Автор: Данкинг 11.5.2010, 13:40
Код

DataModule3.ADOQuery2.close
DataModule3.ADOQuery2.SQL.Clear;
DataModule3.ADOQuery2.SQL.Text := 'select * from ............................';
DataModule3.ADOQuery2.Open;

Автор: Skodina 11.5.2010, 13:43
спасибо большое за помощь, разобралась smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)