Константин А
Junior Member / Новичок
Участник № / Member № 2718
отправлено / posted
Здравствуйте, у меня возникают некотороые проблемы по работе с БД. А именно, не мего понять следующее: Пусть имеется таблица в БД где содержится список пород древесины. В таблице 2 поля: id древесины и Name - название породы. Вопрос состоит в следующем: Как при открытии данного приложения происходил бы вывод этих древесин на экран и пользователь мог бы выбрать соответвующую древесину? (наподобие ListBox)
Сообщения / Posts 15 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Если у Вас заранее известно количество строк в БД, то надо считывать поочередно нужные строки и выводить значения полей на экран. Для вывода наименования породы можно в качестве промежуочного носителя использовать строковый атрибут какого-либо канала (например, КОММЕНТАРИЙ). Если количество нужных строк в БД заранее неизвестно, надо сначала запросить их количество (по соответствующему условию), а затем выбирать нужные строки из выборки меняя ПАРАМЕТР канала, реализующего запрос. Можно организовать это как интерактивными процедурами, так и программно. В HELP это описано в разделе "Примеры SQL-запросов/.../Выборка данных из БД".
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Константин А
Junior Member / Новичок
Участник № / Member № 2718
отправлено / posted
Да, это все понятно. Так оно и будет работать, если реализовать выборку потом из списка, тыкая наугад номер древесины, чтобы показать древесину, например, ЯСЕНЬ, который в таблице содержится под номером 172. Сколько же времени потребуется пользователю и нервов тоже, чтобы выбрать из списка нужную ему древесину, тыкая, отобразить каждое дерево, начиная с номера "0" до номера "172"??? Получается, он проделает ненужную работу 172 раза.... Хотелось бы реализовать немного не так... Чтобы пользователь выбрал нужную ему древесину, глядя на весь список древесины. Пусть этот список отображался бы ListBox. Как до этого добиться? Помогите... Заранее благодарен.
Сообщения / Posts 15 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Можно создать таблицу некоторого объема, например, 60 строк. В первичном запросе выводить в таблицу первые 60 имен древесины. Оператору надо дать возможность вывести вторую группу, а при необходимости третью и т.д. Номер группы и номер строки в таблице будут идентифицировать нужную строку в таблице БД. Результатом действий оператора будет формирование запроса с идентификаторами, выбранными оператором, для получения более полной информации по выбранному типу древесины. Параметры конечного запроса могут формироваться программно в реальном времени через текстовые или числовые атрибуты вспомогательных каналов. Но, возможно, при значительной неопределенности и громозкости задачи она может быть решена путем создания специального ActiveX.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Константин А
Junior Member / Новичок
Участник № / Member № 2718
отправлено / posted
Здравствуйте еще раз. Вот начал смотреть, чтобы в таблице отображались деревья. В Helpe при использовании таблицы "переключатель каналов" используются насосы. Но какналы Насос1, Насос2, Насос3 создают в ручную и потом их показывают в таблице. В архивных таблицах - там просто в зависимости от времни показ значения.
У меня же вто что: В БД MS Aссess содержится таблица trees: id | name ============== 1 | Сосна 2 | Ель 3 | Дуб
Пользователю после открытия приложения надо указать, какое дерево ему надо обработать. Как ему выбрать данное дерево в программе? С помощью какой
Сообщения / Posts 15 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Константин А
Junior Member / Новичок
Участник № / Member № 2718
отправлено / posted
Здравствуйте еще раз. Вот начал смотреть, чтобы в таблице отображались деревья. В Helpe при использовании таблицы "переключатель каналов" используются насосы. Но какналы Насос1, Насос2, Насос3 создают в ручную и потом их показывают в таблице. В архивных таблицах - там просто в зависимости от времни показ значения.
У меня же вто что: В БД MS Aссess содержится таблица trees: id | name ============== 1 | Сосна 2 | Ель 3 | Дуб
Пользователю после открытия приложения надо указать, какое дерево ему надо обработать. Как ему выбрать данное дерево в программе? В какую таблицу записать этот спсисок деревьев и каким образом? К каком аргументу привязывать и как в этот аргумент записать весь этот список деревьев? Не понятно.
Сообщения / Posts 15 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Сделайте на экране набор ГЭ "Текст" в виде стобца из n строк. Количество строк в столбце n должно определять некую группу строк таблицы БД. Строка таблицы БД может быть определена как i=k*n+m, где аргументы экрана k - номер выбраной группы (от 0 до возможного количества групп), m - номер строки в группе (от 1 до n). Выполните запрос количества нужных строк в таблице БД и выведите первые n строк в столбец на экране. Предоставьте оператору возможность "листать" таблицу изменением аргумента k. Выводите на экран строки k-й группы. Найдя нужную группу, оператор может выбрать нужную породу дерева, указав на соответствующий ГЭ столбца на экране. При этом он в аргумент m введет номер нужной ему строки. Программно вычисляете номер строки в БД по приведенной выше формуле и делате окончательную выборку из БД всей неоходимой оператору информации из этой строки таблицы БД.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Константин А
Junior Member / Новичок
Участник № / Member № 2718
отправлено / posted
То, что нужно. Спасибо. Вроде работает, только медленно.... Медленно выводит строки "n" на экран. (количество строк на экране n = 10). Реализовал так, что полчается выполнение 10 запросов по запросу на каждую строку. Подскажите, пожалуйста, можно ли одним запросом выбрать сразу первые 10 строк и записать в соответсвующие разные 10 переменных? Например, выбрать 10 пород деревьев от номера 11 до новера 20. Если да, то как это реализовать одним запросом?
Сообщения / Posts 15 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Константин А
Junior Member / Новичок
Участник № / Member № 2718
отправлено / posted
или так бы реализовать - Допустим запрос:
SELECT tree.name #names# FROM tree WHERE id >= 11 AND id <= 20
Как бы сделатьтак, чтобы в переменную names записались все деревья, а не только последняя запись?
Сообщения / Posts 15 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
В Trace Mode 6 каждый запрос возвращает только 1 запись. Такова логика используемого интерфейса.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
arido
Forum Haunter / Завсегдатай форума
Участник № / Member № 2961
отправлено / posted
В Быстром Старте, в первой части есть пример создания БД в MS Access и обращения к ней.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
arido
Forum Haunter / Завсегдатай форума
Участник № / Member № 2961
отправлено / posted
Нужен пример "считывания" данных из БД и отображения на экране. (Запись в БД работает)
Сообщения / Posts 104 | Из / From: Россия
| IP / IP: IP адрес / IP address |
arido
Forum Haunter / Завсегдатай форума
Участник № / Member № 2961
Vjam
Forum Haunter / Завсегдатай форума
Участник № / Member № 2261
отправлено / posted
2 Констатнтин. Можно ли прислать пример как организован запрос в вашем проекте. У меня тоже проблема такого рода, только надо вывести список рецептур. выпадающий список к сожалению в ТМ не получается/ мыло vjam@mail.ru
Сообщения / Posts 136 | Из / From: Россия
| IP / IP: IP адрес / IP address |
SATER
Forum Haunter / Завсегдатай форума
Участник № / Member № 1414
отправлено / posted
Здравствуйте, Константин. Можете ли прислать Ваш пример? rokise@rambler.ru Заранее спасибо.
Сообщения / Posts 141 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
Возможно, в текущем релизе подобные задачи удобнее решать с использованием ГЭ "Таблица БД".
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |