Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Посоветуйте выбор свзки компонентов, учет ремонта оборудования 
:(
    Опции темы
Hexel
Дата 26.9.2011, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Добрый день!

Посоветуйте пожалуста какой набор компонент взять для решения задачи. Нужно наладить учет ремонта оборудования на 2 уровнях: менеджера (принимает и выдает технику) и мастера (собственно выполняет диагностику и чинит). Процесс происходит в несколько этапов с участием того либо иного работника. Со структурой БД вроде определился, с СУБД тоже (MS SQLExpress). Делфи 2009. Проект в большей степени образовательный, чем прикладной.
На текущий момент думаю, удачно будет взять TClientDataSet плюс dbExpress. В чем основной вопрос - я хочу наверное создать компонент типа ListView, котрый берет запрос SQL и отображает его в табличном виде, а названия заголовков берет из специальной таблицы алиасов. Он также должен поддерживать изменение датасета, но при этом изменения записывать видимо с помощью запросов в соотв таблицы БД. Вот тут для меня сложность. Когда-то я пытался редактировать непостредственно датасет с запросом, но ничего не вышло.
Если я правильно понял, мне нужен ClientDataset, подключаемый к БД через DatasetProvider. При команде на внесения изменений ClientDataset вызывает встроенный компонент SQLResolver, который выполняет описанную выше процедуру: разбивает изменения, внесенные в запрос на изменения, вносимые в конкретные таблцы (правда не совсем понятно по какому алгоритму). Если так, то можно посмотреть пример такого механизма или его описание? Может есть более технологичный способ решения изменения датасета на основе запроса? Еще раз скажу, что пример больше для набивания руки в делфи 2009, хотя и результат тоже пригодится)
PM MAIL   Вверх
Akella
Дата 28.9.2011, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Цитата(Hexel @  26.9.2011,  22:32 Найти цитируемый пост)
На текущий момент думаю, удачно будет взять TClientDataSet плюс dbExpress. 

1. Чем это обоснованно?

2. Почему не ADO (dbGo)?


PM MAIL   Вверх
Hexel
Дата 28.9.2011, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Akella
спасибо добрый человек) я уже думал не увижу АДО)

TClientDataSet мне нравиться тем, что я могу с его помощью сделать редактируемый запрос. раньше у меня такое не получалось с например TADOQuery. то есть, я получаю датасет тем же ADOQuery без кеширования (forward only, как-то так) и заливаю его в ClientDataSet, где преспокойно его редактирую. если я правильно понял, он логирует внесенные изменения, и по команде на обновление эти изменения магическим образом преобразовываются в изменения исходных таблиц БД. вот тут и нужна подсказка, как и чем лучше реализовать такой процесс?
PM MAIL   Вверх
Akella
Дата 29.9.2011, 14:21 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Я не понимаю что нужно? Что за форварды, редактируемые запросы.....
Что в твоём представлении "редактируемый запрос"? Или ты просто не разбираешь в терминологии?
PM MAIL   Вверх
superVad
Дата 29.9.2011, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

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



Цитата(Hexel @  28.9.2011,  19:03 Найти цитируемый пост)
я получаю датасет тем же ADOQuery без кеширования

Что бы это могло значить? С помощью ADOQuery ты получаешь набор данных. А датасет это компонент такой (TADODataSet например).

Тебе надо с терминологией разобраться - а то я чувствую себя слегка странно когда твой вопрос читаю.
PM MAIL   Вверх
Akella
Дата 29.9.2011, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



датасет = DataSet = НД = Набор Данных

запрос <> НД

Добавлено через 13 секунд
да, давайте тут азы изучать!
PM MAIL   Вверх
Frees
Дата 29.9.2011, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

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



Цитата(Akella @  29.9.2011,  19:56 Найти цитируемый пост)
запрос <> НД

в ADO  TADOQuery - набор данных по нему можно ходить в вперед и назад по записям и вроде редактировать запись, ADO както разбирается какой UPDATE сделать....

Добавлено через 1 минуту и 26 секунд
если взять TpFIBQuery например то там можно идти по записям только вперед...


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Hexel
Дата 29.9.2011, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Народ, я прошу прощения за туман) я правда не совсем разбираюсь, но хочу все прояснить, хотя бы для себя. пока что как я понимаю:
запрос - текстовое выражение, содержащее описание необходимых данных
датасет (набор данных) - таблица, содержащая данные, выбранные на основе запроса. то есть если я буду говорить за датасет как компоненту, я буду писать TDataset или Dataset
что в моем понимании кэшируемый датасет - набор данных, загруженный в озу после выполнения запроса. допускает произвольное позиционрование и перемещение назад и вперед
некэшируемый - датасет, который не загружается в озу, а используется для однократного перебора записей от первой к последней. произвольное позиционирование и переход назад не допускает.
"редактируемый запрос" - датасет, посредством которого можно редактировать данные в БД в виде выборки из нескольких таблиц. насколько я знаю, ADOQuery не допускает Insert, Delete и Edit. а мне нужно чтоб допускал, и в конечном счете внесенные в датасет изменения раскидать по таблицам БД, на основе которых был построен набор данных.
ну уже если и тут я все напутал, посоветуйте литературу! =)

кстати, а как использовать Update? всегда, когда я вызывал эту процедуру в ADOQuery, она отвечала мне, что недостаточно информации для обновления.
PM MAIL   Вверх
Данкинг
Дата 30.9.2011, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(Hexel @  29.9.2011,  23:30 Найти цитируемый пост)
кстати, а как использовать Update? всегда, когда я вызывал эту процедуру в ADOQuery, она отвечала мне, что недостаточно информации для обновления. 

Сначала пробуешь запрос в самой СУБД. Исправляешь ошибки. Потом строку с запросом переносишь в ADOQuery.SQL.

Добавлено через 47 секунд
Цитата(Hexel @  29.9.2011,  23:30 Найти цитируемый пост)
запрос - текстовое выражение, содержащее описание необходимых данных

Эко ты загнул. smile

Добавлено через 1 минуту и 48 секунд
Цитата(Hexel @  29.9.2011,  23:30 Найти цитируемый пост)
ADOQuery не допускает Insert, Delete и Edit

Edit к запросам явно не относится, но ADOQuery всё это тем не менее понимает.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 30.9.2011, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Цитата(Hexel @  29.9.2011,  22:30 Найти цитируемый пост)
"редактируемый запрос" - датасет, 


Цитата(Hexel @  29.9.2011,  22:30 Найти цитируемый пост)
запрос - текстовое выражение,


ты сам себе противоречишь

Добавлено через 27 секунд
редактируемый не запрос, а набор данных

Добавлено через 1 минуту и 43 секунды
Hexelтебе нужно почитать литературу.
На сим считаю вопрос исчерпанным.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


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

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

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


 




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


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

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