C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: копирование строки n количества раз  (Прочитано 3161 раз)
Ravil
НЕ стыдно не знать стыдно не учится
Участник
**

Сказали спасибо: +2/-2
Offline Offline

Сообщений: 168


« : 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 количества раз не наю Грустный
Всем за ранее спс.
« Последнее редактирование: 23 января 2019, 21:44:29 от Ravil » Записан
OVE
Участник
**

Сказали спасибо: +67/-0
Offline Offline

Сообщений: 72


« Ответ #1 : 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();
}
Записан
Ravil
НЕ стыдно не знать стыдно не учится
Участник
**

Сказали спасибо: +2/-2
Offline Offline

Сообщений: 168


« Ответ #2 : 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 строки. 
Записан
OVE
Участник
**

Сказали спасибо: +67/-0
Offline Offline

Сообщений: 72


« Ответ #3 : 24 января 2019, 23:43:41 »

тогда перед циклом нужно значение n обновлять
Код:
int n=DBEdit1->Field->AsInteger;
Записан
Ravil
НЕ стыдно не знать стыдно не учится
Участник
**

Сказали спасибо: +2/-2
Offline Offline

Сообщений: 168


« Ответ #4 : 25 января 2019, 01:59:17 »

ВСЕ Большое спасибо. Тема Закрыта. Все понял.  Смеющийся Смеющийся Смеющийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в: