sibprogsistem wrote:procedure Form1_Button2_OnClick (Sender: TObject; var Cancel: boolean);
var
i: integer;
begin
for i:=0 to Form1.TableGrid1.RowCount-1 do
if Form1.TableGrid1.Row[i].Selected then
SQLExecute('INSERT INTO b(bb)VALUES("'+ IntToStr(Form1.TableGrid1.Row[i].ID) +'")');
UpdateDataBase('b');
end;
Да код работает. Сохранил себе. Но возникла проблема уже в другом - оказывается что выдергивается Id другой таблицы (KomList - на скрине можно увидеть) а возможно выдернуть ID Book оттуда? Возможно вопрос глупый и это уже где то обсуждалось, но я, к сожалению, не нашел. Я пока еще пытаюсь только разобраться в этом всем. Как выдернуть с помощью переменной я, вроде бы, понял, но как совместить переменную и данный цикл - пока не понимаю.
Если же вставляю переменную
var
i,:integer;
IDbook: string;
begin
for i:=0 to Komlist.Book.RowCount-1 do
if Komlist.Book.Row[i].Selected then
IDbook:= SQLExecute('SELECT id_Book FROM KompList WHERE id='+ IntToStr(Komlist.Book.Row[i].ID));
SQLExecute('INSERT INTO Dolgi(id_Chitately, id_Book) VALUES ("'+Komlist.ComChit.sqlValue+'","'+IDbook+'")');
Dolg.TableGrid1.dbUpdate;
end;
то записывается только одна строка
Дополнено: Это я глупый и невнимательный! Забыл что цикл завершается на ";". Заключил цикл в begin - end; Все заработало! Огромное спасибо за IntToStr(Komlist.Book.Row.ID !! так теперь это выглядит
var
i,:integer;
IDbook: string;
begin
for i:=0 to Komlist.Book.RowCount-1 do
if Komlist.Book.Row[i].Selected then
begin
IDbook:= SQLExecute('SELECT id_Book FROM KompList WHERE id='+ IntToStr(Komlist.Book.Row[i].ID));
SQLExecute('INSERT INTO Dolgi(id_Chitately, id_Book) VALUES ("'+Komlist.ComChit.sqlValue+'","'+IDbook+'")');
end;
Dolg.TableGrid1.dbUpdate;
end;
Между делом возник еще такой вопрос: Возможно ли сделать что б при открытии формы все записи в таблице по умолчанию были выбраны?