Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Базы данных и репортинг > использование Ado |
Автор: Golar 20.6.2006, 21:58 |
Подскажите пожалуйста, я только начала изучать БД. если я пишу прогу с БД на Delphi и использую Access, то лучше работать с вкладкой Ado. у меня возникла проблема, наверно глупая, но я не знаю как ее решить. как отразить булевское поле в DBGrid, чтобы там было не true||false?, а например муж//жен? не используя создание полей для AdoQuery и установку там св-ва DisplayValues? |
Автор: Palladin 20.6.2006, 22:26 |
Тебе обязательно для этого использовать DBgrid, если да то это сделать сложно(покрайней мере мне сложно![]() Если подходит такой вариант отпиши здесь или мне на аську 243673233, я смогу помочь, лучше в асю там быстрее ![]() |
Автор: Golar 20.6.2006, 22:37 |
спасибо, но при вставке у меня проблем пока нет, а проблема: как отразить запрос select уже существующей таблицы с булевским полем. удобнее всего конечно создать поля для adoquery, но мне нужно этот же компонент(adoquery) использовать для запросов из др. таблиц, а тогда он ругается!!! это плохо, если у меня на одной форме будет несколько adoquery, отвечающих каждый за свою таблицу? Добавлено @ 22:44 а как определить кол-во записей в запросе селект, не пользуясь спец. функцией count? есть какое-нибудь поле? |
Автор: Palladin 22.6.2006, 06:26 | ||
Незнаю точно, но это вроде как невозможно, через селект я думаю нельзя, да и зачем это может быть нужно когда можно просто:
|
Автор: bas 22.6.2006, 08:24 |
http://www.citforum.ru/programming/advice/advice04.shtml |
Автор: skyboy 22.6.2006, 10:46 | ||||||||||
Golar, можно запрос просто сформулировать типа такого:
Где id1 и field1 - какие-то "левые" поля, к сути дела отношения не имеющие, но подчёркивающие логику запроса. Идея ясна? Объединаяешь два запроса, каждый из которых в нужной позиции возвращает тебе пол константой... Правда, мне не нравится константы. Я бы использовал ещё одну таблицу idsex: logical name_sex: string True Муж False Жен И запрос тогда выглядел бы так:
или так(будут выведены записи только тех людей, у которых пол указан):
или так(у тех, у которых пол не задан, будет выведено "бесполое создание")
или так(у тех, у которых пол не задан, будет возвращено значение "null")
Этот метод "требует" наличия дополнительной таблицы, но если захочешь изменить названия полов(например, на "man"/"woman" или ещё чего), не придётся менять запрос, доступа к которому к тому времени уже может не быть(на руках - только программа без исходников) примечание: как мне кажется, UNION ALL будет работать бустрее UNION, так как не будет искать повторяющиеся значения. Если не прав - прошу меня исправить. |
Автор: Savek 22.6.2006, 11:37 |
А чем не нравится DisplayValue? Мне кажется гораздо проще управлять отображением булевых значений так ADOQuery.Open; TBooleanField(ADOQuery.FieldByName('Sex')).DisplayValue:='Муж;Жен'; |
Автор: Golar 22.6.2006, 13:23 |
Спасибо большое!!!! ![]() |