C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Запись в таблицу по ззапросу Query
** Shel
Отправлено: 22.03.2007, 12:18


Не зарегистрирован







Добрый день!
В моём случае имеется таблица содержащая № и Наименование, созданная в парадоксе.

Что мне надо!
1. Выбрать товар по номеру
2. Записать выбраный товар(ы) в отдельную таблицу

Как я это делаю!
1.1 В свойствах TQuery в Params: 0-p

1.2 В свойствах TQuery в SQL создаю запрос:
select*from Tablica_tovarov where Plu =:p

1.3 На кнопку пишу следующее:
void __fastcall TForm2::Button1Click(TObject *Sender)
{
Query1->Close();
if (Edit1->Text != "")
{
if(!Query1->Prepared)
Query1->Prepare();
Query1->ParamByName("p")->AsFloat=StrToFloat(Edit1->Text);
Query1->Open();
if(Query1->Eof)
{
ShowMessage("Нет инфы по запросу" + Edit1->Text);
return;
}
}
else
{
ShowMessage("Введите значение");
return;
}
}

После нажатия на кнопку выборка проходит нормально и данные поиска отображаются в DBGrid как надо... НО...

2. ?????????????? (не знаю как)
Мне надо, чтобы выбранные мной товары записались в отдельную таблицу. Но тут ещё сложность..., как только я ввожу новый номер товара в поле Edit и нажимаю на кнопку, предыдущий запрос стирается (а мне надо, чтобы ВСЕ выбранные товары отображались в Grid'e)

Заранее спасибо =)
Guest
Отправлено: 22.03.2007, 12:44


Не зарегистрирован







QUOTE

Мне надо, чтобы выбранные мной товары записались в отдельную таблицу

Считаем, что таблица приемник есть и её структура совпадает с источником. Тогда
Insert Into New_Table Select * From Old_Table Where Old_TablePK in (val1, val2, ...)

PS. А зачем вам, если не секрет, копировать товары. Подозреваю что у вас ошибка в постановке задачи.

PPS.
Копирование строк, помеченных в Grid, в таблицу БД
Shel
Отправлено: 22.03.2007, 14:13


Ученик-кочегар

Группа: Участник
Сообщений: 1



Спасибо! Задача поставлена правильно, просто в конце надо будет знать сколько всего за день было запросов с возможностью любой из них посмотреть.

PS. Прыгнул по ссылке, решил использовать 1 метод. Но эта нехорошка сразу выдаёт сообщение:
E2268 Call to undefined function 'CreateNewTable'. ЧД ХЗ
Guest
Отправлено: 22.03.2007, 14:23


Не зарегистрирован







QUOTE (Shel @ 22.03.2007, 14:13)

PS. Прыгнул по ссылке, решил использовать 1 метод. Но эта нехорошка сразу выдаёт сообщение:
E2268 Call to undefined function 'CreateNewTable'. ЧД ХЗ

Там же, сотней строк ниже.

QUOTE (Shel @ 22.03.2007, 14:13)

Спасибо! Задача поставлена правильно, просто в конце надо будет знать сколько всего за день было запросов с возможностью любой из них посмотреть.

Мы наверное по разному понимаем слово "запрос", так как неясна связь между "дублированием записей" и "числом запросов за день". Намекаю: как правило денные не копируют — это источник ошибок а сохраняют, при нужде, первичные ключи.

Вернуться в Работа с базами данных в C++Builder