| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Словари для таблицы из массива |
| Автор: Dmitriy84s 18.8.2008, 18:50 | ||
| Задача: в mysql таблице хранятся данные ввиде индексов (только цифры) все словари находятся в массиве
Как сделать так чтобы в ДБГриде вместо цифр появились значения из этого массива. |
| Автор: KotBegemotKlg 18.8.2008, 22:32 |
| Для начала надо понять, как связать массив и таблицу БД. Один из вариантов - создать двумерный массив, в первом столбце которого будут ID из базы а во втором - твои названия. Затем, для каждой записи из базы нужно произвести поиск в первом столбце массива и вернуть значение второго столбца, которое и отобразить в гриде (например как calculated поле датасета). |
| Автор: morpheyushka 19.8.2008, 13:13 |
| Ага, по скольку это словарь, то 10 000 записей в таблице вполне может быть. Интересно, пользователь не уснет пока ему все это выведут |
| Автор: Dmitriy84s 19.8.2008, 16:25 |
| Вообще возможно массив в dll кинуть и потом из проги вызывать его, а то уж больно код здоровый выходит.... |
| Автор: remax 20.8.2008, 02:51 | ||
| в датасет добавить "вычисляемое поле", в котором определить метод gettext. в дб грид выводить именно вычисляемое поле (исходное - можно выводить, но лучше спрятать). но, лучше всего этот селект сделать средствами СУБД, а не клиентской проги. хотя, если массив маленький, то и так сойдет. например kod - поле с кодом из базы yyy - вычисляемое поле тогда, в примитиве, без проверок будет выглядеть так:
|
| Автор: Dmitriy84s 20.8.2008, 09:53 | ||
нужна помощь.....этот массив нужно кинуть в dll...кто-нить знает как это сделать?
|
| Автор: remax 20.8.2008, 11:31 | ||
а зачем? |
| Автор: Dmitriy84s 20.8.2008, 11:37 |
| эт только маленькая часть огромного массива...чтобы все не хранить в запуском файле......размер меньше будет |
| Автор: morpheyushka 20.8.2008, 18:13 |
| Зачем dll. Если куда нибудь хочешь запихнуть свой массив и если он не изменяется, то добавь в проект модуль *.pas, обзови его типа MyConst.pas и засунь в него свой массив. По крайней мере ничего таскать за программой не придется |