![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Update значениями друго таблицы [D7, dBase, FoxPro]
Korvin © (2004-05-26 11:50:00)Объясните как в Delphi 7 при работе с файлами *.dbf
заполнить поля одной таблицы значениями другой ?
Соловьев (2004-05-26 12:45:00) [21]
> 8] Korvin (26.05.04 12:37)
F3-LocalSQL.hlp - ответы почти на все вопросы :)
там искать Update
Соловьев (2004-05-26 12:43:00) [22]
> select ocena2 from spr_part
> where spr_part.grup = mlabel.grup
> and spr_part.nnum = mlabel.nnum
> group by grup, nnum
1. он должен возвратить 1(!!!) запись
2. групировка подразумевает использование агрегатных функций - Sum, Max, Avg
3. Смысл подзапроса не понятен. подробнее плиз.
Соловьев (2004-05-26 12:39:00) [23]
> update table1 set field3 = (select field2 from table2 where
> field1 = table1.field1).
такой запрос не пойдет - так как подзапрос возвратит не одну запись, а несколько
Korvin (2004-05-26 12:37:00) [24]update mlabel
set ocena1 = (select ocena2 from spr_part
where spr_part.grup = mlabel.grup
and spr_part.nnum = mlabel.nnum
group by grup, nnum).
Sandman25+1 (2004-05-26 12:33:00) [25][6] Korvin (26.05.04 12:31)
Приведите точный код того, что Вы пробовали.
Korvin (2004-05-26 12:31:00) [26]Пропробовал эту конструкцию в SQL_Explorere
не работает выдает Finction name is missing
Sandman25+1 (2004-05-26 12:11:00) [27]1. [2] Vlad © (26.05.04 11:53)
2.update table1 set field3 = (select field2 from table2 where field1 = table1.field1). Смотря, что надо.
Korvin (2004-05-26 12:07:00) [28]Отвечаю
Кщд - Обычными средствами через цикл в Delphi
не получается ,т.к. при переносе большого количества
записей (примерно более 900 ) возникает ошибка "не найдена колонка Q9...." (возможно это связано с переполнением какого нибудь буфера). Еще одна особенность - таблица содержит мемо поля.
Поэтому хотелось бы попробовать через SQL/
Кщд (2004-05-26 11:53:00) [29]напр.,
ОдинДатасет.FieldByName('ПолеОднойТаблицы').Value:=ДругойДатасет.FieldByName('ПолеДругойТаблицы').Value;
Sergey13 (2004-05-26 11:53:00) [30]Можно в цикле, можно через SQL. Можно просто файло скопировать.
Vlad (2004-05-26 11:53:00) [31]
> Korvin (26.05.04 11:50)
insert into table1 select * from table2