![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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)