![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
camakob |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 8.1.2008 Репутация: нет Всего: нет |
Добрый день!
Есть база данных, где есть символьное поле Name длиной 100 символов, мне нужно выбрать те записи, где содержатся в этом поле слова "системы поддержки решений". Таких записей может быть или одна или несколько. Эту опреацию нужно реализовать в виде экранной формы. Кто что может посоветовать? |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
Что такое "экранная форма", не понял? Запрос же
К теме не относится, но всё же: а почему не по максимуму - 254 символа? Мало ли, что туда вписываться будет. Это сообщение отредактировал(а) Данкинг - 28.12.2009, 12:20 -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
camakob |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 8.1.2008 Репутация: нет Всего: нет |
Спасибо за ответ. Да это дочке в институте дали. Может экранная форма это синоним слова запрос. Я последний раз с продукцией фирмы Fox Software(до поглощения Micrisoft) сталкивался лет 20 назад, писал маленькие программки на Foxbase, до этого на Clipper и dbase 3+(вроде Карат назывался по-русски), а руссифицированный Clipper назывался по-русски ПЭВМ-база, в Калинине(Тверь) была фирма вроде "Цетрпрограммсистем", она клепала. Эх молодость, молодость!!!
Разница конечно большая. Я написал примерно следующий код: close data all clear bd_name=" LITER.DBF " @1,3 say "Укажите БД:" get bd_name read bd_name=ALLTRIM(bd_name) if !FILE(bd_name) clear @3,3 say "НЕТ ТАКОЙ БАЗЫ ДАННЫХ!" return endif select * from dbf() where 'системы поддержки решений' $name Close Databases all Соответственно у меня пустая форма выскакивает. Может Нужно наверное вставить после select что-то типа print или display? И второй пункт: выбор из списка одного из представленных в таблице издательств PUBLISHER(база данных это книги(название, издательство, год выпуска и т. д.). Подскажите если не затруднит, а то из книг только Foxpro 2.0 1993 года выпуска(А.А.Попов) и в магазин жена гонит за продуктами. |
|||
|
||||
Данкинг |
|
||||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
Так уточнить тогда надо. По-моему, на клиппере и фоксе 2.6 были такие какие-то понятия. Даже такой был? ![]() ![]() Это же клипперные операторы, а у нас речь о фоксе всё же. Там есть InputBox, например (в общем-то, справка у фокса отличная, описаны все операторы с массой примеров). В нашем случае должно быть как-то так:
Не понял, что требуется. ![]() Ужас какой, наверное. ![]() -------------------- There's nothing left but silent epitaphs. |
||||
|
|||||
camakob |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 8.1.2008 Репутация: нет Всего: нет |
Спасибо, я сделал так:
close data all clear bd_name=" LITER.DBF " @1,3 say "Укажите БД:" get bd_name read bd_name=ALLTRIM(bd_name) if !FILE(bd_name) clear @3,3 say "НЕТ ТАКОЙ БАЗЫ ДАННЫХ!" return ENDIF use &bd_name alias bd in 0 select bd *** a)открытие таблицы LITER.DBF с описанием публикаций по системам поддержки решений select * from dbf() where 'Системы поддержки принятия решений' $name *** b)выбор из списка одного из представленных в таблице издательств (поле PUBLISHER) ***go top ***izdat="Наука" ***@3,1 say "Введите название издательства" get izdat go top clear select * from dbf() where 'Наука' $publisher *** c)для всех записей, в поле PUBLISHER которых присутствует указанное пользователем *** издательство, вывести на экран таблицу с указанием года и числа публикаций (при *** пустом вводе издательства должна быть выведена таблица по всем издательствам); Close Databases all Только у меня если первый запрос нормальный выходит, то второй почему-то пустой, хотя в БД где-то 15 книг, выпущенных издательством "Наука", может после первого запроса закрыть базу и снова открыть? Я тоже потом немного на американском Clipperе программировал. Если Ваш папа работал на ЕС ЭВМ(были такие большие машины, передранные у американцев), то он может сталкивался с СУБД "ADABAS"(Триада), классная была вещь. |
|||
|
||||
Данкинг |
|
||||||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
Может быть, они в разных регистрах написаны? Конечно, в идеале следует приводить к одному регистру:
Нет, ничего такого не помню. Помню, была у него тетрадка во всякими Клипперными операторами. ![]() -------------------- There's nothing left but silent epitaphs. |
||||||
|
|||||||
camakob |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 8.1.2008 Репутация: нет Всего: нет |
Спасибо. Только UPPER не помогает, им преподаватель дал набитую базу данных, там если в издательстве "Наука", то именно все слова русскими буквами так и набиты. Будем дальше экспериментировать.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |