C++Builder

Вопросы программирования => Работа с базами данных в C++Builder => Тема начата: Ravil от 23 Январь 2019, 20:19:46



Название: копирование строки n количества раз
Отправлено: Ravil от 23 Январь 2019, 20:19:46
Добрый вечер. Подскажите пжс как можно скопировать с одной таблицы в другую таблицу каждую строку 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 количества раз не наю :(
Всем за ранее спс.


Название: Re: копирование строки n количества раз
Отправлено: 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();
}


Название: Re: копирование строки n количества раз
Отправлено: Ravil от 24 Январь 2019, 15:59:48
Так что-ли
Код:
{
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 строки. 


Название: Re: копирование строки n количества раз
Отправлено: OVE от 24 Январь 2019, 23:43:41
тогда перед циклом нужно значение n обновлять
Код:
int n=DBEdit1->Field->AsInteger;


Название: Re: копирование строки n количества раз
Отправлено: Ravil от 25 Январь 2019, 01:59:17
ВСЕ Большое спасибо. Тема Закрыта. Все понял.  ;D ;D ;D




.....
..