Почему visual foxpro хороший выбор для вашей организации


Почему visual foxpro хороший выбор для вашей организации

Я лично считаю более мощным (с учетом необходимости Foxa или Delphi) Delphi + Oracle, но писать на этой связке задачу из 5 небольшеньких таблиц на 2 пользователей — глупость полнейшая, для этого Access есть.

Еще рекомендую посмотреть Centura + ее SQLBase и Centura + Oracle. (Centura — среда разработки, ориентированная на коллективную разработку крупных информационных систем на основе БД)

3. wfire , 25.09.2002 08:37
Предприятие — 2,5 тыс. работающих. Сейчас вся бухгалтерия, учет и контроль производства, склад — на FoxPro для DOS, миллион маленьких программок и миллион маленьких баз данных, весьма слабо связанных между собой. В перспективе хотелось-бы создать единую систему управления предприятием (бухгалтерия, сбыт, снабжение, склад). Вопрос: насколько подходит для этих целей VisualFox, и вообще, какое будущее у этого продукта? Наскольколько я слышал, Microsoft как-то не очень хочет его поддерживать. Так стоит ли строить на нем что-то серьезное?
4. Лом , 25.09.2002 08:59
Если реч идет о КИС (корпаративная информационная система) — Фокс не стоит ложить в основу. Delphi + нормальный SQL сервер — вполне работоспособная связка, из серверов рекомендую MSSQL2000 или Oracle 8i-9i.

Но при таких условиях — коллектив, не имеющий опыта работы с новыми средствами разработки и SQL + необходимость построения масштабной системы — я бы остановился на покупной кис + совместное с вашим отделом ИТ внедрение. Это позволило бы вам в достаточно короткий срок (порядка 1 года) получить работающию систему и накопить опыт для ее дальнейшего развития (увы, от милиона маленьких программ в реальной жизни уйти не удается, но они все работают с той же БД, что и КИС, и направлены на более эффективное решение конкретно ваших спецефических задач. КИС их конечно решает, но как и любая универсальная система — не оптимально).

5. Burn , 25.09.2002 10:32
wfire
Наскольколько я слышал, Microsoft как-то не очень хочет его поддерживать. Так стоит ли строить на нем что-то серьезное? — Ну, новые версии VFP выходят с регулярностью новых весий VS — до 7-й версии он входил в состав студии, сейчас его снова вытащили в отдельную поставку. Так что слухи о его смерти сильно преувеличины

Есть два варианта — Visual FoxPro или Delphi вместе с MS SQL Server. А более родной вариант — VFP+MS SQL Sever не расматривается?

Программисты обеими руками за VisualFox, поскольку они знают досовский Fox, и им проще. Разница между FPD и VFP значительно больше чем между DOS-овским паскалем и Delphi, IMHO

Если есть у предприятия деньги, то возможно вариант Лом-а предподчительнее

А так, дождись Дракона и ВладимираМ — они раскажут о VFP и SQL серверах

6. wfire , 25.09.2002 10:57
О покупной КИС не может быть и речи — был уже неудачный опыт внедрения 1С. Да и деньги — они как-бы есть, но их как-бы нет

А более родной вариант — VFP+MS SQL Sever не расматривается? Рассматривается другой «родной вариант» — Delphi & Interbase

7. ВладимирМ , 25.09.2002 11:06
Вопрос не имеет смысла. А тем более спрашивать об этом в конфе основная масса посетителей которой пишут на Delphi и Cи .

Если сама база данных будет лежать на MS SQL (или другой серверной базе данных), то клиентскую часть можно делать на чем угодно. Тебе нравится Delphi — ты пишешь кусочек на Delphi. Остальным нравится VFP — они пушут на VFP. А потом клиенты сами смогут сравнить.

А по большому счету Burn прав. Переход от FPD к VFP психологически достаточно сложен. А если еще добавляется серверная база данных, то проект становится практически неподъемным в обозримые сроки. Это относится к любому языку программирования, который вы выберите — переход с FoxPro на Delphi потребует примерно тех же усилий.

Я бы остановился на варианте, предложенном Лом-ом. Покупка готовой системы обойдется дешевле во всех смыслах.

Добавление от 25.09.2002 11:09:

Да, а слухи о смерти FoxPro возникли сразу в момент покупки этого языка фирмой MicroSoft. Т.е. с версии FPD2.x. Тем не менее уже вышла 7 версия и готовится 8.

8. wfire , 25.09.2002 11:12
Я получил на свой бессмысленный вопрос неплохие ответы. Спасибо.
9. Лом , 25.09.2002 11:52
На крупном предприятии 1с не жилец.

Мы (крупный холдинг) используем КИС Alfa от московской фирмы Информконтакт.
Порядка 350 активных подключений к серверу БД, терреториально 5 площадок, работаем более 3 лет. Кроме нас на ней в Новосибирске работает один оператор сотовой связи. Сейчас внедряем Alfa на одном из Новосибирских металлургических комбинатов, именно в сотрудничестве с ихним ИТ отделом. Если будет интерес — пишите мылом.

10. zzdiv , 25.09.2002 15:51
Здесь очень важно заметить, что это корректное сравнение в плане.
Fox — это БД с отдельными файлами с множеством проблем (целостность, защита, корректность данных, конфликт доступа и изменений и т.д. — один сбой в какой-либо таблице и вся БД под вопросом), возникающих при работе в сети.
СУБД типа MS SQL или Interbase, это совсем другое дело, серьезное решение.
11. Burn , 25.09.2002 18:01
zzdiv
Очень важно заметить, что Delphi ваще не СУБД А на чем писать интерфейс к SQL серверу без разницы, как заметил ВладимирМ, хоть на VB
12. Znatok , 25.09.2002 23:38
Цитирую — «Программисты обеими руками за VisualFox, поскольку они знают досовский Fox, и им проще. Я же считаю . «.
Кому работать то придется, кому перелапачивать тысячи строк кода ? Прикажете людям работать на том, на чем они чувствуют себя не уверенно ?
13. wfire , 26.09.2002 05:50
Дело в том, что наши программисты, кроме Фокса для ДОС не видели и не знают вообще ничего. А как здесь уже выше говорилось, разница между FPD и VFP довольно значительна. Поэтому мнение программистов в данном случае большого веса не имеет.
14. Dracosha Andrew , 26.09.2002 10:22
Я работал на Дельфи, Фоксе, Васике и Сях (плюс ещё 1С и Акцесс)

Так вот моё мнение.
самый быстрый способ по соданию интерфейса с базам данных Фокс с библиотеками на сях. Это обеспечивает 99% всех потребностей. (По крайне мере не встретили необходимости что-то добавлять ещё)
Дельфи не плох, но скорость разработки интерфейса у него много меньше. Кроме того компоненты входящие в его состав у меня не вызывают восторга, время на отладку у него выше чем у фокса, отладка сложнее, короче — не люблю я его. Да и не один я.
Заначительно лучше С, но время разработки выше. Особенно предварительная. Надо набрать библиотеки.

Васик имеет жуткие проблемы с динамическим интерфейсом наследованием и прочая.

Так что если есть время и желание начните с подбора библиотек на С. Потом это окупиться.

А вообще на чем неп иши — всё равно переписывать придёться. Имеет смысл купить какую-либо систему с исходними текстами или с интерфейсами для разработчиков. Это и дешевле и дров меньше наломаете и не будете зависеть от авторов.

15. Shrek_Old , 26.09.2002 12:04
Дело в том, что наши программисты, кроме Фокса для ДОС не видели и не знают вообще ничего.
Я думаю лучше начать с Access.
Языки практически одинаковы по синтаксису(Fox 2.x и VBA), базы импортируются элементарно, начальный интерфейс можно приготовить и с помощью мастеров, остальное по ходу освоения.

Главное отличие от delphy в том, что есть возможность бесконечного усовершенствования структуры баз и интерфейса, в то время как в дельфи приходится работать с исходниками+компиляция+установка.
Это конечно мое личное мнение и подкрепленное личным опытом (хоть и не большим, но характерным).

16. Лом , 26.09.2002 14:42
Shrek_OldЮноша надеюсь шутит?
что будет делать асесс при 500 конектах?
Да и бесконечное усовершенствывание структуры баз — тож ничего себе шутка, а под sql сервером типа один раз сгенерил структуру — и усе ?
17. Томанов Лев , 26.09.2002 16:06
wfire
Ситуация до боли знакома, я даже подумал сначала, как прочел вопрос что разговор идет об одном предприятии где я работал 2 года назад (Завод по произвоздству зап частей к росийским автомобилям, число сотрутников >2000, вся бухгалтерия чистый фокс). У нас тоже начальство металось между разными разработками сначала хотели поставить чето на btrive (забыл как называется) за бешененные бабки, даже какието подозрительные личности шлялись чето выспрашивали чето делали (компашку мою сперли сволочи), закончилось ничем, потом попробовали внедрить 1С проводили курсы среди бухгалтерш, обучали персонал, закончилось ничем, потом весь отдел автоматизации в полном составе слинял с этого завода в течении 2 месяцев, и сейчас они сидят все на томже фоксе и никуда больше не рыпаются.
И потом вот вы все Access, Delphi, 1C предагаете, и думаете насколько вам будет просто чтото на этом всем делать, а надо думать еще о том что придется бабушек старушек (бухгалтерш), переучивать на новые программы, учить их возякать мышку по столу, кликать кнопочки, работать в виндах. У нас было 60 человек (40 бухгалтера+ 10 секретарши + 10 расчетчики ) и 2 програмиста, так вот замена одной проги на другую, даже лучшую порождала идиотских кучу вопросов, а уж обучение бабушки которой завтра на пенсию работе в виндах, это я вам скажу не подарок. Так что если у вас уже чтото работает лучше не трогать, нехай себе работает и никакой головной боли.
18. OCLiker , 26.09.2002 19:47
Томанов Лев

Насчёт Access для 500 пользователей — это круто.
А бесконечное усовершенствование структуры базы, это просто нечто достойное увековечивания — так она никогда и не заработает .

Я вчера видел тему, но не думал, что будет продолжение. Начал писать и бросил — настроения не было, а знаешь почему?
Как раз сейчас я занимаюсь маразмом — создаю программу проверки целостности файловой базы на Кларионе. (Дожился — на Кларе писать начал!). Постоянно — то индексы «подгорели», то утилита исправления ошибки находит, то база слетает (редко правда, обычно если проводится длительная транзакция и на неё пытаются наложить другие транзакции — тут уж грабли просто в вилы превращаются, хорошо у меня бэкап ежедневный!). Базу писал не я. Покупная. Несколько АРМ(реализация, зарплата, склад, учёт основных средств, цех, балланс и т.д.). В принципе работало б.м. нормально, пока не подключили реализацию и балланс. Вот тут и пошли грабли. Релизация вслепую вбивает кучу документов, балланс на себя принимает на себя её бух проводки и проводки других АРМ. Короче при увеличении нагрузки база начала поглючивать (но всё же мень чем Dbf). Только эти поглюки выливаются в бабки и приличные. Кроме того похоже сами программеры начинают терять четкую схему свой проги и базы (бесконечное усовершенствование) и я этому не удивляюсь! Когда потратил 4 дня на то, что на SQL можно сделать за полдня (или меньше, если за пепси не ходить), я понял — так жить нельзя. 4 дня потратил не потому, что не знал язык — это как раз быстро пришло. А просто на отладку и написание самого кода. Кусок, который я пишу просто в Query Analyser с хода и даже не сохраняю (и точно знаю что он делает) выливается в небольшую (или приличную) прогу, требующую отладки и тестирования! А тестирование желательно проводить не мне (глаз мылится). Какое уж тут создание и поддержание приличной КИС с кучей бизнесправил.

Только SQL Server! Но выносить на клиента только отбражение информации. Как можно меньше прямых обработок данных! Хранимые процедуры, триггеры, представления — грамотные и к месту созданные, правильне построение базы изначально и не менее корректное её индексирование. Тогда можно писать клиентов на чём угодно! Не повторяйте ошибки. Обязательно нужен грамотный разработчик серверных программ. Это самое главное.
И ещё на MS SQL можно создавать Linked Server, что даст возможность подключить и работать с всеми разрозненными базами и потихоньку переводить их на SQL

Прости за некоторый сумбур — пора уходить.

19. Shrek_Old , 27.09.2002 06:50
Лом
Спасибо за комплимент, давно мне такое не говорили, жаль что прозвучало из уст мужчины.
Но. Не знаю на счет SQL (не знаком я с ним. ПОКА. ), но когда мне говорят за Delphy+БД, меня честно коробит.
На счет бесконечных преобразований — так это ведь тоже не блажь, а необходимость. и все благодаря введению (бесконечному) новых форм отчетов и тп спускаемых сверху. о чем как правило господа программеры забывают и считают что единожды вымученный ими код должен работать БЕСКОНЕЧНО долго и без каких либо нововведений. а потом другой несчастный копается в его исходниках (ладно если они есть) и пытается подогнать эту прогу для удовлетворительной работы в текущий момент, дабы старушек не обучать новым технологиям.
20. wfire , 27.09.2002 06:52
Хорошо, я понял — нужен SQL сервер (только вот какой — MS SQL Server или может Interbase, он вроде попроще в администрировании?), а на чем писать клиентов — без разницы.
Грамотный разработчик серверных программ — да где ж его взять-то?
Что касается бабушек-юзеров, то бабушек у нас, к счастью, совсем немного, а наоборот, много молодых и симпатичных . Так что поучить их я не против. А вот программисты у нас — мрак. Английского не знают, I-net не видели, и самое главное — не надо им все это. Fox 2 — и все, они счастливы.
В общем, грустно все это.
21. Лом , 27.09.2002 07:29
Interbase — очень приличная весч, весьма новаторская местами. Для систем на 10-20 одновременно работающих пользователей трудно найти что-то лучше, особенно если техника не очень (пеньки с 64 мб памяти могут под ним сервером быть, при чем не выделенным и вполне производительным).

Но IMHO не потянет он КИС. Есть у него сложности при обработке сложных запросов — иногда очень крепко и на долго он над ними призадумывается. Для КИС это выльется в проблемы при получении сложных отчетов.

Сотрудники, которые не хотят учиться — это действительно проблема. Тут уже что ни выбери, все равно загубят. Может тогда провести исследование на тему наиболее популярных среди программистов в аших краях средств разработки и SQL серверов, сделать выбор исходя из этого, да и поменять большую часть ваших динозавриков на нормальных программеров? (тех, кто знает бизнес-логику оставить конечно, а с кодера — что толку).

PS меня в этой конфе уже за это высмеивали, но рискну еще раз высказаться — люди, хорошо знающие xBase (fox2 в т.ч.) достаточно легко переходят на PL/SQL (ORACLE). Дважды наблюдал такую картину. На мой взгляд это объясняется наличием развитых процедурных средств в oracle.

22. Игорешка , 27.09.2002 09:22
Лом

Для справки наш любимый аэрофлот сидит на IB и уж поверь, не просто так А там у меня друг работает и IB очень и очень неплохо справляется со всеми задачами ) А теперь посчитай терминалы+бухгалтерия+склад+филиалы Все это на IB Так что не надо говорить что он не потянет. У Микрософта поверь тоже есть еще те приколы в запросах. Здесь каждая хороша чем то и плоха чем то. Одно верно. Писать по максимум обработки информации надо на SQL а на клиента чтобы ложилось минимум. А на чем клиента создавать уже дело вкуса.

23. NailS , 27.09.2002 11:20
wfire
>А вот программисты у нас — мрак

Зря вы так. У вас город большой, и программисты нормальные там тоже есть.

24. wfire , 27.09.2002 11:35
«У нас» — я имел ввиду не в городе, а на предприятии. Да и город, кстати, не сам Е-бург, а райцентр в области.
25. Лом , 27.09.2002 12:08
Игорешка
Извени, не поверю что IB мощнее чем MSSQL. Так как работал с обоими. Да и терминалы — это OLTP в чистом виде, а вот в КИС примерно 20-30% — OLAP. Разница некоторая существует, знаете ли.
26. Игорешка , 27.09.2002 12:15
Лом

Верю, но я привел железные факты Плюс перекачка данных в разные города и прочее, не думаю что если бы там не были так уверены в IB его бы поставили.
Я тоже работал с обоими. В итоге в зависимости от задач и специфик проектов предпочитаю работать на том, что лучше будет для данного проекта

27. ВладимирМ , 27.09.2002 12:59
Игорешка
Я бы сказал, что в нашей стране приоритеты несколько сдвинуты. Факт использования конкретного ПО в конкретной организации никак не может являтся критерием качества и надежности этого ПО.

Посмотрите хотя бы на начало этого топика — фактически главным критерием выбора ПО является его известность для конкретного человека. Знает он IB+Delphi — голосует за него, другой знает MS SQL+FoxPro — берет его.

А после того, как система худо-бедно создана — «поздно пить боржоми» — затраты на переход на новую систему становятся слишком велики по сравнению с сопровождением уже существующей. Никогда не поверю, что Аэрофлот проводил исследования по эффективности той или иной базы данных применительно к своей задаче.

28. Лом , 27.09.2002 13:14
Игорешка
IMHO
Там на нижнем уровне куча мискроскопических баз, при прохождении информации наверх — она агрегируется, в результате действительно крупных баз там нет, основная операция — вставка записи, поиск по достаточно жестким критериям. Тут и Interbase то много .
Но у BigBooss нет возможности посмотреть, кому 01.01.2000 в 17:30 продала билет кассир Иванова.

В КИС все иначе — полная документарная история всего за весь период в 1 БД. И необходимость аналитической обработки в реальном времени, причем весьма широко настраиваемой пользователем обработки.

Короче, читайте книжки про OLTP/OLAP.

PS ну и таки да, скорее всего, как заметил предыдущий оратор, сначала по уши увязли, а потом под имеющиеся средства технологию . кхм. узлом зугнули.

29. OCLiker , 27.09.2002 21:09
Игорешка

У ребят достаточно разветвлённая сеть мелких баз и чтобы собрать их воедино, а потом плавно перевести на сервер лучше Linked Server не придумаешь. Есть ли в IB такое? Кроме того, слышал я (сейчас ссылки не приведу — но если надо найду), что у новых версий IB есть проблемы с устойчивостью базы (говорят валится она).

Ты прав IB не мощнее. Особенно на приличной базе. В это верить не надо.

Ностальгия по Visual FoxPro

Успех и закат славы

Если вы никогда ничего не слышали о Visual FoxPro, значит, вы стали интересоваться информационными технологиями в ту эпоху, когда этот программный продукт уже пережил пик своей популярности. А если нет — почему бы не вспомнить об этом действительно интересном и полезном средстве разработки?


Введение, или совсем чуть-чуть истории

Разработка приложений, взаимодействующих с базами данных, являлась делом более чем актуальным со времен появления первых систем управления базами данных. В связи с этим ничуть не удивительно, что на рынке средств разработки приложений появилось достаточно много программных продуктов, «заточенных» именно под работу с базами данных. Появлялись эти среды, конечно, в такие стародавние времена, что не всякий старожил форума «Компьютерных вестей» их вспомнит, но, тем не менее, было когда-то и такое славное время.

Вот тогда-то и появился инструмент, которому впоследствии суждено было войти в историю индустрии разработки программного обеспечения под именем FoxPro. Началась же история этого, без преувеличений, легендарного средства разработки более четверти века назад, в уже далеком 1984 году, когда компания Fox Software начала проект под названием FoxBase. Долго ли, коротко ли, но в 1992 году компанию приобрела разросшаяся не на шутку корпорация Microsoft, и именно тогда у продукта, который уже назывался FoxPro, в названии появилась приставка Visual. Под руководством Microsoft продукт развивался и совершенствовался на протяжении последующих пятнадцати лет, до тех пор, пока в 2007 году не вышло последнее официальное обновление для Visual FoxPro — до версии 9.0 Service Pack 2. Конечно, на протяжении пятнадцати лет существования Visual FoxPro в историю продукта было вписано немало интересных страниц, но рассматривать их здесь сейчас не стоит, потому что вряд ли кому-то, кроме тех, кто плотно работал с Visual FoxPro, это будет действительно интересно, да и место, которое доступно одной отдельно взятой газетной статье, также ограничено.

Можно, конечно, привести тысячи причин, по которым Microsoft решила прекратить поддержку Visual FoxPro, но главная из них, на мой взгляд, все-таки состоит в том, что Visual FoxPro плохо согласовалась с продвигаемой корпорацией платформой .NET. Тем не менее, Visual FoxPro до сих пор используется многими разработчиками, и не только для внесения по мере эксплуатации исправлений и улучшений в уже существующие проекты. Так что говорить об этом программном продукте исключительно и только в ретроспективном аспекте было бы не совсем правильно. Поэтому, несмотря на название этой статьи, рассказ будет не столько об упадке былой популярности Visual FoxPro, сколько о самом этом программном продукте, даже сейчас, спустя столько лет после выхода своей последней версии, заслуживающем внимания со стороны достаточно широкой аудитории.

Итак, я уже упомянул, что Visual FoxPro — это продукт, ориентированный, в первую очередь, на создание приложений, работающих с базами данных. Однако такая краткая характеристика вряд ли может отразить все то, чем Visual FoxPro заслужил уважение и популярность среди разработчиков.

Любое средство разработки, в первую очередь, характеризуется тем языком программирования (или несколькими из них), который оно предлагает использовать в процессе разработки программного обеспечения. В случае Visual FoxPro таким языком, соответственно, будет FoxPro. Язык этот, который может показаться уже несколько морально устаревшим с позиций сегодняшних реалий индустрии программирования, до сих пор, тем не менее, обеспечивает вполне качественное решение задач, возникающих у большинства разработчиков прикладных приложений. Язык, который закладывался в эту среду её первыми разработчиками, берет свои истоки от xBase — языка программирования, который изначально был «заточен» под работу с dBase и, конечно, сильно отличался от того языка, который был «на вооружении» людей, имевших дело с FoxPro в те годы, когда эта среда ещё даже не перешла под «покровительство» Microsoft. В Visual FoxPro в распоряжении программиста имеется мощный объектно-ориентированный язык, позволяющий легко оперировать данными благодаря непосредственно встроенным в язык операторам.


Возможно, эти утверждения по поводу языка, предлагаемого программистам в Visual FoxPro, покажутся вам слишком общими. Что ж, позвольте проиллюстрировать их примером. В листинге приведен небольшой пример кода на Visual FoxPro. Думаю, даже не обладая глубокими познаниями в программировании и в работе с базами данных, вполне можно увидеть основные черты, присущие коду на этом языке — то есть, возможность работы с объектами и прозрачность работы с базами данных. Комментарии в коде помогут понять общую логику данного небольшого примера.

Стоит отметить, что поскольку в конечном счете среда Visual FoxPro предназначалась для создания приложений, с которыми должен вести активный диалог конечный пользователь, то в распоряжении разработчика, пользующегося ею, были средства создания полноценного графического пользовательского интерфейса. С учетом того, что Visual FoxPro была ориентирована, конечно же, на создание приложений под Windows, нет ничего удивительного в том, что корпорация Microsoft постаралась снабдить разработчика такими возможностями. Благодаря поддержке объектов в языке программирования Visual FoxPro работать с элементами пользовательского интерфейса достаточно просто. Об этом красноречиво свидетельствует листинг — весьма короткий, но, смею надеяться, достаточно познавательный.

Как ни крути, но современное средство разработки приложений — это не только сам язык программирования, который, конечно, имеет первостепенную важность, но ещё и такая «мелочь», как среда разработки, с которой непосредственно взаимодействует программист. Поэтому поговорить о Visual FoxPro именно с этой позиции будет, я так полагаю, далеко не лишним.

Давно уже прошло то время, когда среды разработки от Microsoft подвергались повсеместной критике и вызывали желание закрыть их поскорее. Конечно, если сравнивать Visual FoxPro с более современными средами разработки, то можно найти ряд достаточно заметных для глаза несоответствий новейшим стандартам. Но если вспомнить о том, что речь идет о программном продукте, последний раз обновлявшемся несколько лет назад, то можно утверждать, что тогдашним стандартам Visual FoxPro соответствует на 100%.

На самом же деле, среда Visual FoxPro, как и другие продукты, названия которых начинаются с «Visual», весьма дружелюбна к разработчику. Подсветка синтаксиса кода, разнообразные подсказки по ходу написания кода, отладчик (какая же интегрированная среда разработки без него?), визуальный редактор форм, существенно упрощающий жизнь разработчика при проектировании интерфейса. В общем, как ни крути, среда разработки, созданная крупнейшим в мире разработчиком софта, так или иначе должна была соответствовать этому высокому званию.

Возвращаясь к вопросу о том, почему дальнейшая разработка Visual FoxPro была прекращена, стоит обратиться к первоисточнику — то есть, к объяснениям, которые дала по этому поводу сама корпорация Microsoft.

Во-первых, по словам представителей корпорации, дальнейшее развитие этого программного продукта не мыслилось без создания его 64-битной версии. Для этого пришлось бы практически полностью переписывать «ядро» Visual FoxPro, что не входило в планы Microsoft. Во-вторых, дальнейшее развитие Visual FoxPro — продукта, использовавшего собственный «движок» для работы с базами данных, — выглядело не слишком логично в свете достаточно солидных инвестиций в создание полноценной промышленной СУБД SQL Server, имеющей бесплатную версию SQL Server Express Edition, практически полностью покрывающую потребности большинства пользователей Visual FoxPro. Ну а в-третьих, популярность Visual FoxPro стабильно снижалась, и слухи о том, что это средство разработки планируется перестать совершенствовать, ходили ещё с начала 2000-х годов.

Нельзя сказать, что с выходом последней версии земной путь Visual FoxPro оборвался. До сих пор по всему миру успешно работают десятки, если не сотни тысяч приложений, написанные с его использованием. Да и новые никто, в общем-то, не запрещает писать, потому что даже сегодня Visual FoxPro отлично подходит для решения многих задач.

Основные возможности и ограничения СУБД Visual FoxPro. Достоинства и недостатки. Модели использования баз данных и уровни разработки приложений.

СУБД Visual FoxPro предназначена для создания приложений баз данных объема предприятия, обладает хорошим быстродействием и устанавливается на различные платформы.

В Visual FoxPro реализованы все атрибуты реляционной СУБД. Так, в ней введено понятие базы данных как совокупности связанных таблиц, информация о которых хранится в словаре данных. В БД определяются условия ее целостности с помощью первичных и внешних ключей таблиц. Все события (изменения), происходящие в БД, могут обнаруживаться и централизованно обрабатываться в связи с появлением в Visual FoxPro таких средств, как триггеры и встроенные процедуры.

Visual FoxPro совместима с более ранними версиями FoxPro. Поэтому приложения, разработанные в более ранних версиях FoxPro, могут быть адаптированы с ее помощью в среду Windows. Visual FoxPro обладает высокой скоростью в обслуживании БД.

Используя стандарт ODBC и SQL-запросы для выборки данных Visual FoxPro позволяет работать с БД СУБД Access, Paradox, dBase и т. д., с серверами БД — Microsoft SQL Server, Oracle и др.

Приложение Visual FoxPro может одновременно работать как с собственными, так и сетевыми таблицами, расположенными на других компьютерах локальной сети.

Поддерживаются такие механизмы работы с Windows приложениями как:

• Dynamic Data Exchage (DDE) — динамический обмен данными,

• Object Linking and Embedding(OLE) — встраивание и связывание объек-

С помощью Visual FoxPro можно создавать сетевые приложения, функционирующие в сетях под управлением Microsoft Windows 9х/2000, Microsoft LAN Manager и др.

Для упрощения процесса разработки баз данных и приложений имеется большое количество Мастеров, Конструкторов и Построителей.

Достоинства FoxPro. Наличие собственного развитого, простого и удобного языка программирования, мастеров, конструкторов, обработка несколькихбаз данных с различными СУБД, возможность создания исполняемых EXE‑файлов.

Недостатки FoxPro. Сложность написания программ, отсутствие средств защиты и восстановления информации, ограничения на объем информации, наличие ошибок при установке связей между таблицами в запросах, формируемых визуальными средствами (ошибки обходятся путем установки связей средствами фильтрации).

FoxPro рекомендуется использовать для разработки достаточно сложных приложений с ограниченным объемом (не более миллиона запи­сей) обрабатываемой информации для небольших и средних предприятий.

Ограничения: максимальное количество записей — 1 ООО ООО ООО; максимальный размер таблицы — 2GB; максимальное количество символов в записи — 65 500; максимальное количество полей в записи — 255; максимальное количество одновременно открытых таблиц — 2551

Дата добавления: 2014-12-20 ; просмотров: 144 | Нарушение авторских прав

Почему visual foxpro хороший выбор для вашей организации

В конце 2002 года было показано, что Visual FoxPro может работать на Linux под Wine, однако это, по существу, нарушает пользовательское лицензионное соглашение (EULA).

В декабре 2005 года, VFP взлетел в Top 20 на TIOBE индекс в первый раз. В марте 2007 года он был в положении 19, что делает его языком группы «B». По состоянию на август 2010 года, VFP (в сочетании с XBase) находится в позиции 25.

В марте 2007 года Microsoft объявила, что не будет VFP 10, соответственно, VFP 9 (выпущен в производство 17 декабря 2004 г.) — последний коммерческий релиз VFP от Microsoft. Поддержка версии 9 продолжается с пакетами обновления, которые были выпущены 8 декабря 2005 и 11 октября 2007 года.

Идет работа над проектом под кодовым названием «Седна» (названном в честь карликовой планеты Седны, открытой в 2003 году), который представляет собой набор дополнений к VFP 9.0 из xBase-компонентов для поддержки ряда сценариев и алгоритмов взаимодействия с различными технологиями Microsoft, включая SQL Server 2005, .NET Framework, Windows Vista, Office 2007, Windows Search и Team Foundation Server (TFS). Microsoft выпустила «Седну» под лицензией Shared Source на сайте CodePlex. Представители корпорации Microsoft пояснили, что основной VFP будет по-прежнему оставаться закрытым исходным кодом. «Седна» была выпущен 25 января 2008. По состоянию на март 2008 года, все xBase-компоненты VFP 9 SP2 (в том числе «Седна») были доступны для развития сообществом на CodePlex.

История версий

Совместимость с операционными системами

Читайте также:
  1. A. Раздел специальной психологии, изучающей психическое развитие у умственно отсталых людей и возможности его коррекции.
  2. Cохранение данных в двоичных файлах.
  3. CТРУКТУРЫ ДАННЫХ И АЛГОРИТМЫ
  4. DCOR моделирование как разновидность стандарта SCOR модели.
  5. E. закономерности психического развития, протекающего в неблагоприятных условиях, патогенная сила которых превышает компенсаторные возможности индивида
  6. I Кислотно-основные свойства.
  7. I Кислотные и основные свойства
  8. I)Однофакторный дисперсионный анализ (выполняется с применением программы «Однофакторный дисперсионный анализ» надстройки «Анализ данных» пакета Microsoft Excel).
  9. I. Определить основные критерии качества атмосферного воздуха.
  10. I. Основные богословские положения
Поддерживаемые версии Windows
Версия VFP 3.0 VFP 5.0 VFP 6.0 VFP 7.0 VFP 8.1 VFP 9.0
Windows 3.x Да Нет Нет Нет Нет Нет
Windows NT 4.0 Да Да Да Да Нет Нет [1]
Windows 95 Да Да Да Только среда запуска (runtime) Нет Нет
Windows 98 Да Да Да Да Только среда запуска (Runtime) Только среда запуска (Runtime)
Windows ME Да Да Да Да Только среда запуска (Runtime) Только среда запуска (Runtime)
Windows 2000 Да Да Да Да Да Да
Windows XP Да Да Да Да Да Да
Windows Server 2003 ? Да Да Да Да Да
Windows Vista В режиме совместимости Да Да Да Да Да
Windows 7 Да Да Да Да Да Да

Исполняемые файлы

Версия Возвращаемое значение VERSION() Размер EXE-файла Дата EXE-файла Размер DLL-файла Название DLL-файла
VFP 9 SP2 with Hotfixes Visual FoxPro 09.00.0000.7423 for Windows 5,648 kb 3 апреля 2009 4,624 kb VFP9R.DLL
VFP 9 SP2 Visual FoxPro 09.00.0000.5721 for Windows 5,648 kb 16 октября 2007 4,624 kb VFP9R.DLL
VFP 9 Visual FoxPro 09.00.0000.2412 for Windows 5,620 kb 13 декабря 2004 4,600 kb VFP9R.DLL
VFP 8 Visual FoxPro 08.00.0000.3117 for Windows 5,236 kb 25 сентября 2003 4,200 kb VFP8R.DLL
VFP 7 Visual FoxPro 07.00.0000.9465 for Windows 4,260 kb 4 января 2002 3,344 kb VFP7R.DLL
VFP 6 Visual FoxPro 06.00.8961.00 for Windows 4,091 kb 18 августа 2000 3,295 kb VFP6R.DLL
VFP 5 Visual FoxPro 5.0.0.415 for Windows 4,065 kb 24 января 1997 3,148 kb VFP500.DLL
VFP 3 Visual FoxPro 03.00.00.0711 for Windows 4,374 kb 16 декабря 1995 3,657 kb VFP300.ESL
FPW 2.6a FoxPro 2.6a for Windows 2,444 kb 28 сентября 1994 2,946 kb FOXW2600.ESL

Дальнейшее развитие

Разработка продукта MS прекращена с выходом SP2 для версии 9.0, поддержка продукта MS будет осуществляться до 2015 года [2] .

В конце марта 2007 организовалось движение испаноязычного FoxPro-сообщества MasFoxPro [3] (MoreFoxPro в английском), целью которого стало написание петиции в Microsoft с предложением продолжить работу по обновлению Visual FoxPro или выпустить его в сообщество с открытым исходным кодом. 3 апреля 2007 года движение было отмечено технической прессой [4] .

Также 3 апреля 2007 Microsoft ответила на просьбы заявителя таким заявлением от Алана Гривера ( Alan Griver ):

Мы очень хорошо понимаем FoxPro сообщество и, то, что сыграло большую роль в том, что мы объявили 13 марта. Это всегда нелегкое решение — объявить, что мы не собираемся выпускать другую версию продукта, и это первое, что мы рассматриваем очень тщательно.

Мы не объявляем конец проекта FoxPro: очевидно, приложения FoxPro будут продолжать работать. Согласно нашим внутренним оценкам, существует больше приложений, работающих в FoxPro 2.6, чем есть в VFP, а ведь FoxPro 2.6 не поддерживается много лет. Visual FoxPro 9.0 будет поддерживаться Microsoft до 2015 года.

Для Microsoft, чтобы сохранить развитие основы FoxPro, надо обратить внимание на создание 64-разрядной среды разработки, что будет включать почти полностью переписанный основной продукт. Мы также инвестировали в создание масштабируемой базы данных SQL Server, включая свободно доступный SQL Server Express Edition. Что касается формирования партнерских отношений с третьей стороной, о которой мы слышали в интерпретации ряда крупных клиентов FoxPro, — это сделает невозможным использование FoxPro, поскольку он больше не будет от утвержденного поставщика. Мы чувствовали, что выложить среду с открытым исходным кодом на CodePlex, которая уравновешивает потребности как сообщества, так и крупных клиентов — лучший путь вперёд.

We’re very aware of the FoxPro community and that played a large part in what we announced on March 13th. It’s never an easy decision to announce that we’re not going to release another version of a product and it’s one that we consider very carefully.

We’re not announcing the end of FoxPro: Obviously, FoxPro applications will continue to work. By some of our internal estimates, there are more applications running in FoxPro 2.6 than there are in VFP and FoxPro 2.6 hasn’t been supported in many years. Visual FoxPro 9 will be supported by Microsoft through 2015.

For Microsoft to continue to evolve the FoxPro base, we would need to look at creating a 64-bit development environment and that would involve an almost complete rewrite of the core product. We’ve also invested in creating a scalable database with SQL Server, including the freely available SQL Server Express Edition. As far as forming a partnership with a third-party is concerned, we’ve heard from a number of large FoxPro customers that this would make it impossible for them to continue to use FoxPro since it would no longer be from an approved vendor. We felt that putting the environment into open source on CodePlex, which balances the needs of both the community and the large customers, was the best path forward. [5]

Визуальные альтернативы Foxpro — где мигрировать

Поскольку Microsoft прекратила поддержку FoxPro некоторое время назад, компании ищут новые альтернативы.

Мои клиенты используют FoxPro для пре- данных и последующей обработки, так как он поставляется в комплекте с другим программным обеспечением актуарным. Тем не менее, в настоящее время они ищут новую альтернативу.

Мне было интересно, если есть другие, которые уже сделали выключатель и готовы делиться, какое программное обеспечение они преобразуются и почему они нашли это лучшая замена для VFP?

Есть множество вариантов, начиная от инструментов, которые используют подобный синтаксис и может получить доступ к DBF файлов непосредственно (Lianja, XBase ++, Dbase), с помощью инструментов, которые имеют схожий подход к приложениям, управляемые данных (Xojo, Servoy) до языков общего назначения что может говорить с данными VFP с помощью драйверов ODBC и OLEDB (C #, и т.д., и т.д.).

Я хотел бы начать с этой вики статьи.

Один из моих клиентов тоже было с помощью FoxPro (под DOS) для их инвентаризации спермы учета в течение многих лет. Несколько лет назад, когда они решили перейти к приложению на основе окна, SQL SERVER 2012 и VB.NET был их выбор. И они вполне довольны результатами. Для представления они выбрали для отчетов кристалла.

Что такое, что вы имеете в виду под «пре- данных и пост-обработки»? Если вы имеете в виду обработки VFP базы данных и таблицы, то вы не должны искать альтернативу.

Если вы имеете в виду данные или может быть на внутреннем интерфейсе, кроме таблиц VFP, то у вас есть много вариантов. На окнах платформы C # это один из них и может быть лучшим выбором. Если вы думаете, кросс-платформенным и / или этот процесс не имеет ничего общего с научной обработкой данных, то Python, может быть лучшим выбором, так как он имеет готовые пакеты для научных вычислений. Оба C # и Python (и многих других языках) можно также использовать новые и высокие производительным хранилищ данных, которые VFP не может использовать.

Запуск Microsoft Visual FoxPro

СОЗДАНИЕ БАЗЫ ДАННЫХ

Для запуска Microsoft Visual FoxPro на вашем компьютере нажмите

кнопку «Пуск» и выберите в открывшемся главном меню пункт «Все программы». В списке программ найдите «Microsoft Visual FoxPro 9» – FoxPro установлен там по умолчанию. Щелчок левой кнопкой мыши даст следующую картинку (рис. 1.1).

Рис. 1.1. Главное окно Microsoft Visual Fox Pro 9.0

На экране появится главное окно Visual FoxPro, окно менеджера панели задач (Task Pane Manager), в нижней части которого содержится список ранее открывавшихся баз данных, и командное окно (Command) с последними, набранными в нем командами.

Команду Visual FoxPro можно выполнить, набрав ее в окне Command и нажав на клавишу Enter. Для повторного выполнения команды поместите курсор на строку с командой и нажмите Enter еще раз.

Так как в окне Command допускается редактирование, можно изменить команду инструментами редактирования, доступными в Visual FoxPro. Эти инструменты позволяют редактировать, вставлять, удалять, вырезать и помещать текст в окне Command. Преимущество использования окна Command состоит в немедленном выполнении инструкций. Нет необходимости сохранять файл и запускать его как программу.

Кроме того, в окне Command сохраняются в виде команд все действия, производимые с меню и диалоговыми окнами. Вы можете скопировать и разместить эти команды в программе Visual FoxPro. После этого программу можно запускать сколько угодно раз, избегая многократного повтора одних и тех же действий.

Для комфортной работы создайте на рабочем столе ярлык Microsoft Visual FoxPro 9, в его свойствах в качестве рабочей папки укажите ту, в которой будет располагаться разрабатываемое приложение и данные. В нашем примере – это папка Real Estate. Не устраивайте в ней «свалку», разместив одновременно все объекты приложения: таблицы, индексы, контейнер базы данных, формы, отчеты, классы и т. д.

Советую все объекты в этой папке расположить структурировано. Примерный вид папки c приложением может быть таким (рис. 1.2).

Рис. 1.2. Состав папки Real Estate

BOOK – папка, содержащая формы справочников.

CLASS – папка, содержащая пользовательские классы.

DBF – папка с данными (контейнер, таблицы, индексные файлы, поля примечаний и т. д.).

DECKTOP – в этой папке расположены картинки, используемые для оформления главного окна программного комплекса.

FORM – папка, содержащая главные формы приложения.

HELP – папка с файлами контекстуально-зависимой помощи, вызываемой при нажатии клавиши F1.


ICO – иконки для оформления интерфейса вашего приложения.

INSTALL – папка, содержащая файлы дистрибутива для инсталляции готового программного комплекса на клиентский компьютер.

PICTURE – фотографии зданий (в данном примере).

REPORT – папка, содержащая отчеты Visual FoxPro.

USER – папка, содержащая информацию о пользователях и паролях для работы с программным комплексом. В ней расположена фактически одна таблица. Это связано с тем, что в Visual FoxPro отсутствует система защиты от несанкционированного доступа средствами СУБД. Такое выделение отдельной папки позволит обеспечить защиту комплекса средствами операционной системы.

Создание базы данных Visual FoxPro

Перейдем к конкретным действиям по созданию базы данных. Запустите Microsoft Visual FoxPro на вашем компьютере и воспользуйтесь одним из трех способов.

В окне менеджера панели задач (Task Pane Manager) на его первой вкладке Start выберите ссылку New Database. На экране дисплея появится окно Create. Перейдите в папку DBF, в которой мы будем хранить данные, задайте имя базы данных — Real Estate. Нажмите кнопку Сохранить. База данных получила свое название и законное место на жестком диске.

В главном меню Visual FoxPro щелкните пункт File и выберите команду New. В открывшемся окне щелкните радиокнопку Database и нажмите кнопку New file. На экране дисплея появится окно Create. Перейдите в папку DBF, в которой мы будем хранить данные, задайте имя базы данных — Real Estate. Нажмите кнопку Сохранить.

Введите в командном окне (Command) команду Create Database. На экране дисплея появится окно Create. Перейдите в папку DBF, в которой мы будем хранить данные, задайте имя базы данных — Real Estate. Нажмите кнопку Сохранить.

Теперь в папке DBF появилось три файла — так называемый контейнер базы данных. Это файлы:

Real Estate.dbc Real Estate.dct Real Estate.dcx

Отличительной особенностью Microsoft Visual FoxPro является то, что один объект этой СУБД размещается в нескольких файлах (от одного до трех). Расширения других файлов, используемых Visual FoxPro, будут рас­смотрены нами позднее в соответствующих главах.

Visual FoxPro 9.0 позволяет создавать как таблицы, входящие в базу данных, так и свободные таблицы. Это дань истории развития продукта -черта, свойственная только ему. Так уж сложилось со времен появления Visual FoxPro 3.0. Воспользуемся ей.

Будут применяться таблицы обоих типов. Свободная (вне базы данных) таблица User даст возможность отрегулировать вопрос о правах доступа к приложению (рис. 1.2), а все остальные, размещенные в контейнере Real Estate, представляют реляционную базу данных.

Существует несколько способов создания таблиц в Microsoft Visual FoxPro:

— с помощью мастера таблиц;

— с использованием конструктора таблиц;

— путем импорта данных из внешнего файла в текущую базу данных;

4) создание их в текущей базе данных, связанных с таблицами внешнего файла.

Первый способ — для новичков в работе с базами данных, испытывающих сильное желание немедленно создать свою первую таблицу.

Рис. 1.5. Работа в главном меню Visual FoxPro 9.0 с базой данных

Во всех трех случаях увидим окно конструктора таблицы. Это форма с тремя вкладками: Fiels, Indexes и Table.

• Fields (Поля) — поля создаваемой таблицы и условия достоверности вводимых данных на уровне поля;

• Indexes (Индексы) — индексы создаваемой таблицы;

• Table (Таблица) — условия достоверности вводимых данных на уровне записи, а также триггеров добавления, удаления и модификации.

Первая вкладка (рис. 1.6) используется при определении полей таблицы. Она предназначена для ввода названия полей, типа данных и ширины поля. При занесении числовых полей задается количество десятичных знаков. Кроме основных параметров для каждого поля на этой вкладке задаются дополнительные параметры, которые помогут вам при сопровождении программного комплекса. Обратите особое внимание на ячейку Field comment. Не оставляйте ее пустой! Опишите подробно назначение поля таблицы. Позже обязательно поймете важность этого совета.

Имена полей должны содержать не более 255 символов и могут включать любые комбинации символов за исключением точки, восклицательного знака и квадратных скобок. Используйте в именах полей только латинские буквы при общей длине имени до 10 символов включительно. В этом случае у Вас не будет проблем с конвертацией таблиц Microsoft Visual FoxPro в таблицы других СУБД (например, Microsoft SQL Server).

Каждое поле таблицы должно иметь уникальное имя, но в различных таблицах можно использовать одинаковые имена полей. В табл. 1.1 приведены основные типы данных полей Microsoft Visual FoxPro 9.0.

Типы данных полей таблиц Microsoft Visual FoxPro 9.0

Вид данных Тип данных Описание
Текстовый Character Текст или числа, не требующие проведения расчетов. Максимальная длина — 255 символов. По умолчанию длина текстового поля устанавливается равной 10 символов
Character 1 Аналогичен Character. Используется в том случае, (binary) | если не требуется учитывать кодовую страницу
Varchar 1Аналогичен Character. Для этого типа не происходит заполнение свободных мест незначащей информацией
Varbinary Шестнадцатеричные значения
Дата и время Datetime Любая дата от 01.01.0001 до 31.12.9999 и время от 00.00.00 a.m. до 11.59.59 p.m.
Дата Date Любая дата от 01.01.0001 до 31.12.9999
Денежный Currency Позволяет выполнять расчеты с точностью до 15 знаков в целой и до 4 знаков в дробной части
Логический Logical Содержит значение True (.T.) или False (.F.) Истина или ложь
Числовой Integer Целые числа от -2147483647 до 2147483648
Integer (AutoInc) Счетчик. Уникальные, последовательно возрастающие числа, автоматически вводящиеся в таблицу при добавлении каждой новой записи
Numeric Десятичные данные с фиксированной точкой
Float Десятичные данные с плавающей точкой простой точности
Double Десятичные данные с плавающей точкой высокой точности
Двоичное поле произвольной длины General Включает рисунок, фотографию, звукозапись, диа­граммы, векторную графику, форматированный текст и т. п.
Текстовое поле произвольной длины Мемо Поля типа МЕМО предназначены для хранения больших текстовых данных. Длина поля может достигать 64 Кб. Поле не может быть ключевым или индексированным
Двоичный Blob Двоичные символы

В правой части первой вкладки Fields конструктора таблицы (рис. 1.6) также расположены ячейки, позволяющие задать для каждого поля созда­ваемой таблицы свойства, которые будут задействованы при вводе данных.

Format (Формат) — задает формат отображения данных в окне Browse, отчетах и формах.

Input mask (Маска ввода) — задает шаблон для ввода данных.

Caption (Заголовок) — определяет заголовок поля.

Rule (Условие) — проверка правильности ввода данных на уровне поля создаваемой таблицы.

Message (Сообщение) — текст сообщения, которое появится на экране дисплея при неправильном вводе данных в поле.

Default value (Значение по умолчанию) — значение, вводимое в поле по умолчанию.

Display library (Показать библиотеку) — определяет имя файла библиотеки классов.

Display class (Показать класс) — определяет имя класса из выбранной библиотеки классов.

Next Value (Начальное значение) — задает начальное значение счетчика. Доступно только для поля IntegerInc.

Step (Шаг) — приращение счетчика. Доступно только для поля Integerlnc.

Создадим нашу первую таблицу Building. Ее окончательная структура взята из табл. 2.7. Имейте в виду, что имя поля и его описание вводится с клавиатуры, а тип данных выбирается из списка.

Рассмотрим действия по созданию таблицы подробнее (рис. 3.6).

1. Введите в первую колонку имя первого поля: Street и нажмите клавишу . Курсор переместится во вторую колонку Type. По умолчанию будет назначен тип Character длиной 10 символов.

2. Раскройте список типов данных при помощи мыши. Выберите тип Numeric и нажмите клавишу .

3. Заполните колонки Width (Число знаков) и Decimal (Число знаков после десятичной точки). Для ссылки на номер улицы используем четыре десятичных знака. Это дает возможность работать с 9999 улицами, что вполне достаточно для города с миллионным населением. Кстати, в Хабаровске 1248 улиц, переулков, проездов, шоссе, кварталов, площадей, бульваров и т. д.

4. Обязательно заполните ячейку Field comment. Не ленитесь, пишите подробнее!

5. Повторите шаги 1-4 для всех оставшихся полей таблицы. Остальные поля первой вкладки конструктора таблиц на этом этапе можно не заполнять. После занесения данных обо всех полях таблицы просто закройте окно конструктора таблиц. Появится диалоговое окно «Сохранение», запрашивающее подтверждение на сохранение структуры таблицы (рис. 1.7).

Щелкните по кнопке «Yes». Наша первая таблица появится в окне базы данных, а в папке DBF — два файла: Building.dbf (сама таблица) и Building.fpt (поле Memo). Заполнять сейчас созданную таблицу начинающему пользователю категорически не рекомендуется, да так и не делается! Посмотрите на содержимое табл. 1.2. Это не отдельная таблица, она будет связана с другими таблицами базы данных Real Estate. Что в ней хранится — пока загадка. Уверен, что большинство цифр Вам просто непонятны.

Информация, содержащаяся в связанной таблице

Street House Flat Storey Rooms Square Dwell Branch Account
60,8

Аналогичным образом создадим все наши таблицы, разработанные в разд. 2: Flat, Owners, Account, Street, District и Wall.

3.4. Создание первичных ключей и индексов

Одним из основных требований, предъявляемых к СУБД, является возможность быстрого поиска требуемых записей. В реляционных СУБД для реализации этого требования служат индексы. Индекс очень похож на алфавитный указатель в книге. Например, у вас в руках книга по Microsoft Visual FoxPro и вы хотите узнать о том, что написано в ней об индексах. Загляните в конец книги и найдите в предметном указателе слово «индекс». Так как указатель отсортирован по алфавиту, вы без труда найдете нужное слово и ссылки на страницы, где оно встречается в книге. Индекс работает с таблицей по такому же принципу. Он содержит отсортированные значения указанного поля таблицы и ссылки на номера записей таблицы, где эти значения находятся. При поиске записи система управления базами данных сначала просматривает индекс, что занимает совсем немного времени, так как для этого используется специальный алгоритм, находит ссылку на номер записи и по ней — нужную строчку в таблице. Таким образом, отпадает необходимость последовательного просмотра всех записей в таблице.

Индекс можно построить по полю почти любого типа. К счастью, пользователь не обязан знать, за счет чего достигается такое огромное увеличение скорости поиска. Достаточно создать индекс, а система Visual FoxPro позаботится обо всем остальном.

Посмотрим на конечный результат (рис. 1.8). На нем представлены индексы таблицы Flat. Их три: Flat Id (Primary), Account (Candidate) и Address (Regular).

Хочу предостеречь вас от типичной ошибки начинающего разработчика — создания индексов по всем полям таблицы для достижения максимальной скорости поиска в сложных запросах. Во-первых, в этом просто нет необходимости, а во-вторых — возникнет серьезная задержка при добавлении записей в таблицу, так как системе придется перестраивать большое число индексов одновременно.

Простой первичный ключ — это индекс, созданный по ключевому полю таблицы (Тип Visual FoxPro — Primary).

Составной первичный ключ — это индекс, созданный по ключевой связке полей таблицы (Тип Visual FoxPro также — Primary).

Первичный ключ у любой таблицы может быть только один. Этого требует теория нормализации. Кроме первичного ключа таблица может иметь любое количество обычных индексов (Тип Visual FoxPro — Regular). Среди них могут быть и уникальные, не допускающие повторяющихся значений. Их принято называть индексы-кандидаты на роль первичного ключа (Тип Visual FoxPro — Candidate). В нашем примере такой индекс есть. Загляните в таблицу Flat (рис. 2.4) и обратите внимание на поле Account (номер лицевого счета квартиросъемщика). Это поле однозначно определяет положение любой квартиры в таблице.

А теперь о создании ключей и обычных индексов с самого начала и по порядку.

Создание простого первичного ключа. Создадим простой первичный ключ для таблицы Street (улицы). Ключевое поле, однозначно определяющее положение любой улицы в таблице улиц, также носит название Street (рис. 2.1).

1.
Откройте таблицу Street в режиме конструктора. Для этого в окне базы данных Real Estate (рис. 2.1) щелкните по таблице Street правой кнопкой мыши. Появится меню. В нем пять пунктов. Выберите из них четвертый с названием Modify.

2. Появится окно конструктора таблиц. Перейдите на вторую вкладку с названием Indexes (рис. 1.9). Увидите таблицу. В ней шесть колонок: Order, Name, Type, Expression, Filter и Collate.

3. Во вторую колонку введите название индекса — street.

4. Нажмите клавишу Tab для перехода в третью колонку Type.

5. Откройте при помощи мыши поле со списком. В нем четыре значения: Primary, Candidate, Binary и Regular. Выберите первое — Primary.

6. В четвертую колонку введите название поля, по которому создается индекс (первичный ключ в данном случае) — street. Остальные колонки заполнять не требуется.

7. Щелкните мышью по кнопке OK. Visual FoxPro попросит подтвердить сделанные изменения. В появившемся окне выберите кнопку Yes.

Создание составного первичного ключа. Создадим составной первичный ключ для таблицы Owners (Проживающие). Связка ключевых полей, однозначно определяющая положение любой записи в этой таблице, выглядит так: Street+House+Flat+ Number.

1. Откройте таблицу Owners в режиме конструктора. Для этого в окне базы данных Real Estate (рис. 2.1) щелкните по таблице Owners правой кнопкой мыши. Появится меню. В нем пять пунктов. Выберите из них четвертый с названием Modify.

2. Появится окно конструктора таблиц. Перейдите на вторую вкладку с названием Indexes (рис. 1.10). Увидите таблицу. В ней шесть колонок: Order, Name, Type, Expression, Filter и Collate.


Рис. 1.10. Таблица Owners в конструкторе таблиц (вторая вкладка Indexes)

3. Во вторую колонку введите название индекса — Ownersid.

4. Нажмите клавишу Tab для перехода в третью колонку Type.

5. Откройте при помощи мыши поле со списком. В нем четыре значения: Primary, Candidate, Binary и Regular. Выберите первое, как и в предыдущем случае — Primary.

6. В четвертую колонку с названием Expression необходимо ввести выражение для составного индекса. Воспользуемся построителем выражений. Для его запуска сделайте щелчок мышью по кнопке Q. Она расположена справа

7. Щелкните мышью по кнопке OK. Visual FoxPro попросит подтвердить сделанные изменения. В окне выберите кнопку Yes.

Создание обычного индекса по полю таблицы. Порядок создания как простого индекса (Regular), так и уникального (индекса-кандидата Candidate) — один и тот же и практически ничем не отличается от создания первичного ключа. Просто в пункте номер пять предыдущей инструкции выберите соответствующее значение (Regular или Candidate). Все индексы одной таблицы Visual FoxPro хранит в одном CDX-файле.

Контроль правильности ввода данных

Информация, накапливаемая в базе данных, должна обладать абсолютной достоверностью. Несоблюдение этого правила может порой привести к печальным последствиям. Например, отдел комплектации не сделает вовремя заказ на поставку необходимых материалов, владелец квартиры получит квитанцию для оплаты налога на автотранспорт, которого у него никогда не было, а пенсионеру будет отказано в выдаче страхового полиса и т. д. Даже самые опытные пользователи, заполняющие таблицы, могут допустить ошибку и занести неверные данные, что, скорее всего, и произошло в перечисленных выше случаях.

Разработчик программного комплекса просто обязан помочь пользователю избежать большинства ошибок при вводе информации. Ниже приведены две возможности, которые любезно предоставили в наше распоряжение авторы Microsoft Visual FoxPro 9.0.

Добавление условия на значение поля позволяет проверить корректность данных только в одном поле, независимо от значений других полей. Рассмотрим пример, в котором на номер района наложено ограничение. Этот номер не может находиться вне диапазона от 1 до 9, даже если пользователь этого очень захочет (рис. 1.12).

Рис. 1.12. Добавление условия на значение поля district (номер района)

Чтобы добавить условие на значение поля таблицы District (районы): 1. Откройте таблицу District в режиме конструктора. Для этого в окне базы данных Real Estate (рис. 2.1) щелкните по таблице District правой кнопкой мыши. Появится меню. В нем пять пунктов. Выберите из них четвертый с названием Modify.

2. Появится окно (рис. 1.13) конструктора таблиц (вкладка Fields).

Запустите построитель выражений для ячейки Rule, выбрав пиктограмму U. Наберите на клавиатуре: District>0 .And. District

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Студент — человек, постоянно откладывающий неизбежность. 10532 — | 7319 — или читать все.

visual-foxpro

Я прохожу через визуальную программу FoxPro, пытаясь задокументировать код в попытке понять процесс (я не разработчик FoxPro и у меня…

у меня есть приложение, написанное в VFP 7, где-то в приложении я вызываю функцию в dll, используя следующее : declare…

Я хочу спросить о веб-сервисах. Рассмотрим сценарий : I ввод данных в настольных приложениях vfp. Когда я нажимаю «сохранить», приложения…

У меня есть com-сервер .Net, который имеет метод, который принимает сообщение и задержку в качестве параметров. После задержки запускается событие,…

Я создал бесмодельную форму в vfp и установил свойства showwindow в ‘0-In screen’.Я поместил кнопку в форму и добавил «DO…

Я никогда не использовал Foxpro раньше. Можете ли вы преобразовать следующий код Foxpro в c#, чтобы я мог понять логику….

What im doing wrong, My code is in php and i want to save data into dbf. Я протестировал этот…

Мы пытаемся отследить определенное предупреждение ABRA, которое, как мы полагаем, прикреплено к некоторому пользовательскому коду, который генерирует *.snpфайлы msaccess. Считается,…

Я пытаюсь экспортировать отчет vfp в jpg с помощью foxypreviewer . Im используя этот синтаксис DO foxypreviewer.app LABEL FORM report…

Я очень новичок в VFP9 и должен переместить все файлы базы данных для пользовательской программы 6 на общий сетевой диск…

Мы используем Crystal Report viewer (XI I believe but we can upgrade) с интерфейсом VFP. Существует ли способ динамического задания…

Я хочу использовать FoxPro database в backend и C# .net в интерфейсе, но я не знаю, как соединиться с foxpro…

У меня есть форма в VFP 9, которая обычно вызывается из другой формы с 2 параметрами. У меня происходит странная…

Моя компания хочет медленно переключаться на некоторые старые программы, написанные в Visual FoxPro 6.0. Проблема в том, что у нас…

Я пытался сгенерировать файл excel в VS Fox Pro 9, но моя проблема в том, что некоторые поля не отображаются,…

Я пытаюсь отсеять «дубликаты» (от cmemails.csubject), даже если они не идентичны в именовании файлов. Ниже приведены идентичные файлы (за исключением…

Как ограничить число записей, с которым заполняется массив? TMI-у меня есть папка с тысячами записей. Я хочу переместить их из»…

Я использую vfp9. У меня два стола: Countries with the field: id — 1 2 3 Students with the fields:…

Как сохранить idnum из моей базы данных в combobox, чтобы я мог редактировать и обновлять записи. Я понятия не имею,…

Впервые в жизни мне действительно нужно задать вопрос, потому что за всю свою жизнь я не могу найти ответ на…

Я пишу приложение foxpro с функцией поиска / замены текста в документе Word. Следующий код работает нормально: ****************************************** begining of…

Я сталкиваюсь с этой проблемой довольно много с пользователями нашего большого приложения базы данных HR, написанного в Visual FoxPro 6.0,…

Как редактировать html в приложении Microsoft Visual FoxPro под управлением Windows x64 Похоже, что Microsoft Web Browser ActiveX не доступен…

Столбец Sum при каждом изменении значения другого поля в foxpro. Как я могу получить аддитивную колонку? I was able to…

Компания, в которой я работаю, по-прежнему использует visual foxpro, и я делаю сканер отпечатков пальцев с помощью vfp9 и Griaule…

работая с word 2010, мне нужно разместить водяной знак изображения на всех страницах. Я записал макрос и хочу знать точное…

Я создаю таблицы VF с помощью C#. Инструкция Create Table выглядит так

Я создаю приложение, где пользователь может выбрать участников из контакта, а также он может удалить участников позже, если он не…

Я хотел бы добавить один флажок в каждый заголовок группы и обработать его щелчок или изменение события с помощью Infragistics…

У меня есть странная проблема с моим настольным приложением WPF, что он не может найти общую папку на сервере в…

В приложении, над которым я работаю, мне нужно написать в текстовом поле приложения VFP, а затем нажать кнопку (VFP тоже)….

как название объясняет im пытается вставить дату в a .архив DBF. Я всегда получаю «несоответствие типа»… я уже почти все…

У нас есть устаревшее приложение FoxPro, которое использует CDO для NTS для отправки STMP электронной почты через наш сервер Exchange….

Заранее спасибо. Я самоучка, поэтому, пожалуйста, простите мое отсутствие «tech speak». Я нахожусь в процессе преобразования моего приложения VFP в…

Я пытаюсь прочитать таблицу FoxPro в C# DataTable, проблема в том, что мне нужно, чтобы она была открыта где-то еще,…

Мой вопрос прост, при использовании таблицы в Visual Fox Pro, в чем разница между использованием общих до и после таблицы?…

Я новичок в использовании Visual FoxPro. Я пытаюсь создать простое приложение, которое содержит форму с несколькими текстовыми полями. Проблема в…

Это будет неопределенно, и я заранее приношу свои извинения. Я использую Install Shield Express в течение последних 7 лет теперь…

UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:@[message] applicationActivities:nil]; activityVC.excludedActivityTypes = nil; [activityVC setCompletionHandler:^(NSString *activityType, BOOL completed) < activityVC.completionHandler = nil; //…

У меня есть проблема ручного выбора для тех макетов флажков в первых столбцах сетки, где все созданы в классе object….

У меня проблема с подключением к DBF файлам на удаленном расположении с помощью OleDb. Когда я использую локальный путь, все…

Я пытаюсь читать файлы Foxpro DBF с Microsoft SQL Server 2012 я использую этот запрос CREATE VIEW DBF_out AS SELECT…

Я программист C#, который работает над устаревшей системой FoxPro (Point of Sale), и я хотел бы знать, как назначить результаты…

Я пытаюсь подробнее ознакомиться и попрактиковаться в Microsoft Visual FoxPro. Вы можете помочь мне преобразовать числовое в символьное? Что такое…

Я разрабатываю средство миграции foxpro в mysql и использую драйвер foxpro ODBC для подключения к базе данных и запросов. Я…

У меня есть одна сетка, созданная на второй странице фрейма страницы и связанная с ней .PRG файл для каждого времени…

Я пытаюсь подключить свое приложение c# к базе данных visualFoxPro. После получения данных из таблицы foxpro я помещу их в…

Я пытаюсь получить доступ к базе данных Visual FoxPro через MS Access 2013 на машине Windows 7, но я получаю…

Привет я использую Windows 7 и Access 2013. Я не могу связать таблицы с помощью Visual Fox Pro DB через…

Существует ли альтернативная библиотека, доступная в c# или алгоритм, который генерирует уникальное значение аналогичным образом vfp с помощью команды sys…

Я запускаю Visual Studio 2015 (обновление 1, .NET Framework 4.6.1), и все файлы конструктора перестали автоматически обновляться в моем проекте….

У меня есть простая функция FUNCTION TEST LOCAL lcExp FOR I = 0 TO 10 lcExp = lcExp + «…

Я не знаю слишком много о Foxpro, но мне нужно, чтобы просмотреть DBF файлы. На компьютере установлен файл клиента: «Visual…

В VFP9 есть ссылка на объектTHIS, которая предоставляет ссылку на текущий объект в коде события или в определении класса. В…

I am having two tables AORDER for Purchase & BORDER for sale. Я хочу получить ожидающее количество. Заказы на продажу…


В VFP9 у меня есть приложение, которое выполняет заранее определенную последовательность операций, затем заканчивается. В то время как он работает,…

I am having three tables first for Parties name, Second for Quality and third for хранение заказов на покупку. В…

Я искал в интернете о теме, но все, что я нашел, это решения VB и C#. Кто-нибудь знает, есть ли…

У меня есть приложение Visual FoxPro 9, которое загружает большой объем данных из текстовых файлов в небольшое количество таблиц в…

Как я могу искать больше, чем совпадения на основе ключа индекса в foxpro? Я хочу изменить chosenполе в таблице dlна…

У меня есть сетка с этими столбцами : nrcrt, deadline, dateEnd, content. Формат столбца deadline и dateEnd: «yyyy-MM-dd HH:mm:ss» Я…

Я получаю ошибку в этом месте, с этим кодом: List stat = [select name from States__c where Countries__r.name = :contr];…

У меня есть модуль в vfp9 под управлением windows 7 32bits, этот модуль печатает на локальном принтере с помощью команды…

Использование Delphi XE8. Соединение: компонент TFDConnection со следующими парами: Driver >

У меня есть приложение, которое использует команду изменить отчет, чтобы пользователь мог вносить изменения в такие элементы, как метки, чтобы…

У меня есть проблема с кодом, ответственным за удаление (замену) диакритического в файле, используя VPF 9.0. Я использую эту команду…

я пытался сделать это в течение некоторого времени, но я не могу понять, как. Я хочу вызвать процедуру из внешнего…

Приложение Visual FoxPro 9 записано на экран с помощью ? команды SYS(602 , 1 ) MODIFY WINDOW screen FONT ‘Arial’,14…

В настоящее время я создаю инструмент экспорта/импорта данных для извлечения данных в базу данных Visual Fox Pro из документа excel…

Microsoft откроет исходники СУБД FoxPro

Microsoft опубликует исходный код ключевых компонентов Visual FoxPro. В то же время компания не будет продолжать разработку легендарной СУБД после версии 9.0.

Открытие исходников осуществляется в рамках проекта CodePlex, который был создан специально для этих целей в июне прошлого года.

Компания гарантирует поддержку пользователей Visual FoxPro вплоть до 2015 года, в том числе стандартную поддержку до января 2010 года, а дальше — по специальному плану.

Команда создателей FoxPro будет разбросана по другим отделам Microsoft. Фактически, компания закрывает этот проект и публикует исходные коды только для того, чтобы независимые программисты могли получить в будущем хоть какой-то шанс сохранить работоспособность написанных на FoxPro систем.

Запуск Microsoft Visual FoxPro

СОЗДАНИЕ БАЗЫ ДАННЫХ

Для запуска Microsoft Visual FoxPro на вашем компьютере нажмите

кнопку «Пуск» и выберите в открывшемся главном меню пункт «Все программы». В списке программ найдите «Microsoft Visual FoxPro 9» – FoxPro установлен там по умолчанию. Щелчок левой кнопкой мыши даст следующую картинку (рис. 1.1).

Рис. 1.1. Главное окно Microsoft Visual Fox Pro 9.0

На экране появится главное окно Visual FoxPro, окно менеджера панели задач (Task Pane Manager), в нижней части которого содержится список ранее открывавшихся баз данных, и командное окно (Command) с последними, набранными в нем командами.

Команду Visual FoxPro можно выполнить, набрав ее в окне Command и нажав на клавишу Enter. Для повторного выполнения команды поместите курсор на строку с командой и нажмите Enter еще раз.

Так как в окне Command допускается редактирование, можно изменить команду инструментами редактирования, доступными в Visual FoxPro. Эти инструменты позволяют редактировать, вставлять, удалять, вырезать и помещать текст в окне Command. Преимущество использования окна Command состоит в немедленном выполнении инструкций. Нет необходимости сохранять файл и запускать его как программу.

Кроме того, в окне Command сохраняются в виде команд все действия, производимые с меню и диалоговыми окнами. Вы можете скопировать и разместить эти команды в программе Visual FoxPro. После этого программу можно запускать сколько угодно раз, избегая многократного повтора одних и тех же действий.

Для комфортной работы создайте на рабочем столе ярлык Microsoft Visual FoxPro 9, в его свойствах в качестве рабочей папки укажите ту, в которой будет располагаться разрабатываемое приложение и данные. В нашем примере – это папка Real Estate. Не устраивайте в ней «свалку», разместив одновременно все объекты приложения: таблицы, индексы, контейнер базы данных, формы, отчеты, классы и т. д.

Советую все объекты в этой папке расположить структурировано. Примерный вид папки c приложением может быть таким (рис. 1.2).

Рис. 1.2. Состав папки Real Estate

BOOK – папка, содержащая формы справочников.

CLASS – папка, содержащая пользовательские классы.

DBF – папка с данными (контейнер, таблицы, индексные файлы, поля примечаний и т. д.).

DECKTOP – в этой папке расположены картинки, используемые для оформления главного окна программного комплекса.

FORM – папка, содержащая главные формы приложения.

HELP – папка с файлами контекстуально-зависимой помощи, вызываемой при нажатии клавиши F1.

ICO – иконки для оформления интерфейса вашего приложения.

INSTALL – папка, содержащая файлы дистрибутива для инсталляции готового программного комплекса на клиентский компьютер.

PICTURE – фотографии зданий (в данном примере).

REPORT – папка, содержащая отчеты Visual FoxPro.

USER – папка, содержащая информацию о пользователях и паролях для работы с программным комплексом. В ней расположена фактически одна таблица. Это связано с тем, что в Visual FoxPro отсутствует система защиты от несанкционированного доступа средствами СУБД. Такое выделение отдельной папки позволит обеспечить защиту комплекса средствами операционной системы.

Создание базы данных Visual FoxPro

Перейдем к конкретным действиям по созданию базы данных. Запустите Microsoft Visual FoxPro на вашем компьютере и воспользуйтесь одним из трех способов.

В окне менеджера панели задач (Task Pane Manager) на его первой вкладке Start выберите ссылку New Database. На экране дисплея появится окно Create. Перейдите в папку DBF, в которой мы будем хранить данные, задайте имя базы данных — Real Estate. Нажмите кнопку Сохранить. База данных получила свое название и законное место на жестком диске.

В главном меню Visual FoxPro щелкните пункт File и выберите команду New. В открывшемся окне щелкните радиокнопку Database и нажмите кнопку New file. На экране дисплея появится окно Create. Перейдите в папку DBF, в которой мы будем хранить данные, задайте имя базы данных — Real Estate. Нажмите кнопку Сохранить.

Введите в командном окне (Command) команду Create Database. На экране дисплея появится окно Create. Перейдите в папку DBF, в которой мы будем хранить данные, задайте имя базы данных — Real Estate. Нажмите кнопку Сохранить.

Теперь в папке DBF появилось три файла — так называемый контейнер базы данных. Это файлы:

Real Estate.dbc Real Estate.dct Real Estate.dcx

Отличительной особенностью Microsoft Visual FoxPro является то, что один объект этой СУБД размещается в нескольких файлах (от одного до трех). Расширения других файлов, используемых Visual FoxPro, будут рас­смотрены нами позднее в соответствующих главах.

Visual FoxPro 9.0 позволяет создавать как таблицы, входящие в базу данных, так и свободные таблицы. Это дань истории развития продукта -черта, свойственная только ему. Так уж сложилось со времен появления Visual FoxPro 3.0. Воспользуемся ей.

Будут применяться таблицы обоих типов. Свободная (вне базы данных) таблица User даст возможность отрегулировать вопрос о правах доступа к приложению (рис. 1.2), а все остальные, размещенные в контейнере Real Estate, представляют реляционную базу данных.

Существует несколько способов создания таблиц в Microsoft Visual FoxPro:

— с помощью мастера таблиц;

— с использованием конструктора таблиц;

— путем импорта данных из внешнего файла в текущую базу данных;

4) создание их в текущей базе данных, связанных с таблицами внешнего файла.

Первый способ — для новичков в работе с базами данных, испытывающих сильное желание немедленно создать свою первую таблицу.

Рис. 1.5. Работа в главном меню Visual FoxPro 9.0 с базой данных

Во всех трех случаях увидим окно конструктора таблицы. Это форма с тремя вкладками: Fiels, Indexes и Table.

• Fields (Поля) — поля создаваемой таблицы и условия достоверности вводимых данных на уровне поля;

• Indexes (Индексы) — индексы создаваемой таблицы;

• Table (Таблица) — условия достоверности вводимых данных на уровне записи, а также триггеров добавления, удаления и модификации.

Первая вкладка (рис. 1.6) используется при определении полей таблицы. Она предназначена для ввода названия полей, типа данных и ширины поля. При занесении числовых полей задается количество десятичных знаков. Кроме основных параметров для каждого поля на этой вкладке задаются дополнительные параметры, которые помогут вам при сопровождении программного комплекса. Обратите особое внимание на ячейку Field comment. Не оставляйте ее пустой! Опишите подробно назначение поля таблицы. Позже обязательно поймете важность этого совета.

Имена полей должны содержать не более 255 символов и могут включать любые комбинации символов за исключением точки, восклицательного знака и квадратных скобок. Используйте в именах полей только латинские буквы при общей длине имени до 10 символов включительно. В этом случае у Вас не будет проблем с конвертацией таблиц Microsoft Visual FoxPro в таблицы других СУБД (например, Microsoft SQL Server).

Каждое поле таблицы должно иметь уникальное имя, но в различных таблицах можно использовать одинаковые имена полей. В табл. 1.1 приведены основные типы данных полей Microsoft Visual FoxPro 9.0.

Типы данных полей таблиц Microsoft Visual FoxPro 9.0

Вид данных Тип данных Описание
Текстовый Character Текст или числа, не требующие проведения расчетов. Максимальная длина — 255 символов. По умолчанию длина текстового поля устанавливается равной 10 символов
Character 1 Аналогичен Character. Используется в том случае, (binary) | если не требуется учитывать кодовую страницу
Varchar 1Аналогичен Character. Для этого типа не происходит заполнение свободных мест незначащей информацией
Varbinary Шестнадцатеричные значения
Дата и время Datetime Любая дата от 01.01.0001 до 31.12.9999 и время от 00.00.00 a.m. до 11.59.59 p.m.
Дата Date Любая дата от 01.01.0001 до 31.12.9999
Денежный Currency Позволяет выполнять расчеты с точностью до 15 знаков в целой и до 4 знаков в дробной части
Логический Logical Содержит значение True (.T.) или False (.F.) Истина или ложь
Числовой Integer Целые числа от -2147483647 до 2147483648
Integer (AutoInc) Счетчик. Уникальные, последовательно возрастающие числа, автоматически вводящиеся в таблицу при добавлении каждой новой записи
Numeric Десятичные данные с фиксированной точкой
Float Десятичные данные с плавающей точкой простой точности
Double Десятичные данные с плавающей точкой высокой точности
Двоичное поле произвольной длины General Включает рисунок, фотографию, звукозапись, диа­граммы, векторную графику, форматированный текст и т. п.
Текстовое поле произвольной длины Мемо Поля типа МЕМО предназначены для хранения больших текстовых данных. Длина поля может достигать 64 Кб. Поле не может быть ключевым или индексированным
Двоичный Blob Двоичные символы

В правой части первой вкладки Fields конструктора таблицы (рис. 1.6) также расположены ячейки, позволяющие задать для каждого поля созда­ваемой таблицы свойства, которые будут задействованы при вводе данных.

Format (Формат) — задает формат отображения данных в окне Browse, отчетах и формах.

Input mask (Маска ввода) — задает шаблон для ввода данных.

Caption (Заголовок) — определяет заголовок поля.

Rule (Условие) — проверка правильности ввода данных на уровне поля создаваемой таблицы.

Message (Сообщение) — текст сообщения, которое появится на экране дисплея при неправильном вводе данных в поле.


Default value (Значение по умолчанию) — значение, вводимое в поле по умолчанию.

Display library (Показать библиотеку) — определяет имя файла библиотеки классов.

Display class (Показать класс) — определяет имя класса из выбранной библиотеки классов.

Next Value (Начальное значение) — задает начальное значение счетчика. Доступно только для поля IntegerInc.

Step (Шаг) — приращение счетчика. Доступно только для поля Integerlnc.

Создадим нашу первую таблицу Building. Ее окончательная структура взята из табл. 2.7. Имейте в виду, что имя поля и его описание вводится с клавиатуры, а тип данных выбирается из списка.

Рассмотрим действия по созданию таблицы подробнее (рис. 3.6).

1. Введите в первую колонку имя первого поля: Street и нажмите клавишу . Курсор переместится во вторую колонку Type. По умолчанию будет назначен тип Character длиной 10 символов.

2. Раскройте список типов данных при помощи мыши. Выберите тип Numeric и нажмите клавишу .

3. Заполните колонки Width (Число знаков) и Decimal (Число знаков после десятичной точки). Для ссылки на номер улицы используем четыре десятичных знака. Это дает возможность работать с 9999 улицами, что вполне достаточно для города с миллионным населением. Кстати, в Хабаровске 1248 улиц, переулков, проездов, шоссе, кварталов, площадей, бульваров и т. д.

4. Обязательно заполните ячейку Field comment. Не ленитесь, пишите подробнее!

5. Повторите шаги 1-4 для всех оставшихся полей таблицы. Остальные поля первой вкладки конструктора таблиц на этом этапе можно не заполнять. После занесения данных обо всех полях таблицы просто закройте окно конструктора таблиц. Появится диалоговое окно «Сохранение», запрашивающее подтверждение на сохранение структуры таблицы (рис. 1.7).

Щелкните по кнопке «Yes». Наша первая таблица появится в окне базы данных, а в папке DBF — два файла: Building.dbf (сама таблица) и Building.fpt (поле Memo). Заполнять сейчас созданную таблицу начинающему пользователю категорически не рекомендуется, да так и не делается! Посмотрите на содержимое табл. 1.2. Это не отдельная таблица, она будет связана с другими таблицами базы данных Real Estate. Что в ней хранится — пока загадка. Уверен, что большинство цифр Вам просто непонятны.

Информация, содержащаяся в связанной таблице

Street House Flat Storey Rooms Square Dwell Branch Account
60,8

Аналогичным образом создадим все наши таблицы, разработанные в разд. 2: Flat, Owners, Account, Street, District и Wall.

3.4. Создание первичных ключей и индексов

Одним из основных требований, предъявляемых к СУБД, является возможность быстрого поиска требуемых записей. В реляционных СУБД для реализации этого требования служат индексы. Индекс очень похож на алфавитный указатель в книге. Например, у вас в руках книга по Microsoft Visual FoxPro и вы хотите узнать о том, что написано в ней об индексах. Загляните в конец книги и найдите в предметном указателе слово «индекс». Так как указатель отсортирован по алфавиту, вы без труда найдете нужное слово и ссылки на страницы, где оно встречается в книге. Индекс работает с таблицей по такому же принципу. Он содержит отсортированные значения указанного поля таблицы и ссылки на номера записей таблицы, где эти значения находятся. При поиске записи система управления базами данных сначала просматривает индекс, что занимает совсем немного времени, так как для этого используется специальный алгоритм, находит ссылку на номер записи и по ней — нужную строчку в таблице. Таким образом, отпадает необходимость последовательного просмотра всех записей в таблице.

Индекс можно построить по полю почти любого типа. К счастью, пользователь не обязан знать, за счет чего достигается такое огромное увеличение скорости поиска. Достаточно создать индекс, а система Visual FoxPro позаботится обо всем остальном.

Посмотрим на конечный результат (рис. 1.8). На нем представлены индексы таблицы Flat. Их три: Flat Id (Primary), Account (Candidate) и Address (Regular).

Хочу предостеречь вас от типичной ошибки начинающего разработчика — создания индексов по всем полям таблицы для достижения максимальной скорости поиска в сложных запросах. Во-первых, в этом просто нет необходимости, а во-вторых — возникнет серьезная задержка при добавлении записей в таблицу, так как системе придется перестраивать большое число индексов одновременно.

Простой первичный ключ — это индекс, созданный по ключевому полю таблицы (Тип Visual FoxPro — Primary).

Составной первичный ключ — это индекс, созданный по ключевой связке полей таблицы (Тип Visual FoxPro также — Primary).

Первичный ключ у любой таблицы может быть только один. Этого требует теория нормализации. Кроме первичного ключа таблица может иметь любое количество обычных индексов (Тип Visual FoxPro — Regular). Среди них могут быть и уникальные, не допускающие повторяющихся значений. Их принято называть индексы-кандидаты на роль первичного ключа (Тип Visual FoxPro — Candidate). В нашем примере такой индекс есть. Загляните в таблицу Flat (рис. 2.4) и обратите внимание на поле Account (номер лицевого счета квартиросъемщика). Это поле однозначно определяет положение любой квартиры в таблице.

А теперь о создании ключей и обычных индексов с самого начала и по порядку.

Создание простого первичного ключа. Создадим простой первичный ключ для таблицы Street (улицы). Ключевое поле, однозначно определяющее положение любой улицы в таблице улиц, также носит название Street (рис. 2.1).

1.
Откройте таблицу Street в режиме конструктора. Для этого в окне базы данных Real Estate (рис. 2.1) щелкните по таблице Street правой кнопкой мыши. Появится меню. В нем пять пунктов. Выберите из них четвертый с названием Modify.

2. Появится окно конструктора таблиц. Перейдите на вторую вкладку с названием Indexes (рис. 1.9). Увидите таблицу. В ней шесть колонок: Order, Name, Type, Expression, Filter и Collate.

3. Во вторую колонку введите название индекса — street.

4. Нажмите клавишу Tab для перехода в третью колонку Type.

5. Откройте при помощи мыши поле со списком. В нем четыре значения: Primary, Candidate, Binary и Regular. Выберите первое — Primary.

6. В четвертую колонку введите название поля, по которому создается индекс (первичный ключ в данном случае) — street. Остальные колонки заполнять не требуется.

7. Щелкните мышью по кнопке OK. Visual FoxPro попросит подтвердить сделанные изменения. В появившемся окне выберите кнопку Yes.

Создание составного первичного ключа. Создадим составной первичный ключ для таблицы Owners (Проживающие). Связка ключевых полей, однозначно определяющая положение любой записи в этой таблице, выглядит так: Street+House+Flat+ Number.

1. Откройте таблицу Owners в режиме конструктора. Для этого в окне базы данных Real Estate (рис. 2.1) щелкните по таблице Owners правой кнопкой мыши. Появится меню. В нем пять пунктов. Выберите из них четвертый с названием Modify.

2. Появится окно конструктора таблиц. Перейдите на вторую вкладку с названием Indexes (рис. 1.10). Увидите таблицу. В ней шесть колонок: Order, Name, Type, Expression, Filter и Collate.

Рис. 1.10. Таблица Owners в конструкторе таблиц (вторая вкладка Indexes)

3. Во вторую колонку введите название индекса — Ownersid.

4. Нажмите клавишу Tab для перехода в третью колонку Type.

5. Откройте при помощи мыши поле со списком. В нем четыре значения: Primary, Candidate, Binary и Regular. Выберите первое, как и в предыдущем случае — Primary.

6. В четвертую колонку с названием Expression необходимо ввести выражение для составного индекса. Воспользуемся построителем выражений. Для его запуска сделайте щелчок мышью по кнопке Q. Она расположена справа

7. Щелкните мышью по кнопке OK. Visual FoxPro попросит подтвердить сделанные изменения. В окне выберите кнопку Yes.

Создание обычного индекса по полю таблицы. Порядок создания как простого индекса (Regular), так и уникального (индекса-кандидата Candidate) — один и тот же и практически ничем не отличается от создания первичного ключа. Просто в пункте номер пять предыдущей инструкции выберите соответствующее значение (Regular или Candidate). Все индексы одной таблицы Visual FoxPro хранит в одном CDX-файле.

Контроль правильности ввода данных

Информация, накапливаемая в базе данных, должна обладать абсолютной достоверностью. Несоблюдение этого правила может порой привести к печальным последствиям. Например, отдел комплектации не сделает вовремя заказ на поставку необходимых материалов, владелец квартиры получит квитанцию для оплаты налога на автотранспорт, которого у него никогда не было, а пенсионеру будет отказано в выдаче страхового полиса и т. д. Даже самые опытные пользователи, заполняющие таблицы, могут допустить ошибку и занести неверные данные, что, скорее всего, и произошло в перечисленных выше случаях.

Разработчик программного комплекса просто обязан помочь пользователю избежать большинства ошибок при вводе информации. Ниже приведены две возможности, которые любезно предоставили в наше распоряжение авторы Microsoft Visual FoxPro 9.0.

Добавление условия на значение поля позволяет проверить корректность данных только в одном поле, независимо от значений других полей. Рассмотрим пример, в котором на номер района наложено ограничение. Этот номер не может находиться вне диапазона от 1 до 9, даже если пользователь этого очень захочет (рис. 1.12).

Рис. 1.12. Добавление условия на значение поля district (номер района)

Чтобы добавить условие на значение поля таблицы District (районы): 1. Откройте таблицу District в режиме конструктора. Для этого в окне базы данных Real Estate (рис. 2.1) щелкните по таблице District правой кнопкой мыши. Появится меню. В нем пять пунктов. Выберите из них четвертый с названием Modify.

2. Появится окно (рис. 1.13) конструктора таблиц (вкладка Fields).

Запустите построитель выражений для ячейки Rule, выбрав пиктограмму U. Наберите на клавиатуре: District>0 .And. District

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: На стипендию можно купить что-нибудь, но не больше. 8989 — | 7235 — или читать все.

Почему visual foxpro хороший выбор для вашей организации

В конце 2002 года было показано, что Visual FoxPro может работать на Linux под Wine, однако это, по существу, нарушает пользовательское лицензионное соглашение (EULA).

В декабре 2005 года, VFP взлетел в Top 20 на TIOBE индекс в первый раз. В марте 2007 года он был в положении 19, что делает его языком группы «B». По состоянию на август 2010 года, VFP (в сочетании с XBase) находится в позиции 25.

В марте 2007 года Microsoft объявила, что не будет VFP 10, соответственно, VFP 9 (выпущен в производство 17 декабря 2004 г.) — последний коммерческий релиз VFP от Microsoft. Поддержка версии 9 продолжается с пакетами обновления, которые были выпущены 8 декабря 2005 и 11 октября 2007 года.

Идет работа над проектом под кодовым названием «Седна» (названном в честь карликовой планеты Седны, открытой в 2003 году), который представляет собой набор дополнений к VFP 9.0 из xBase-компонентов для поддержки ряда сценариев и алгоритмов взаимодействия с различными технологиями Microsoft, включая SQL Server 2005, .NET Framework, Windows Vista, Office 2007, Windows Search и Team Foundation Server (TFS). Microsoft выпустила «Седну» под лицензией Shared Source на сайте CodePlex. Представители корпорации Microsoft пояснили, что основной VFP будет по-прежнему оставаться закрытым исходным кодом. «Седна» была выпущен 25 января 2008. По состоянию на март 2008 года, все xBase-компоненты VFP 9 SP2 (в том числе «Седна») были доступны для развития сообществом на CodePlex.

История версий

Совместимость с операционными системами

Поддерживаемые версии Windows
Версия VFP 3.0 VFP 5.0 VFP 6.0 VFP 7.0 VFP 8.1 VFP 9.0
Windows 3.x Да Нет Нет Нет Нет Нет
Windows NT 4.0 Да Да Да Да Нет Нет [1]
Windows 95 Да Да Да Только среда запуска (runtime) Нет Нет
Windows 98 Да Да Да Да Только среда запуска (Runtime) Только среда запуска (Runtime)
Windows ME Да Да Да Да Только среда запуска (Runtime) Только среда запуска (Runtime)
Windows 2000 Да Да Да Да Да Да
Windows XP Да Да Да Да Да Да
Windows Server 2003 ? Да Да Да Да Да
Windows Vista В режиме совместимости Да Да Да Да Да
Windows 7 Да Да Да Да Да Да

Исполняемые файлы

Версия Возвращаемое значение VERSION() Размер EXE-файла Дата EXE-файла Размер DLL-файла Название DLL-файла
VFP 9 SP2 with Hotfixes Visual FoxPro 09.00.0000.7423 for Windows 5,648 kb 3 апреля 2009 4,624 kb VFP9R.DLL
VFP 9 SP2 Visual FoxPro 09.00.0000.5721 for Windows 5,648 kb 16 октября 2007 4,624 kb VFP9R.DLL
VFP 9 Visual FoxPro 09.00.0000.2412 for Windows 5,620 kb 13 декабря 2004 4,600 kb VFP9R.DLL
VFP 8 Visual FoxPro 08.00.0000.3117 for Windows 5,236 kb 25 сентября 2003 4,200 kb VFP8R.DLL
VFP 7 Visual FoxPro 07.00.0000.9465 for Windows 4,260 kb 4 января 2002 3,344 kb VFP7R.DLL
VFP 6 Visual FoxPro 06.00.8961.00 for Windows 4,091 kb 18 августа 2000 3,295 kb VFP6R.DLL
VFP 5 Visual FoxPro 5.0.0.415 for Windows 4,065 kb 24 января 1997 3,148 kb VFP500.DLL
VFP 3 Visual FoxPro 03.00.00.0711 for Windows 4,374 kb 16 декабря 1995 3,657 kb VFP300.ESL
FPW 2.6a FoxPro 2.6a for Windows 2,444 kb 28 сентября 1994 2,946 kb FOXW2600.ESL

Дальнейшее развитие

Разработка продукта MS прекращена с выходом SP2 для версии 9.0, поддержка продукта MS будет осуществляться до 2015 года [2] .

В конце марта 2007 организовалось движение испаноязычного FoxPro-сообщества MasFoxPro [3] (MoreFoxPro в английском), целью которого стало написание петиции в Microsoft с предложением продолжить работу по обновлению Visual FoxPro или выпустить его в сообщество с открытым исходным кодом. 3 апреля 2007 года движение было отмечено технической прессой [4] .

Также 3 апреля 2007 Microsoft ответила на просьбы заявителя таким заявлением от Алана Гривера ( Alan Griver ):

Мы очень хорошо понимаем FoxPro сообщество и, то, что сыграло большую роль в том, что мы объявили 13 марта. Это всегда нелегкое решение — объявить, что мы не собираемся выпускать другую версию продукта, и это первое, что мы рассматриваем очень тщательно.

Мы не объявляем конец проекта FoxPro: очевидно, приложения FoxPro будут продолжать работать. Согласно нашим внутренним оценкам, существует больше приложений, работающих в FoxPro 2.6, чем есть в VFP, а ведь FoxPro 2.6 не поддерживается много лет. Visual FoxPro 9.0 будет поддерживаться Microsoft до 2015 года.

Для Microsoft, чтобы сохранить развитие основы FoxPro, надо обратить внимание на создание 64-разрядной среды разработки, что будет включать почти полностью переписанный основной продукт. Мы также инвестировали в создание масштабируемой базы данных SQL Server, включая свободно доступный SQL Server Express Edition. Что касается формирования партнерских отношений с третьей стороной, о которой мы слышали в интерпретации ряда крупных клиентов FoxPro, — это сделает невозможным использование FoxPro, поскольку он больше не будет от утвержденного поставщика. Мы чувствовали, что выложить среду с открытым исходным кодом на CodePlex, которая уравновешивает потребности как сообщества, так и крупных клиентов — лучший путь вперёд.

We’re very aware of the FoxPro community and that played a large part in what we announced on March 13th. It’s never an easy decision to announce that we’re not going to release another version of a product and it’s one that we consider very carefully.

We’re not announcing the end of FoxPro: Obviously, FoxPro applications will continue to work. By some of our internal estimates, there are more applications running in FoxPro 2.6 than there are in VFP and FoxPro 2.6 hasn’t been supported in many years. Visual FoxPro 9 will be supported by Microsoft through 2015.

For Microsoft to continue to evolve the FoxPro base, we would need to look at creating a 64-bit development environment and that would involve an almost complete rewrite of the core product. We’ve also invested in creating a scalable database with SQL Server, including the freely available SQL Server Express Edition. As far as forming a partnership with a third-party is concerned, we’ve heard from a number of large FoxPro customers that this would make it impossible for them to continue to use FoxPro since it would no longer be from an approved vendor. We felt that putting the environment into open source on CodePlex, which balances the needs of both the community and the large customers, was the best path forward. [5]

Илон Маск рекомендует:  Что такое код getc
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL