копирование строки 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
Навигация