![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как заполнить поле одной таблицы из другой - перенести данные
Дмитрий © (2008-08-13 14:58:00)Здравствуйте!
Задача такая. Необходимо создать таблицу типа
Номер | Абонент
тип char 8 | тип char 50
поля Номер должны заполнятся из результата выборки sql запроса к локальной таблице dbf
запрос типа
SELECT NUMER from "database.dbf" group by NUMER order by NUMER
в результате этого формируется список номеров, который надо теперь передать в созданную таблицу.
Поле абонент необходимо заполнить для каждого номера - Абонентская установка.
Для выборки SQL использую компонент query
_____________________________________________
какие будут советы и предложения для решения этой задачи
я не силен в знании о возможностях Delphi и SQL не удивлюсь если задача решается элементарно.
Жду ответов
Дмитрий (2008-08-13 16:45:00) [21]как работать с table?
вот код
if opend.Execute then
begin
Query2.Close;
Query2.SQL.Clear;
database:=Opend.FileName;
Query2.SQL.Add('SELECT NEBST from '+'"'+database+'"'+' group by NEBST order by NEBST');
Query2.Open;
DbiMakePermanent(query2.Handle, 'temp_db.dbf',true);
count:=Query2.RecordCount;
with table1 do
begin
Active := False;
DatabaseName := 'NUM';
TableType := ttDBase;
TableName := 'numandname';
if not Table1.Exists then begin
with FieldDefs do begin
Clear;
with AddFieldDef do begin
// Name := 'NEBST';
DataType := ftString;
Size:=8;
Required := True;
end;
with AddFieldDef do begin
Name := 'NAME';
DataType := ftString;
Size := 30;
end;
end;
end;
end;
end;
выдает ошибку unknown database.
а можно ли обойтись без table
может еще одну query добавить...
Medbe}I{onok XML (2008-08-13 16:23:00) [22]мне надо скопировать только одно поле со всеми значениями в другую таблицу...
что в квери то и копируется.
или TBatchMove + FieldMappings
Дмитрий (2008-08-13 16:17:00) [23]Сергей М
программу писать надо...
требуемая таблица нужна для формирования отчетов...
т.е. имеем экспорт из теледата (тарификация) в формате дбф
потом эта информация обрабатывается программой которую сейчас пишу
формируем различные sql запросы относительно того что введено в интерфейсной части программы
к полученному результату - применяем запрос объединения по полю номера с требуемой таблицей что бы в результате получить таблицу вида
абонент | номер | ....| время разговора
и затем все это экспортируется в отчет в exel.
по запросу
table1.BatchMove(Query1,batCopy)
сдесь получается копируется вся таблица?
мне надо скопировать только одно поле со всеми значениями в другую таблицу...
Сергей М. (2008-08-13 15:46:00) [24]
> Дмитрий (13.08.08 15:19) [3]
>
> Да это одноразовая операция
Для этого и программу писать вовсе не надо, под ругой всегда немало готовых инструментов, с пом.которых довольно просто выполнить импорт/экспорт.
Например, средствами MS Office
Sergey13 (2008-08-13 15:21:00) [25]> [0] Дмитрий (13.08.08 14:58)
> запрос типа
> SELECT NUMER from "database.dbf" group by NUMER order by NUMER
Какие операторы ты еще можешь вставить в запрос? 8-)
Дмитрий (2008-08-13 15:19:00) [26]Да это одноразовая операция необходимо создать таблицу соответсвия номер - абонент...
спасибо Medbe}I{onok XML
щас попробую что это за зверь...
Сергей М. (2008-08-13 15:04:00) [27]Это одноразовая операция ?
Medbe}I{onok XML (2008-08-13 15:02:00) [28]table1.BatchMove(Query1,batCopy)