| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > TQuery и TTable - перегон |
| Автор: MacTep 22.7.2004, 14:31 |
| Как из компонента TQuery после определенного запроса все записи перегнать в TTable? Ведь после выполнения запроса получается как бы виртуальный набор данных, а не действительный. Как сделать так, чтобы после запроса можно было бы работать с набором данных как с действительным? |
| Автор: <Spawn> 22.7.2004, 14:52 | ||
MacTep Не понял тебя. Выполняешь SELECT, полсле этого стандартным образом используешь:
|
| Автор: MacTep 22.7.2004, 14:56 |
| Да, то, что ты написал, все это ясно! Но мне надо именно так сделать, чтобы из результата какого-то запроса получить эот получившийся набор данных и в Table. А вот ето как сделать? |
| Автор: <Spawn> 22.7.2004, 15:19 | ||
MacTep А зачем в Table то? Ну можешь сделать подобным образом. Но я не мойму зачем это нужно.
|
| Автор: MacTep 22.7.2004, 17:21 |
| Всмысле ты хочешь сказать, что Table, собственно, и использовать-то не надо? Просто управлять базой при помощи SQL-запросов через TQuery? |
| Автор: gray_k 22.7.2004, 17:35 | ||
Если у тебя выбор из одной таблицы, то установив параметр RequiredLive в true, ты сможешь работать с TQuery так же как из TTable, т.е. редактировать, удалять и вставлять записи. Может ты подробнее свою задачу опишешь. У меня создалось впечатление, что ты абсолютно не понимаешь принципов работы с БД в Дельфи. Какие операции с данными ты хочешь производить? |
| Автор: MacTep 22.7.2004, 23:02 |
| Для gray_k: я хочу добавлять, удалять, сортировать, выбирать по определенному полю записи из базы данных. Почему ты решил, что я не понимаю принципов работы БД? Где это видно? Просто я читал в книге, что TQuery только отображает записи при какой-либо выборке (или еще каких-нибудь действиях). Вот поэтому и спрашивал, что и как. Спасибо за ответ! Если есть что сказать по этому вопросу, то буду только рад... |
| Автор: Illusion Dolphin 22.7.2004, 23:31 | ||
Если надо: сохраняет запрос как обычную таблицу на диск:
Потом открывай это с помощью TTable и делай что хочешь... |
| Автор: MacTep 22.7.2004, 23:43 |
| Вот это уже намного конкретнее. Только еще вопрос (попутный): что за процедуры такие, которые начинаются с dbi, например, dbiQExec(Qry.StmtHandle, @h); или DbiMakePermanent(h, PChar(PermTableName), True);? Много их видел во всяких исходниках, но не знаю, что они делают! |
| Автор: MacTep 23.7.2004, 08:49 |
| Illusion Dolphin, в разделе Uses какой модуль добавить надо? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Смысл моего вопроса таков: надо мне после сортировки НД при помощи запроса в TQuery поместить получившийся набор данных в TTable, чтобы дальше им манипулировать там. Вот! |
| Автор: gray_k 23.7.2004, 09:53 | ||
А почему нельзя манипулировать в TQuery? |
| Автор: gray_k 23.7.2004, 10:27 |
| Кстати ещё вариант - заполнить TClientDataSet, и произвести опрерации с ним. Затем при необходимости сохранить. |
| Автор: <Spawn> 23.7.2004, 10:48 | ||
Я вот тоже этого не понимаю. Все равно для манипуляции данными используется TDataSource, инкапсулирующий TDataSet, который собственно хранит и позволяет управлять полученым набором данных. |
| Автор: December 23.7.2004, 12:16 | ||||
Потому что некоторые вещи (как это написано в хелпе) можно сделать именно с помощью TTable.
Это "низкоуровненвые" процедуры БДЕ. Справк по ним можешь почитать в хелпе по БДЕ. |
| Автор: Illusion Dolphin 23.7.2004, 16:57 | ||
MacTep
uses ...DBTables, BDE, ....; |
| Автор: MacTep 23.7.2004, 23:12 |
| Еще вопрос: как при помощи TQuery добавить запись в таблицу? Знаю, что надо использовать запрос типа INSERT INTO <таблица> (список_полей) VALUES (список_значений). Но не знаю, как сделать так, чтобы вместо списка значений подставить переменные. Например, есть у меня форма, в которой я заполняю определенные поля данные из этих полей надо подставить в новую запись в таблицу. Как это сделать? Напишите примерный код запроса, пожалуйста! |
| Автор: gray_k 23.7.2004, 23:27 | ||
|
| Автор: MacTep 23.7.2004, 23:55 |
| А вот за этот ответ просто огромнейшее спасибо! Супер! |