копирование строки n количества раз

(1/1)

Ravil:
Добрый вечер. Подскажите пжс как можно скопировать с одной таблицы в другую таблицу каждую строку n количества раз. к примеру имеется Query1 , Query2 и  n= DBEdit1.  Копирую данные так:

Код:

{
Query2->SQL->Clear();
Query2->SQL->Add("INSERT INTO mg_kesh (KPN,DataPostup) VALUES(:KPN,:DataPostup);");
Query1->First();
while( !Query1->Eof )
{
Query2->Params->ParamByName("KPN")->Value = Query16->Fields->FieldByName("KPN")->Value;
Query2->Params->ParamByName("DataPostup")->Value = Query16->Fields->FieldByName("DataPostup")->Value;
Query2->ExecSQL();
Query1->Next();
}

а вот как продублировать строки n количества раз не наю :(
Всем за ранее спс.

OVE:
Так что-ли
Код:

{
Query2->SQL->Clear();
Query2->SQL->Add("INSERT INTO mg_kesh (KPN,DataPostup) VALUES(:KPN,:DataPostup);");
Query1->First();
while( !Query1->Eof )
{
Query2->Params->ParamByName("KPN")->Value = Query16->Fields->FieldByName("KPN")->Value;
Query2->Params->ParamByName("DataPostup")->Value = Query16->Fields->FieldByName("DataPostup")->Value;
for(int i=0;i<n;i++)
Query2->ExecSQL();
Query1->Next();
}

Ravil:
Цитата: OVE от 24 января 2019, 13:12:56

Так что-ли
Код:

{
Query2->SQL->Clear();
Query2->SQL->Add("INSERT INTO mg_kesh (KPN,DataPostup) VALUES(:KPN,:DataPostup);");
Query1->First();
while( !Query1->Eof )
{
Query2->Params->ParamByName("KPN")->Value = Query16->Fields->FieldByName("KPN")->Value;
Query2->Params->ParamByName("DataPostup")->Value = Query16->Fields->FieldByName("DataPostup")->Value;
for(int i=0;i<n;i++)
Query2->ExecSQL();
Query1->Next();
}


наверно не совсем так . по пробую по шире раскрыть тему. Значит в Query1 Имеются к примеру 10 записей со столбцами к примеру KPN, DataPostup в Query2 те же столбцы но только без записей. И есть DBEdit1 который связан с третей таблицей (но это не суть важна) в котором в зависимости от прохода строки в Query1  меняется число. К примеру на первой строке  в Query1  DBEdit1=5 в следствии в Query2 первая строка должна про дублироваться 5 раз. В второй строке Query1 к примеру DBEdit1= 3 Следовательно в Query2 вторая строка Query1 должна про дублироваться три раза. и так далее до 10 строки. 

OVE:
тогда перед циклом нужно значение n обновлять
Код:

int n=DBEdit1->Field->AsInteger;

Ravil:
ВСЕ Большое спасибо. Тема Закрыта. Все понял.  ;D ;D ;D

Навигация

[0] Главная страница сообщений