Форум: "Начинающим";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];
ВнизDBComboBox Найти похожие ветки
← →
Andrewtitoff © (2009-11-02 16:47) [40]
> clickmaker © (02.11.09 16:41) [35]
> > так вот допустим на Ленинском проспекте 400 лифтов, а
> мне > нужно что бы в ComboBox-е была только одна запись
> "Ленинский > пр-т"там такая что-ли таблицаЛифт1 Ленинский
> пр-т...Лифт400 Ленинский пр-тто есть текстом все адреса
> дублируются? Жесть.Беги оттуда, пока не поздно
Да!, именно так и есть, кстати на это есть свои причины, так же с номерами домов, а еще страшнее с парадными т.к. их как правило штук 5...
Но деваться мне пока что некуда отсюда.... =(((
← →
Dennis I. Komarov © (2009-11-02 16:49) [41]
> Anatoly Podgoretsky © (02.11.09 16:45) [39]
Да я понимаю, что AdoTable, я не понял [34]. К чему оно?
← →
Dennis I. Komarov © (2009-11-02 16:51) [42]
> Andrewtitoff © (02.11.09 16:47) [40]
Шаг 1.
Получи с через SQL нужный DataSet, т.е. то что нужно отображать в Combo...
← →
Andrewtitoff © (2009-11-02 16:52) [43]
> Dennis I. Komarov © (02.11.09 16:49) [41]
> > Anatoly Podgoretsky © (02.11.09 16:45) [39] Да я понимаю,
> что AdoTable, я не понял [34]. К чему оно?
Я так понял что он про то что это все в таблице отображается, но это я учел и на время заполнения таблицу отклчаю т.к. если с таблицей - то вообще страшно представить сколько это все будет тормозить... =)))
← →
Dennis I. Komarov © (2009-11-02 16:53) [44]
> Я писал, да и некоторые юзеры в режиме аблицы должны это
> видеть так что нужно...
1 - у тебя видят все, а не некоторые
2 - вряд ли тем кому нужно, действительно нужны все записи таблицы сразу
← →
Andrewtitoff © (2009-11-02 16:54) [45]
> Dennis I. Komarov © (02.11.09 16:51) [42]
> > Andrewtitoff © (02.11.09 16:47) [40] Шаг 1.Получи с
> через SQL нужный DataSet, т.е. то что нужно отображать в
> Combo...
Ну я это уже примерно понял, только подскажите мне дураку пожалуйста - как?, т.к. я неразу SQL не пользовался... =(((
← →
Sergey13 © (2009-11-02 16:55) [46]> [19] Andrewtitoff © (02.11.09 16:29)
> Как?, там только одна таблица
Как вариант.
Запросы по каждому полю с дистинктом - в отдельные "справочные" датасеты. На них лукап поля настроить.
Но по 60 полям по любому будет подтормаживать, ИМХО. Это проектирование БД ниже плинтуса так сказывается.
← →
Andrewtitoff © (2009-11-02 16:55) [47]
> Dennis I. Komarov © (02.11.09 16:53) [44]
> > Я писал, да и некоторые юзеры в режиме аблицы должны это
> > видеть так что нужно...1 - у тебя видят все, а не некоторые2
> - вряд ли тем кому нужно, действительно нужны все записи
> таблицы сразу
Бывает и так - что нужны все...
← →
Anatoly Podgoretsky © (2009-11-02 16:55) [48]
> Да я понимаю, что AdoTable, я не понял [34]. К чему оно?
К тому, что идет прямой доступ, или по крайней мере по технологии прямого доступа и спрашивается где тут место для запросов.
По последним данным тут место минимум для фильтров.
← →
Сергей М. © (2009-11-02 16:57) [49]
> первое поле ключевое и по нему индексируется
И все ? И больше ни единого индекса в этой таблице ?
А объектов учета все больше и больше в таблицу добавляется с каждым днем ?
Чудовищно..
Правильно тебе говорят - беги оттуда пока не поздно)
← →
Сергей М. © (2009-11-02 17:01) [50]
> с базами не буб-бум
Ассоциация напрашивается с приключениями Бендера в Васюках)
← →
Andrewtitoff © (2009-11-02 17:02) [51]
> Sergey13 © (02.11.09 16:55) [46]
> > [19] Andrewtitoff © (02.11.09 16:29)> Как?, там только
> одна таблицаКак вариант.Запросы по каждому полю с дистинктом
> - в отдельные "справочные" датасеты. На них лукап поля настроить.
> Но по 60 полям по любому будет подтормаживать, ИМХО. Это
> проектирование БД ниже плинтуса так сказывается.
А как запрос то делать?, я же "0" в этом... =((((
А датасеты то зачем?, мне главное в при загрузке программы по быстрому в комбобоксы запихнуть все и пускай оно там будет
Ну к сожалению база проектировалась в 90-стых если не раньше, причем заказывали "профессионалам" в Москве, а что получилось -то получилось - это отдельная тема для разговора, а сейчас приходится работать только с тем что есть... =(((
← →
Andrewtitoff © (2009-11-02 17:06) [52]
> Сергей М. © (02.11.09 16:57) [49]
> > первое поле ключевое и по нему индексируетсяИ все ? И
> больше ни единого индекса в этой таблице ?А объектов учета
> все больше и больше в таблицу добавляется с каждым днем
> ?Чудовищно..Правильно тебе говорят - беги оттуда пока не
> поздно)
А зачем еще индексировать?, и тем более все остальные поля могут повторяться, т.е. только регистрационный номер лифта уникальный и не может быть два одинаковых...
← →
Dennis I. Komarov © (2009-11-02 17:07) [53]
> Anatoly Podgoretsky © (02.11.09 16:55) [48]
Ааа, вон оно куда :)))
Лентяи из борланд ничего не придумали кроме AdoTable ;)
← →
Сергей М. © (2009-11-02 17:08) [54]
> зачем еще индексировать?
Затем чтобы запрос [28] отрабатывал максимально быстро.
← →
Jeer © (2009-11-02 17:08) [55]
> А зачем еще индексировать?, и
Начни с книжек.
← →
Сергей М. © (2009-11-02 17:10) [56]
> Jeer © (02.11.09 17:08) [55]
Какие книжки в Васюках ?
Тут бы бабла содрать по-быстрому да ноги успеть унести)
← →
Andrewtitoff © (2009-11-02 17:14) [57]
> Сергей М. © (02.11.09 17:08) [54]
> > зачем еще индексировать?Затем чтобы запрос [28] отрабатывал
> максимально быстро.
Ну в принципе индексированными наверное можно хоть все столбцы сделать, я думаю на работу других юзеров это не должно отразиться?
← →
Andrewtitoff © (2009-11-02 17:15) [58]
> Сергей М. © (02.11.09 17:10) [56]
> > Jeer © (02.11.09 17:08) [55]Какие книжки в Васюках ?
> Тут бы бабла содрать по-быстрому да ноги успеть унести)
Неправда, это я делаю совершенно бесплатно, а про ноги - это верно... =)))
← →
Сергей М. © (2009-11-02 17:17) [59]
> думаю на работу других юзеров это не должно отразиться
Не знаю.
Во-первых, ты сам сказал что нельзя.
Во-вторых, если напортачишь, то бить будут тебя, а не кого-то другого)
> делаю совершенно бесплатно
Тебе разве не хочется кушать ?)
← →
Dennis I. Komarov © (2009-11-02 17:19) [60]
> бить будут тебя, а не кого-то другого)
это неизбежно...
← →
Andrewtitoff © (2009-11-02 17:22) [61]2 Сергей М. ©
Я не говорил что нельзя ничего, я сказал что нельзя ничего - что повлияет на работу бейсиковской оболочки, а все что не повлияет - можно!
Ну а бить - то да , будут меня больно и ногами...
Ну хочется конечно, но тут другая немного ситуация, я занимаюсь этим в рабочее время т.к. я сижу на своем рабочем месте и чем то занят - мне все рабно заплатят за другую работу, даже если она не будет выполнена... =)))
← →
Сергей М. © (2009-11-02 17:25) [62]
> нельзя ничего - что повлияет на работу бейсиковской оболочки,
> а все что не повлияет - можно
Так что же мешает залезть в потроха этой оболочки да посмотреть что там на что влияет ?
← →
Andrewtitoff © (2009-11-02 17:28) [63]Да собственно ничего кроме того что я ничего не понимаю в бейсике и нет никакого желания копаться в этом д**ьме, =))))
Там вообще полный мрак, это круче того что я пишу!... =)))))
К томуже ее правили несколько человек в разные времена, а то что получилось в итоге словами не описать... =)))
← →
Dennis I. Komarov © (2009-11-02 18:17) [64]В печку ее... (С) Преображенский Ф.Ф.
← →
Сергей М. © (2009-11-02 18:19) [65]
> я ничего не понимаю в бейсике
> я с базами не буб-бум
ВизуальныйВасик - тот же ОбъектныйПаскаль (ну или наоборот), только вид сбоку.
Да и не слишком ли много этих "не знаю", "не бум-бум" ?
> нет никакого желания копаться в этом д**ьме
Ты в нем погрязнешь по самые помидоры, уверяю тебя, если будешь двигаться в том же направлении, что и сейчас.
И дело не только и далеко не столько в Васике.
← →
Sergey13 © (2009-11-03 08:39) [66]> [51] Andrewtitoff © (02.11.09 17:02)
> А датасеты то зачем?,
Это попытка организовать псевдосправочники, которых нет в реальной БД.
← →
Andrewtitoff © (2009-11-03 09:21) [67]2
> Sergey13 © (03.11.09 08:39) [66]
> > [51] Andrewtitoff © (02.11.09 17:02)> А датасеты то
> зачем?, Это попытка организовать псевдосправочники, которых
> нет в реальной БД.
Ну это то я понял, только я не понял что оно мне дает?, почему нельзя просто загрузить все в ComboBox-ы и пускай там и будет?...
← →
Sergey13 © (2009-11-03 09:36) [68]> [67] Andrewtitoff © (03.11.09 09:21)
Ну тебе же хочется "выпадающий список"?
Любая экономия на проектировании БД всегда вылезает боком на этапе написания клиента. Вот люди съекономили, а париться придется тебе.
Можно еще переписать все нафиг. Я не думаю, что вокруг единственной таблицы сильно много понагорожено. Да и записей - кот наплакал за 10 лет работы. Может ее вообще стОит перегнать в ексель, где ее видимо и "проектировали".
← →
Jeer © (2009-11-03 09:36) [69]
> почему нельзя просто загрузить
Сделать можно все.
Если же, после всего вышесказанного, ты продолжаешь считать, что оно тебе именно так и надо - делай.
← →
Andrewtitoff © (2009-11-03 10:36) [70]
> Sergey13 © (03.11.09 09:36) [68]
> > [67] Andrewtitoff © (03.11.09 09:21)Ну тебе же хочется
> "выпадающий список"?Любая экономия на проектировании БД
> всегда вылезает боком на этапе написания клиента. Вот люди
> съекономили, а париться придется тебе.Можно еще переписать
> все нафиг. Я не думаю, что вокруг единственной таблицы сильно
> много понагорожено. Да и записей - кот наплакал за 10 лет
> работы. Может ее вообще стОит перегнать в ексель, где ее
> видимо и "проектировали".
Ну жто понятно что париться мне, только яже говорю что менять могу только то - что не повлияет на работу юзеров т.к. базой пользуются ежедневно...
А какой смысл в ексель перегонять?, юзенрам нужно делать выборки и групповые операции, как они в екселе их делать будут?
> Jeer © (03.11.09 09:36) [69]
> > почему нельзя просто загрузитьСделать можно все.Если же,
> после всего вышесказанного, ты продолжаешь считать, что
> оно тебе именно так и надо - делай.
Ну меня в общем то говоря действительно все устраивает кроме тормозов при загрузке к комбобоксы..., вот я и пытаюсь от кого нибудь добиться как грамотно все это дело в них загрузить что бы это было немного побыстрее?
← →
clickmaker © (2009-11-03 10:52) [71]> вот я и пытаюсь от кого нибудь добиться как грамотно все
> это дело в них загрузить
тут второй день пытаются объяснить, что быстрее и лучше, чем select distinct в отдельные справочные датасеты, не получится. Если без переделки структуры базы
← →
Сергей М. © (2009-11-03 11:03) [72]
> кроме тормозов при загрузке к комбобоксы
Сделай неуникальный индекс по полю Fld
ADOQuery.SQL := "SELECT DISTINCT Fld FROM Tbl ORDER BY Fld";
ADOQuery.CursorType := ctOpenForwardOnly;
ADOQuery.Open;
while not ADOQuery.Eof do begin
[DB]ComboBox.Items.Add(ADOQuery.Fields[0].AsString);
ADOQuery.Next;
end;
← →
Andrewtitoff © (2009-11-03 11:03) [73]
> clickmaker © (03.11.09 10:52) [71]
> > вот я и пытаюсь от кого нибудь добиться как грамотно все
> > это дело в них загрузить тут второй день пытаются объяснить,
> что быстрее и лучше, чем select distinct в отдельные справочные
> датасеты, не получится. Если без переделки структуры базы
Это ADOQuery нужно, или можно без него?
← →
Сергей М. © (2009-11-03 11:06) [74]
> или можно без него?
Или можно. Даже еще лучше.
см. TADODataSet
← →
clickmaker © (2009-11-03 11:07) [75]> Это ADOQuery нужно, или можно без него?
да не принципиально. TADODataSet можно
← →
Sergey13 © (2009-11-03 11:15) [76]> [70] Andrewtitoff © (03.11.09 10:36)
> вот я и пытаюсь
У меня начинает складываться впечатление, что ты пытаешься добиться того, что бы кто-то за тебя написал рабочий код.
Создаешь новый датасет F28. В запросе пишешь
select distinct field28 from my_super_table
В своем ОСНОВНОМ датасете (где все записи со всеми полями) настраиваешь поле field28 как лукапное, которое "глядит" на датасет F28. В твоем гриде на поле field28 появляется выпадающий список со всеми вариантами заполнения данного поля.
Повторяешь все для остальных 59-и изменяемых полей.
На 7 тысячах записей 60 запросов с distinct будут конечно подтормаживать. Насколько - надо пробовать и проверять.
← →
Andrewtitoff © (2009-11-03 11:37) [77]С этим пока ясно, ща попробую, можно еще один маленький вопросик?, почему DBEdit считает что свойство текст пустое, пока не ткнешь один раз в него?, т.е.
if DBEdit7.DataField =Form3.ADOTable1.Fields[0].Value then
не работает при запуске программы, видимо считает его пустым, но после того как один раз ткнуть указателем мышки - все начинает работать?
← →
Dennis I. Komarov © (2009-11-03 11:38) [78]ФСЕ ФИГНЯ
1. Копируем реальную базу со всеми причиндалами на ВВ
2. Изучаем структуру базы, характер информации, проектируем нормальную
3. Пишем скрипты перегонки из старой в новую (ес-но все на нашей копии)
4. Редактируем причиндалы на ВВ до их полной работоспособности
5. Когда ужин уже давно кончился, а завтрак еще и не думал начинаться
5.1. Делаем еще одну копию реальной базы, со всеми ВВ
5.2. Создаем новую базу и перегоняем усе данные
5.3. Перегоняем все исправленные ВВ
5.4. Идем спать...
6. Когда завтрак закончился
6.1. Если у юзеров все работает, то можно приступать к написанию нормального софта
6.2. Если у юзеров ничерта не работает и вход пошли тяжелые фигуры, подставляем последнюю копию и...
← →
Andrewtitoff © (2009-11-03 11:54) [79]
> С этим пока ясно, ща попробую, можно еще один маленький
> вопросик?, почему DBEdit считает что свойство текст пустое,
> пока не ткнешь один раз в него?, т.е. if DBEdit7.DataField
> =Form3.ADOTable1.Fields[0].Value thenне работает при запуске
> программы, видимо считает его пустым, но после того как
> один раз ткнуть указателем мышки - все начинает работать?
>
Ой извините наврал, это я дурак... =)))
← →
Andrewtitoff © (2009-11-05 11:36) [80]
> Сергей М. © (03.11.09 11:03) [72]
> > кроме тормозов при загрузке к комбобоксыСделай неуникальный
> индекс по полю Fld ADOQuery.SQL := "SELECT DISTINCT Fld
> FROM Tbl ORDER BY Fld";ADOQuery.CursorType := ctOpenForwardOnly;
> ADOQuery.Open;while not ADOQuery.Eof do begin [DB]ComboBox.
> Items.Add(ADOQuery.Fields[0].AsString); ADOQuery.Next;
> end;
Написал вот так:
Form1.ADOQuery1.SQL.Text := "select distinct field1 from lift";
Form1.ADOQuery1.CursorType := ctOpenForwardOnly;
Form1.ADOQuery1.Open;
while not Form1.ADOQuery1.Eof do begin
Form2.DBComboBox1.Items.Add(Form1.ADOQuery1.Fields[0].AsString);
Form1.ADOQuery1.Next;
end;
Выдает ошибку:
"Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена"
Страницы: 1 2 3 4 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];
Память: 0.63 MB
Время: 0.011 c