• Авторизация


Есть тут кто живой? 17-01-2008 17:38 к комментариям - к полной версии - понравилось!


Или сообщество вымерло накорню?
Вобщем, вопрос касательно Delphi.
Имеется Form1, на которой DBGrid со значением False в Options|dgEditing.
Имеется так же DBNavigator и Button.
Нужно: по нажатию Button открыть новое окно (с этим, понятно, проблем нет), в котором будет несколько элементов DBEdit, готовых для новой записи в БД.
Т.е., как я понимаю задачу, то:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.ShowModal;
//А вот тут надо эмулировать нажатие nbInsert на DBNavigator
//или при создании Form2
end;

Может, кто-нибудь может подсказать?





вверх^ к полной версии понравилось! в evernote
Комментарии (10):
Lightpower 17-01-2008-17:48 удалить
Если ты хочешь сделать все через Insert-Post, то инсерт давать ПОСЛЕ выполнения ShowModal, но не в Form2.OnActivate

Я бы делал через SQL


В колонках играет - 2005 - В бой
dandr 17-01-2008-17:55 удалить
Автор: Lightpower
Если ты хочешь сделать все через Insert-Post, то инсерт давать ПОСЛЕ выполнения ShowModal, но не в Form2.OnActivate

Я бы делал через SQL


В колонках играет - 2005 - В бой
Собственно, именно так я в теории и понимаю. Как это реализовать в коде?



Lightpower 17-01-2008-18:11 удалить
Пусть Table1 будет тем DataSet-ом, к которому подключен наш DBGrid
code:
procedure TForm1.Button1Click(Sender: TObject);
begin Form2.ShowModal;
// допустим, у таблицы 3 поля, одно типа Integer и два - String
Table1.Insert;
Table1.FieldByName('Id').AsInteger := StrToInt(Form2.Edit1.Text);
Table1.FieldByName('Name').AsString := Form2.Edit2.Text;
Table1.FieldByName('Desc').AsString := Form2.Edit3.Text;
Table1.Post;



Типа того
Только ОБЯЗАТЕЛЬНО блок от Insert до Post заключить в try. Я не Дельфист, я сишник, потому не помню синтаксиса try в Дельфи


В колонках играет - ДДТ - Ночная пьеса
borisiq 17-01-2008-18:26 удалить
code:

DataSource1.DataSet.Append;
if Form2.ShowModal = mrOk then
DataSource1.DataSet.Post
else DataSource1.DataSet.Cancel;

dandr 17-01-2008-20:23 удалить
Автор: Lightpower
Пусть Table1 будет тем DataSet-ом, к которому подключен наш DBGrid

code:
procedure TForm1.Button1Click(Sender: TObject);
begin Form2.ShowModal;
// допустим, у таблицы 3 поля, одно типа Integer и два - String
Table1.Insert;
Table1.FieldByName('Id').AsInteger := StrToInt(Form2.Edit1.Text);
Table1.FieldByName('Name').AsString := Form2.Edit2.Text;
Table1.FieldByName('Desc').AsString := Form2.Edit3.Text;
Table1.Post;



Типа того
Только ОБЯЗАТЕЛЬНО блок от Insert до Post заключить в try. Я не Дельфист, я сишник, потому не помню синтаксиса try в Дельфи


В колонках играет - ДДТ - Ночная пьеса

Спасибо, попробую))


dandr 17-01-2008-20:23 удалить
Автор: borisiq
code:


DataSource1.DataSet.Append;

if Form2.ShowModal = mrOk then

DataSource1.DataSet.Post

else DataSource1.DataSet.Cancel;


Ээээ... Не понял, почему Post?



dandr 17-01-2008-20:23 удалить
Автор: Накукрыскин
дандр, дадада, и тут тоже я )))



Преследуешь?


dandr 17-01-2008-23:40 удалить
Спасибо!
Проблему решил через
DataSet.Insert
DataSet.Post
DataSet.Refresh




Комментарии (10): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Есть тут кто живой? | community_coding - Сообщество программистов | Лента друзей community_coding / Полная версия Добавить в друзья Страницы: раньше»