Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.12;
Скачать: CL | DM;

Вниз

DBGrid   Найти похожие ветки 

 
Svin   (2003-11-20 08:54) [0]

Как выбрать все записи в DBGrid
DBGrid связана с DataSource


 
Zacho ©   (2003-11-20 09:07) [1]

В каком смысле выбрать ? Если отметить - то так:
DBGrid.DataSource.DataSet.First;
while not DBGrid.DataSource.DataSet.Eof do
begin
TDBGrid.SelectedRows.CurrentRowSelected:=true;
DBGrid.DataSource.DataSet.Next;
end;


 
don-do ©   (2003-11-20 09:19) [2]

>>Zacho © (20.11.03 09:07) [1]

В этом случае будет использовано много памяти, особенно если таблица большая, лучше использовать переменную, например

Tform1.AllSelected

И самому окрашивать записи.

Правда получать список нужно в этом случае самому, по нужде, а не позволять пользователю играть со свапом.


 
Zacho ©   (2003-11-20 09:28) [3]


> don-do © (20.11.03 09:19) [2]

А толку их просто окрашивать ? Посмотри, что такое TBookmarkList. И выбирать тысячи записей для отображения в гриде - моветон и издевательство над пользователем.


 
Svin   (2003-11-20 09:32) [4]

2Zacho
А без пробега по DBGrid никак нельзя?


 
Johnmen ©   (2003-11-20 09:39) [5]

А смысл ?


 
Zacho ©   (2003-11-20 09:40) [6]


> Svin (20.11.03 09:32) [4]

Разве что, действительно, окрашиванием записей вручную. Но смысл ?
И пробег не по DBGrid, а по подключенному к нему DataSet"у. Разница принципиальная.


 
Svin   (2003-11-20 09:42) [7]

Да это понятно, что по DataSet, только ведь долго это, если у меня там 600000 записей, взбесишься...


 
ЮЮ ©   (2003-11-20 09:47) [8]

>если у меня там 600 000 записей

А ты хочешь, чтобы пользователь "выбрав все" затем по одной снимал выделение с 599 000 записей? Что ты вообще хочешь добиться с помощью выделения?


 
Johnmen ©   (2003-11-20 09:47) [9]

>Svin

А смысл ?


 
mtihonov ©   (2003-11-20 09:50) [10]

Просто реплика!
Ну когда-же Вы, народ уйдете от DBFского мышления.
Есть SQL язык! Выбери что надо в запросе и делай все что надо с этой группой записей. Какой, извините идиот, будет просматривать в DBGrid с 600000 записей, вылавливать и отмечать нужные...


 
Danilka ©   (2003-11-20 09:51) [11]

[7] Svin (20.11.03 09:42)
а нафига ему столько? сколько рабочих месяцав понадобится, чтобы их все только просмотрть?


 
Svin   (2003-11-20 09:52) [12]

А если надо все, а пару не надо? :-(


 
Наталия ©   (2003-11-20 09:58) [13]

>Svin (20.11.03 09:52) [12]
>А если надо все, а пару не надо? :-(

"Не верю!" (с) Станиславский

Данные какого рода необходимо отобразить пользователю?


 
Svin   (2003-11-20 10:01) [14]

Телефоны


 
Danilka ©   (2003-11-20 10:03) [15]

если он не псих, то ему столько не надо.


 
Danilka ©   (2003-11-20 10:03) [16]

что он с таким кол-вом будет делать?


 
Наталия ©   (2003-11-20 10:04) [17]

И что пользователь будет делать с 600 000 телефонов? Просматривать их список на экране? Наверняка можно показывать не весь список этих телефонов, а выбирать их по какому-нибудь условию?


 
Svin   (2003-11-20 10:07) [18]

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


 
Sergey13 ©   (2003-11-20 10:09) [19]

2Наталия © (20.11.03 10:04) [17]
>И что пользователь будет делать с 600 000 телефонов?
Звонить всем подряд. 8-)


 
Наталия ©   (2003-11-20 10:10) [20]

это программа-интерфейс для обновления базы данных по абонентам... если не нужно добавлять пару телефонов, а остальные добавить...

Вот с этого места поподробнее... Зачем для обновления БД показывать её в Grid?


 
Zacho ©   (2003-11-20 10:11) [21]


> Svin (20.11.03 10:07) [18]

Не делаются так интерфейсы. По крайней мере нормальные. Во-первых, можно сделать наоборот - отмечать ненужные записи, а во-вторых - такое кол-во записей в наборе данных все равно не нужно, да просто не сможет нормальный человек с таким нормально работать. Обычно делаются всяческие многоуровневые классификаторы, фильтры и т.п. Ведь все равно пользователь отбирает эти телефоны по каким-то критериям.


 
Svin   (2003-11-20 10:20) [22]

Да нет тут критериев, тут они чисто визуальные, это для администратора Call-Center"а.. ну не буду же я вам щас рассказывать полностью задачу, да и не могу... нельзя... вообщем пойду по пути №1


 
Danilka ©   (2003-11-20 10:25) [23]

бедные админы калл-центра. Svin надеюсь, тебя ждет легкая смерть, сразу задушат, без пыток.
а если серьезно, то с таким подходом, в лучем случае они промучаются недолго и закажут где-нибудь в другом месте решение задачи, а тебя выгонят.
В худшем для них случае - они будут мучиться долго, пока где-нибудь не увидят человечью альтернативу. Результат, правда, для тебя все равно будет одинаковым.


 
Zacho ©   (2003-11-20 10:29) [24]


> Svin (20.11.03 10:20) [22]

Не верю. Не бывает так, что бы критериев не было. Ни разу в жизни не видел, ни для какой задачи. Бывает, конечно, что просто надо выбрать записи по какому-то уникальному идентификатору и т.п., но для этого вовсе не нужно показывать всю таблицу в гриде, такие задачи по другому решаются.


 
Svin   (2003-11-20 10:32) [25]

Блин, ну прям гении все.. SQL ипользуй и т.д., а то я его совсем не использую, пользуюсь примитивным select * from Table1... :-) при воможностях-то Transact SQL :-)
Нет, чтобы подсказать, начинают спрашивать фигню всякую и хамят...

>а если серьезно, то с таким подходом, в лучем случае они промучаются недолго и закажут где-нибудь в другом месте решение задачи, а тебя выгонят.
То-то я дурак такой.. столько лет тут работаю.. :-(


 
Zacho ©   (2003-11-20 10:39) [26]


> Svin (20.11.03 10:32) [25]

Да при чем тут гении - не гении ? Ты вот сам попробуй визуально найти нужную запись из 600000. Сколько дней на это уйдет ? Лично у меня такая программа сразу же в Recycled Bin оказалась бы.
И что подсказывать ?
Ну вот, например, решение: возьми TDBGridEh, там можно выделить/снять выделение со всех записей одним щелчком мышки. А толку ?


 
Svin   (2003-11-20 10:50) [27]

Говорю же надо.. несколько человек обсуждали, все инженеры.. не найден нами другой способ решения.. нашли бы, я и спрашивать не стал.. все вообщем... извините, сорвался..


 
Danilka ©   (2003-11-20 10:57) [28]

>если не нужно добавлять пару телефонов, а остальные добавить

почему-бы просто не вывести стринг-лист, куда-бы они ручками забили эту пару телефонов?
зачем тащить все на клиента и вываливать в грид, когда нужна только пара телефонов?


 
Кулюкин Олег ©   (2003-11-20 10:59) [29]

2 Svin
Ну если уж они уперлись и хотят заставить человека отсматривать 600000 записей, разбейте набор данных на маленткие группы (записей по 1000-2000 :)
Пускай частями заливают.
+ добавьте кнопку "Залить все".


 
Zacho ©   (2003-11-20 11:08) [30]


> Danilka © (20.11.03 10:57) [28]

Был у меня эпизод, когда директор долго и настойчиво убеждал меня, что просто необходимо видеть всю номенклатуру товаров в гриде. В конце концов оказалось, что просто он имел в виду, что нужен поиск по штрих-коду по всей номенклатуре. И добавление найденого товара в накладную. Естественно, для этого грид вообще не нужен. :)
Может и в этом случае что-то аналогичное ?


 
Sergey13 ©   (2003-11-20 11:10) [31]

2Svin (20.11.03 10:20) [22]
>ну не буду же я вам щас рассказывать полностью задачу, да и не могу...
При таких условиях, чего ты хочешь. Мы же твоих условий не знаем.

>нельзя...
Военная тайна? 8-)

>вообщем пойду по пути №1
А мы пойдем другим путем. (с) В.И.Ульянов (Ленин) 8-)


 
Danilka ©   (2003-11-20 11:12) [32]

[30] Zacho © (20.11.03 11:08)
:))
наверняка, что-то подобное. наверняка список пары телефонов которые не надо обновлять уже где-то есть, не только у оператора в голове.


 
Svin   (2003-11-20 11:15) [33]

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


 
Danilka ©   (2003-11-20 11:17) [34]

[33] Svin (20.11.03 11:15)
а нафига грид???
пусть ручками напишет эти две, хоть в мемо-поле, хоть в лист-боксе.
и радиобуттон: "обновить выбранные телефоны"/"обновить все, кроме выбранных телефонов".


 
Наталия ©   (2003-11-20 11:17) [35]

Svin (20.11.03 11:15) [33]
А если ему не нужно их просматривать, зачем их тогда в гриде отображать?


 
Svin   (2003-11-20 11:27) [36]

>а нафига грид???
>пусть ручками напишет эти две, хоть в мемо-поле, хоть в лист-боксе.
Хм...
А если он их не знает.. даже без если.. он из НЕ знает..

>А если ему не нужно их просматривать, зачем их тогда в гриде отображать?
диапазон от 1 до 600000... надо отображать..


 
Danilka ©   (2003-11-20 11:34) [37]

[36] Svin (20.11.03 11:27)
>он из НЕ знает..
А как тогда он глянув на номер узнает надо его обновлять или нет???


 
Кулюкин Олег ©   (2003-11-20 11:35) [38]


> А как тогда он глянув на номер узнает надо его обновлять
> или нет???

Вспомнит, что залил его вчера :))

2 Svin
600000 это максимум или обычное рабочее число?


 
Svin   (2003-11-20 11:38) [39]

>600000 это максимум или обычное рабочее число?
максимум...

>А как тогда он глянув на номер узнает надо его обновлять или нет???
Гы.. :-) по твоему а я только с телефонами работаю, а адреса, организации кому он принадлежит тут отсутствуют?


 
Zacho ©   (2003-11-20 11:44) [40]


> Svin (20.11.03 11:38) [39]

Значит критерии для выбора все-таки есть ! Вот и делайте фильтр по ним. Например, по конкретной улице, и/или по организациям, название которых начинается с такого-то слога и т.д.



Страницы: 1 2 вся ветка

Текущий архив: 2003.12.12;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.014 c
4-36885
NikolayP
2003-10-17 18:55
2003.12.12
Считывание из файла при запуске программы


1-36651
g-l-u-k
2003-11-23 18:36
2003.12.12
DsgnIntf - не найден


1-36666
Great DAN
2003-11-30 00:40
2003.12.12
Как разделить форму?


1-36752
Blamyr
2003-12-01 23:24
2003.12.12
Как поймать нажатие кнопки Tab


3-36520
Sergey G
2003-11-21 11:42
2003.12.12
Access и два поля как PrimaryKey