Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TQuery и TTable - перегон 
:(
    Опции темы
MacTep
Дата 22.7.2004, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: 4
Всего: 4



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


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
<Spawn>
Дата 22.7.2004, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



MacTep Не понял тебя. Выполняешь SELECT, полсле этого стандартным образом используешь:

Код
with Query1 do
begin
 First;
 while not Eof do
 begin
   <Что то делаешь>
   Next;
 end;
end;



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
MacTep
Дата 22.7.2004, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: 4
Всего: 4



Да, то, что ты написал, все это ясно! Но мне надо именно так сделать, чтобы из результата какого-то запроса получить эот получившийся набор данных и в Table. А вот ето как сделать?


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
<Spawn>
Дата 22.7.2004, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



MacTep А зачем в Table то? Ну можешь сделать подобным образом. Но я не мойму зачем это нужно.

Код
with Query1 do
begin
First;
while not Eof do
begin
  Table1.AppendRecord(FieldByName('sff').AsString, FieldByName('sdfsd').AsInteger, ...);
  Next;
end;
end;



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
MacTep
Дата 22.7.2004, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: 4
Всего: 4



Всмысле ты хочешь сказать, что Table, собственно, и использовать-то не надо? Просто управлять базой при помощи SQL-запросов через TQuery?


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
gray_k
Дата 22.7.2004, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1015
Регистрация: 9.1.2003
Где: Москва

Репутация: 3
Всего: 22



Цитата
Всмысле ты хочешь сказать, что Table, собственно, и использовать-то не надо? Просто управлять базой при помощи SQL-запросов через TQuery

Если у тебя выбор из одной таблицы, то установив параметр RequiredLive в true, ты сможешь работать с TQuery так же как из TTable, т.е. редактировать, удалять и вставлять записи.
Может ты подробнее свою задачу опишешь. У меня создалось впечатление, что ты абсолютно не понимаешь принципов работы с БД в Дельфи.
Какие операции с данными ты хочешь производить?


--------------------
С уважением.
Gray.
PM MAIL   Вверх
MacTep
Дата 22.7.2004, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: 4
Всего: 4



Для gray_k:
я хочу добавлять, удалять, сортировать, выбирать по определенному полю записи из базы данных. Почему ты решил, что я не понимаю принципов работы БД? Где это видно? Просто я читал в книге, что TQuery только отображает записи при какой-либо выборке (или еще каких-нибудь действиях). Вот поэтому и спрашивал, что и как. Спасибо за ответ! Если есть что сказать по этому вопросу, то буду только рад...



--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Illusion Dolphin
Дата 22.7.2004, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 36
Всего: 63



Если надо: сохраняет запрос как обычную таблицу на диск:

Код

procedure MakePermTable(Qry: TQuery; PermTableName: string);
var
 h: HDBICur;
begin
if Qry.Active then Qry.Close;
Qry.Prepare;
dbiQExec(Qry.StmtHandle, @h);
DbiMakePermanent(h, PChar(PermTableName), True);
end;


Потом открывай это с помощью TTable и делай что хочешь...


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
MacTep
Дата 22.7.2004, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: 4
Всего: 4



Вот это уже намного конкретнее. Только еще вопрос (попутный): что за процедуры такие, которые начинаются с dbi, например, dbiQExec(Qry.StmtHandle, @h); или DbiMakePermanent(h, PChar(PermTableName), True);? Много их видел во всяких исходниках, но не знаю, что они делают! smile.gif



--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
MacTep
Дата 23.7.2004, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: 4
Всего: 4



Illusion Dolphin, в разделе Uses какой модуль добавить надо?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Смысл моего вопроса таков: надо мне после сортировки НД при помощи запроса в TQuery поместить получившийся набор данных в TTable, чтобы дальше им манипулировать там. Вот!




--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
gray_k
Дата 23.7.2004, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1015
Регистрация: 9.1.2003
Где: Москва

Репутация: 3
Всего: 22



Цитата
получившийся набор данных в TTable, чтобы дальше им манипулировать там. Вот!

А почему нельзя манипулировать в TQuery?


--------------------
С уважением.
Gray.
PM MAIL   Вверх
gray_k
Дата 23.7.2004, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1015
Регистрация: 9.1.2003
Где: Москва

Репутация: 3
Всего: 22



Кстати ещё вариант - заполнить TClientDataSet, и произвести опрерации с ним. Затем при необходимости сохранить.


--------------------
С уважением.
Gray.
PM MAIL   Вверх
<Spawn>
Дата 23.7.2004, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Цитата
А почему нельзя манипулировать в TQuery?

Я вот тоже этого не понимаю. Все равно для манипуляции данными используется TDataSource, инкапсулирующий TDataSet, который собственно хранит и позволяет управлять полученым набором данных.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
December
Дата 23.7.2004, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Цитата
А почему нельзя манипулировать в TQuery?

Потому что некоторые вещи (как это написано в хелпе) можно сделать именно с помощью TTable.
Цитата
что за процедуры такие, которые начинаются с dbi,

Это "низкоуровненвые" процедуры БДЕ. Справк по ним можешь почитать в хелпе по БДЕ.



--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Illusion Dolphin
Дата 23.7.2004, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 36
Всего: 63



MacTep
Цитата
в разделе Uses какой модуль добавить надо?

uses ...DBTables, BDE, ....;


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0534 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.