![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Приветствую.
Прошу помочь по дельфи... Возникла такая проблема: Необходимо сделать программу-базу медикаментов с описаниями. Пользователь её открывает, вводит в поле название медикамента и получает его описание в отдельной форме. Версия дельфи у меня CodeGear Delphi 2007, поэтому с BDE очень геморно. Решил использовать связку ADO&MSACCESS. Написать за меня программу не прошу, только подкинуть пару советов ![]() Базу создал (База: Медикаменты. Поля: Название и Описание). На поле кинул: ADOConnection, ADOQuery, DataSource и DBText для отображения информации. Ну и естественно один TEdit и TButton. Обработчик кнопки сделал таким: Цитата:
Теперь сам вопрос: Как сделать так, чтобы если по базе ничего не нашлось выводилось сообщение? Нужно ли заморачиваться с программой, если придётся переносить её на другой компьютер, как это было с BDE? Или в случае с ADO нужно скопировать только программу и базу? Заранее благодарен всем отписавшим) |
#2
|
|||
|
|||
![]() 1. проверять свойство RecordCount у ADOQuery1
2. нет, надо будет только поменять строку подключения. |
#3
|
|||
|
|||
![]() Цитата:
![]() Поля в БЛ два: Название и Описание DataField у DBText выставил Описание. Запрос у ADOQuery такой: Цитата:
Если в Edit1 ввести Форте, то в DBText ничего не выводится. А если написать "Повышает" (т.е начало полного описания), то в DBText появляется полное значение поля Описание... Быть может я запрос неправильно составил или значения не правильно выставил? В дельфи опыта практически нет, поэтому прошу сильно не пинать ![]() Цитата:
![]() |
#4
|
|||
|
|||
![]() Допёр самостоятельно, из-за чего собственно и рад
![]() Запрос должен быть таким: Цитата:
|
#5
|
|||
|
|||
![]() C RecordCount тоже разобрался:
Цитата:
![]() |
#6
|
|||
|
|||
![]() Следующая проблема появилась быстрее, чем я ожидал
![]() В общем нужно сделать список всех медикаментов, которые находятся в базе (как слева в chemax, т.е поле с списком и вертикальным скроллом. При клике на одну из записей выводится информация из поля БД "Описание" в DBMemo). Какой компонент лучше использовать для организации такого списка и можете привести примерчик функции, которая выведет все названия из поля "Название" в компонент? Последний раз редактировалось BlackEvil, 13.03.2009 в 19:38. |
#7
|
|||
|
|||
![]() Немного продвинулся
![]() Для списка, насколько я понимаю, используют DbListBox. Сделал так: Цитата:
Что поставить в строке: Цитата:
|
#8
|
||||
|
||||
![]() Я смотрю вы тихо сами с собой разговариваете, и находите ответы на ваши вопросы. Может вам лучше ничего не подсказывать, вы сами все найдете?
|
#9
|
|||
|
|||
![]() Цитата:
![]() Не получается...Да и информации как таковой не нашел.. Буду очень признателен, если подскажете ![]() |
#10
|
||||
|
||||
![]() Добро.
Если вы хотите выводить все строки вашего запроса возвращаемые скажем для столбца 0, то идет обход записей возвращенных запросом: Вариант первый -через Form1.ADOQuery1.RecordCount получить количество записей. Код:
А вообще, я бы рекомендовал использовать для этих целей TDbLookupListBox, для него ничего ручками заполнять не требуется. Последний раз редактировалось Admin, 14.03.2009 в 16:14. |
#11
|
|||
|
|||
![]() Страдалецъ
Большое спасибо! Пашет ![]() Цитата:
Я честно говоря между ними разницу не усекаю( Мне нужно, чтобы при клике на один из пунктов ListBox в поле DBMemo выводилась информация из поля "Описание". Насчет щелчка и его обработки думаю разберусь... А вот что лучше использовать DBListBox или DBLookUpListBox? ![]() |
#12
|
||||
|
||||
![]() Разница в том, что TDBListbox - предполагает внесение в БД значения выбранного из пользовательского списка. Т.е. обычно список не хранится в БД.
А вот DBLookupListBox как раз заполняется данными из БД и выбранное значение потом можно занести в БД. Вот и получается, что для вашего примера больше подходит DBLookupListBox |
#13
|
|||
|
|||
![]() Ух ты
![]() Насколько я понял он сразу согласовывает поля между друг другом (если указать параметры KeyField и ListField). С скроллом и прочим разберусь сам, ибо информации полно) Страдалецъ, большое спасибо за помощь! |