Добавить несколько строк одним запросом

есть таблица, хочу вставить несколько строк адним запросам, есть код ELT(FIELD( PREPARE вот с помощью этих функций вставить много строк получается но данные берутся с другой таблицы,а щас хочу чтоб данные взяли из delphi из stringrida страки фиксированных нету когда как. чувствую что не хорошо объяснил но все таки может кто то поймет.могу конечно выложить варианты но их столько что все не маго паказать . это для тех кто скажет покажи свои код вот допустим в этом варианте всегда первое значение выбирает и соответственно адну страку вставляет
SET @N = (SELECT AUTO_INCREMENT   FROM information_schema.tables WHERE TABLE_NAME='table1');
SET @yy = '1,2';
REPLACE INTO `table1`(`сталбес1`, `сталбес2`, `сталбес3`) 
SELECT now(),@N,ELT(FIELD(@yy,@yy),'value1','value2')
4 ответа

Циклом можно пройтись по гриду. Если примитивно, то можно так:
q.close;
q.sql.text:='Insert into myTable (F1,F2,F3,...,Fn) values (:V1,:V2,:V3,...,:Vn) '
   for i:=0 to stringGrid.rowcount-2 do
   begin
   q.parameters.parambyname('v1').value:=stringgrid.cells[0, i+1];
   q.parameters.parambyname('v2').value:=stringgrid.cells[1, i+1];
   q.parameters.parambyname('v3').value:=stringgrid.cells[2, i+1];
   ...
   q.parameters.parambyname('vn').value:=stringgrid.cells[n, i+1];
   q.execSQL;
   end;


а под ТС кого подразумеваете? . да с кавказа а конкретнее грузин с тбилиси, дела в том что у меня на клавиатуре все буквы стёрты и я не помню их расположение, ну русских имеится виду и нашол выход v google пищу латинскими буквами и гугл самасабои переовдит в русские буквы , слава канешна русские. если с точки зрения грамматики то уже гугл виноват, точки и запятые неправильно расставляет. а вчера даже написал
чувствую что не хорошо объяснил но все таки может кто то поймет.
Не по теме:
как сделать не знаю. а что касается вопроса. вчера сам додумался написал вот такой код
SET @gun = ' ''oooo'',''yyyy'',''rrrrr'',''rrrrrr'',''rrrrreee'' ';
SET @ins = CONCAT('INSERT INTO `t1`( `col1`) 
SELECT  ELT(FIELD(col1,',@gun,'),',@gun,')  FROM `t2`  WHERE  col1 IN(',@gun,')  ');
PREPARE stmt1 FROM @ins;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
работает то хорошо но одно но, ну допустим видна что впримере 5 заначены в ставляю а автоинкремент увеличивается на 7 то есть следующий автоинкремент будет 8. drvolodko, а что касается вашего кода настолка я понял эта код надо в delphi написать а я хочу в хранимую процедуру .


kobakoba7, ну ты написал
а щас хочу чтоб данные взяли из delphi из stringrida
Я тебе и привел пример. Ты же не говорил о хранимой процедуре
а под ТС кого подразумеваете?
ТС - theme creator, насколько я понимаю. Т.е. создатель темы, вопроса...


ничего, значит не хорошо объяснил