Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пакетное редактирование 
:(
    Опции темы
Beltar
Дата 21.5.2008, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Требуется заменить в наборе данных сразу много полей. Например ошибочно ввели 50 записей и надо у всех 50 поменять одно или несколько полей.
Вот сижу думаю. Самое логичное, показать окошко с DBLookUPComboBox'ами и т. п. Слева, критерии поиска, справа на что заменяем. Конечно 2 комбобокса связанные с одной таблицей не смогут показывать разные значения, но можно на сервере создать для справочных таблиц "копии" в виде вьюсов. Но создавать в БД какие-то структуры отличные от самих данных не хочется.
С другой стороны, у меня и так есть фильтрация данных, было бы неплохо реализовать такую схему:
Этой же фильтрацией получить выборку в TADOQuery и всю эту выборку обработать. Можно по ней просто пройтись циклом for:
Код

try
ADOConnection.BeginTrans;
QSearch.First;
for i:=0 to QSearch.RecordCount-1 do
  begin
  QSearch.Edit;
  ...ну и т. д.
  end
ADOConnection.CommitTrans;
except
ADOConnection.RollbackTrans;
end;


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


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
X-Vlad
Дата 22.5.2008, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Требуется заменить в наборе данных сразу много полей. Например ошибочно ввели 50 записей и надо у всех 50 поменять одно или несколько полей.



а нельзя повесится на BeforePost у датасета и недавать юзеру вводить плохие данные?
непонимаю зачем давать пользователю вводить данные а потом их менять. Юзер хоть об этом знает? smile 


--------------------
Хорошая штука - комп..:)
www.x-vlad.com
PM MAIL WWW ICQ   Вверх
Zmitro
Дата 22.5.2008, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



логичнее делать чтобы юзер сразу вводил правильные данные к примеру через DBLookupComboBox - тогда и править записи не придется никогда.
PM MAIL   Вверх
Beltar
Дата 22.5.2008, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Правильность выбора нужного из допустимых значений вообще-то не проверяется в принципе без создания компьютера умеющего читать мысли пользователя. smile  

Цитата

непонимаю зачем давать пользователю вводить данные а потом их менять.


А он за их правильность и отвечает. И никто не отменял таких систем, где сидят тети и только тем и занимаются, что ищут нужные записи и правят их, или добавляют новые. Я такую БД по приборам делал, которых очень много и которые периодически поверяются и все изменения должны фиксироваться в базе. Можно конечно понаставить ограничений, какая тетенька к каким полям будет иметь доступ, но не тот случай.

Конкретно что сейчас делаю: БД в которую заносятся данные по изготовленным резиновым смесям, в месяц их делается 40-50 тыс. шт. За раз один резиносмеситель может изготовить до 130 шт. Ес-но из них 99% годные и занесение ес-но по принципу: с номера a по номер b, и все параметры идентичны. Даже если вероятность указать не ту смену или номер резиносмесителя незначительны, исправить ошибку в 100 записях без написания запроса просто мегагеморно. Но ес-но пользователь запросы писать не умеет и никто ему этого не даст, я уж не говорю, про массовое удаление (точнее просто ставится признак стирания, окончательно удалять всем подряд ес-но непозволено), которое все равно делать надо иначе за год в таблице будет 500000 записей.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
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.0812 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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