Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

isnert into table [D6]


Rel_ ©   (2003-05-28 09:27:00) 

Привет всем. Отсоветуйте что-нибудь по сл. вопросу:

есть об-т Query1, в нём запрос на изменение таблица:
isnert into table (f1, f2, ...) values (:param1, :param2, ...)
- таким образом я переливаю данные из одной таблицы в другую.

Таблица-источник может быть произвольной, и запрос генерируется произвольно в реал-тайме. Поэтому поля f1,f2, ... - могут относятся к произвольным типам (заранее не известным). Могу ли я задать параметрам тип Variant и заносить данные не конкретизируя их тип, а как Variant.

Например: param1.datatype := ftVariant, а затем
param1.asvariant := (табл-ист).Fields[i].AsVariant


kravchuk   (2003-05-28 16:45:00) [1]

passm © (28.05.03 12:29)Кому и зачем?


passm   (2003-05-28 12:29:00) [2]

kravchuk © (28.05.03 12:08)> DataType еще указать нужно.


kravchuk   (2003-05-28 12:08:00) [3]

Вроде можно еще так

Query1.Prepare;
Query1.ParamByName("param1").Value := (табл-ист).Fields[i].Value


Rel_   (2003-05-28 09:44:00) [4]

спавибо - сейчас попробую !!!


passm   (2003-05-28 09:35:00) [5]

Тебе известен источник. Вот и используй его.
Query2.Text =
SELECT T1.FIELD1, T1.FIELD2
FROM TABLE1 AS T1

Формируешь запрос в Query1 и немного кода:
for i:= 0 to Query1.Params.Count - 1 do
Query1.Params[i].AssignField(Query2.FieldByName(Query1.Params[i].Name))

И исполняешь Query1.
Разумеется, проследи чтобы имя параметра в Query1 совпадало с именем поля в Query2.

Но это как бы сделал я...


Rel_   (2003-05-28 09:31:00) [6]

или может сделать проще - вместо variant заносить данные как строку ftstring (тем более, что нет такого: param1.asVariant)


Наверх

Титульная страница Поиск, карта сайта Написать письмо