Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #5  
Старый 14.10.2025, 11:21
Joe88 Joe88 вне форума
Прохожий
 
Регистрация: 14.10.2025
Сообщения: 1
Версия Delphi: D7,XE10.3
Репутация: 10
По умолчанию

Вот кусок из моего кода, как раз множественный выбор в сетке с последующей вставкой записей на базе выбранных. На основе книги Кэнту. Сделано для Oracle, но идея та же самая.
...
var
i:integer;
Bookmarklist:Tbookmarklist;
Bookmark:TBookmark;
tmpstr:String;
begin
Bookmarklist:=ToolTipsDBGrid2.SelectedRows;
if Bookmarklist.Count<=0 then exit;
if DBLookupComboBox1.KeyValue=null then exit;
tmpstr:='Сохранить '+inttostr(Bookmarklist.Count)+' записей?';
if application.MessageBox(pchar(tmpstr),'',mb_yesno+m b_iconquestion)= IDno then exit;
Bookmark:=oraquery2.GetBookmark;
try
if Bookmarklist.Count=0 then begin
showmessage('предметы не выбраны');
exit;
end;
try
Qinsert.ParamByName(<имя поля>).AsInteger:=DBLookupComboBox1.KeyValue;
for i:=0 to Bookmarklist.Count-1 do begin
oraquery2.GotoBookmark(pointer(Bookmarklist[i]));
Qinsert.ParamByName(<имя поля ключа>).AsInteger:=oraquery2.Fieldbyname(<имя поля ключа>).AsInteger;
Qinsert.Execute;
end;
ShowMessage('Записи добавлены');
OraQuery5.Refresh;
ToolTipsDBGrid1.SetFocus;

Except
on E:Eoraerror do
begin
if e.ErrorCode=1 then MessageDlg('Запись уже существует. Код ошибки '+inttostr(e.ErrorCode),mtError,[mbOk],0)
else MessageDlg('Ошибка записи. Код ошибки '+inttostr(e.ErrorCode),mtError,[mbOk],0);
end;
end;
finally
oraquery2.GotoBookmark(Bookmark);
oraquery2.FreeBookmark(Bookmark);
OraQuery5.Refresh;
ToolTipsDBGrid1.SetFocus;
end;
end;

Последний раз редактировалось Joe88, 14.10.2025 в 11:24.
Ответить с цитированием
 


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:47.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025