Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.12.02;
Скачать: [xml.tar.bz2];

Вниз

Как сохранить рез-ты 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.045 c
15-1193625473
Фар-юзер
2007-10-29 05:37
2007.12.02
FAR открыл исходники !


15-1193771493
ProgRAMmer Dimonych
2007-10-30 22:11
2007.12.02
Подкиньте, плз, идейку


15-1193592150
SQL555
2007-10-28 20:22
2007.12.02
Помогите с SQL! Заранее спасибо!


3-1185003320
NewZ
2007-07-21 11:35
2007.12.02
Как заменить значение NULL?


2-1194363576
AlexanderMS
2007-11-06 18:39
2007.12.02
Отладка печати.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский