Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.02;
Скачать: CL | DM;

Вниз

Как сохранить рез-ты query в таблицу для дальнейшего импорта?   Найти похожие ветки 

 
Nike85   (2007-11-03 09:52) [0]

Здравствуйте!

пишу приложение, в к-и необходимо реализовать следующий функционал - скопировать группу записей из таблицы, изменив в них  значения нескольких полей. Таблицы имеют сложноватую структуру - от 60 и более полей. Как это можно сделать? Выборку делаю без проблем, значения, к-е необходимо поставить, я тоже рассчитал. Вопрос в том, как из компонента TQuery, хранящем результаты запроса типа "select * from таблица1", перенести данные (вместе с структурой полей) во временную таблицу. Структуру временной таблицы (структуру полей)  необходимо создавать динамически, т.к. таблиц в ходе выполнения может оказаться несколько. Вот в принципе в чем и вопрос. Подскажите, поделитесь опытом, пожалуйста!

А, уже используя данные из временной таблицы, я планирую добавлять записи в реальную таблицу опять с помощью TQuery "insert into таблица1 Values(...)"


 
Reindeer Moss Eater ©   (2007-11-03 10:07) [1]

TClientDataSet + TDataProvider + TClientDataSet.SaveToFile


 
Nike85   (2007-11-03 10:14) [2]

а разве я не могу каким-либо образом создать TTable со структурой полей, как в данных TQuery?


 
Reindeer Moss Eater ©   (2007-11-03 10:16) [3]

Так у тебя что, импорт/экспорт в пределах одной и той же БД?
Зачем тогда вообще такой изврат?


 
Reindeer Moss Eater ©   (2007-11-03 10:18) [4]

Table1.BatchMove(Query1,batCopy);

И все.


 
Nike85   (2007-11-03 10:26) [5]

Изврат - от незнания
Да, экспорт/импорт в пределах одной БД - даже более того, я беру записи из таблицы1, меняю  в них 10-12 полей (50  полей остаются такими же как и в оригинале) и вставляю в ту же таблицу1. batchMove скорее всего не подойдет, так как здесь сейчас начнется специфика первазивовских компонентов.


 
Reindeer Moss Eater ©   (2007-11-03 10:29) [6]

Какой такой первазив, если ты сказал, что у тебя TTable и TQuery?


 
Nike85   (2007-11-03 10:36) [7]

Subject: Как сохранить рез-ты query в таблицу для дальнейшего импорта? [D7, Pervasive]
TpvQuery и TkbmMemTable. Однако, в силу того, что большинству, я думаю эти компоненты малознакомы, использую названия TQuery и TTable.

Неужели нет универсального метода, позволяющего воссоздать структуру полей для таблицы (временной) исходя из имеющегося динамического запроса? Именно динамического - если в дизайнере запустить Fields Editor, то там будет пустой список.


 
Reindeer Moss Eater ©   (2007-11-03 10:44) [8]

Как сохранить рез-ты query в таблицу для дальнейшего импорта?

Ты пять минут назад сказал, что импорт у тебя это и есть сохранение записей в таблицу. Какой еще "дальнейший импорт"?

А как сохранить весь датасет одним вызовом в файл я тебе уже сказал.


 
Nike85   (2007-11-03 10:46) [9]

Reindeer Moss Eater ©   (03.11.07 10:44) [8]
Импорт - это перенос данных из временной таблицы в реальную БД, в ту же таблицу откуда они были взяты запросом.
Кажется, мы говорим о разных вещах


 
Reindeer Moss Eater ©   (2007-11-03 10:49) [10]

А что такое "дальнейший импорт" ?


 
Reindeer Moss Eater ©   (2007-11-03 10:51) [11]

Импорт - это перенос данных из временной таблицы в реальную БД, в ту же таблицу откуда они были взяты запросом.

У нормальных людей это называется обновлением данных в таблице.
И временные таблицы здесь не нужны.


 
Nike85   (2007-11-03 10:55) [12]

Нет, это не обновление. Скопировав записи, я изменю им в том числе и ключевое поле  (первичный ключ - nrec) - и при импорте в реальную таблицу это будут новые записи, старые останутся и будут использоваться наряду с новыми (если я их конечно импортирую :)))


 
Nike85   (2007-11-03 10:56) [13]

Дальнейший импорт - это процесс записи новых, модифицированных записей в реальную БД


 
sniknik ©   (2007-11-03 10:59) [14]

> в силу того, что большинству, я думаю эти компоненты малознакомы, использую названия м.
в силу того, TTable для клиент-сервера используют только идиоты, большинство с тобой общатся изза этого попросту не хотят...

> позволяющего воссоздать структуру полей для таблицы
зачем тебе структура без данных? а если с данными то приведенное [1] вместе с данными перекинет тебе и структуру...
хотя смысла в этом возможно и нет, т.к. функциональность TpvQuery и TkbmMemTable (титановские компоненты?)  наверняка отличается от TQuery и TTable, и возможно там тоже есть SaveToFile  ради которого все и затевалось (запись в файл).
если нужна структура без данных, подставь в условие запроса невозможное значение и все.


 
sniknik ©   (2007-11-03 11:03) [15]

> И временные таблицы здесь не нужны.
точно. тем более таблицы на клиенте, в памяти или сохраненные. все делается на сервере запросом или несколькими.


 
Nike85   (2007-11-03 11:03) [16]

да уж, что-то у меня с русским стало плоховато, раз, вы, господа, мою проблему не так понимаете


 
Reindeer Moss Eater ©   (2007-11-03 11:04) [17]

Мы её вообще не видим, а не не так понимаем.


 
Плохиш ©   (2007-11-03 17:48) [18]


> Nike85   (03.11.07 11:03) [16]

Ты бы уж почитал бы чего уже...


 
Sergey13 ©   (2007-11-06 09:52) [19]

> [12] Nike85   (03.11.07 10:55)

insert into table(перечень полей) select (перечень полей, в том числе и с изменениями) from table

Так что, нельзя?
В крайнем случае в цикле по исходному датасету вставляй новые записи в свою физическую таблицу. Это абсолютно универсальный механизм, хоть и не самый производительный.
А ты в какие то дебри полез непонятные.



Страницы: 1 вся ветка

Текущий архив: 2007.12.02;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.024 c
15-1193729620
pathfinder
2007-10-30 10:33
2007.12.02
Шифрование исполняемых файлов.


2-1194439289
novill
2007-11-07 15:41
2007.12.02
Как задать цвет выводимых символов в консольном приложении?


15-1193511669
Kick
2007-10-27 23:01
2007.12.02
как получить значение [i,j] элемент в StrigGrid?


15-1193844179
antonn
2007-10-31 18:22
2007.12.02
регулярка


1-1189590777
em240
2007-09-12 13:52
2007.12.02
Завершение потока