Пример клиент-серверного приложения

От автора.

Уважаемые коллеги!

В последнее время на форуме прослеживается живой интерес к клиент-серверным приложениям, в частности к связке VFP-MSSQL, что подвигло меня данную публикацию.

Так же, моя профессиональная деятельность за последнее время несколько изменилась и я уже не являюсь VFP программером в полном смысле этого слова, так что эта публикация является отчасти и прощальным приветом тем людям, с которыми я долгое время общался и которые несмотря ни на что несут этот крест - Visual Foxpro: Владимир Журавлев, Степанов Денис (HellRiser), Гринчишин Влад, Сергей Титов, Владимир Максимов, Кочкомбаев Тарас, Людмила, Жирнов Сергей, Насоновская Надя и многие другие.

Эти люди меня многому научили, за что им огромное спасибо.

Предупреждение.

Данный пример ни в коей мере не может служить эталоном по созданию CS приложений на VFP! Эту программу я написал, когда знакомился с MS SQL Server 7 (около 2х лет назад). Более того - это моя первая программа, использующая клиент-серверную технологию.

Ну и,самое главное, здесь используются только SPT функции, т.к. только они позволяют держать под абсолютным контролем удаленную БД, и нет ни слова о Remote View (я считаю, что не надо скрещивать два разных подхода к CS приложениям на VFP).

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

Недостатки и грабли.

Именно после этого проекта я написал пакет классов для работы с удаленными данными (которые опубликованы здесь в "Решениях"), т.к. здесь в полной мере проявился недостаток процедурного программирования в отношении работы с функциями SQL pass trought (SPT), а именно:

Казалось бы - напиши универсальные процедуры и не "парься", однако, универсальность привела бы к неоправданной громоздкости этих самых процедур. Оптимальное решение - классы работы с SPT. К сожалению, к этому очевидному решению я пришел, когда уже была написана львиная доля кода и переписывать его уже не имело особого смысла - код работал. Так что учтите эти замечания, когда будете смотреть код.

Не смотря на это программа успешно эксплуатируется у нас в конторе и поныне. Говорят, что удобно.

Достоинства.

Кроме недостатков, программа обладает и достоинствами, причем немаловажными. Вот они:

Можно, конечно, напрячься и вычислить еще пару достоинств, но эти - основополагающие.

Сопроводительная документация.

К программе прилагается:

Как сгенерить БД.

Краткая инструкция по генерации БД (для успешной работы необходимо обладать правами DBcreator на MSSQL):

  1. Запустить Query Analyser
  2. В окне команд написать: CREATE DATABASE Computers
  3. Нажать F5
  4. Будет создана БД Computers
  5. Открыть скрипт генерации БД (Меню Open...)
  6. Сделать активной новую БД (выпадающий список БД)
  7. Нажать F5
  8. В результате должны быть созданы все объекты БД, и таблицы проинициализированы системными записями
Если будут проблемы - сообщите. Попробуем решить.

Если же все в порядке - создайте DSN и можно запускать программу. Обязательно прочтите Readme.txt !!!

Опять от автора.

Прошу не судить строго. Буду рад конструктивной критике, желательно прямо здесь, в разделе - чтобы другие посетители были в курсе.

Буду очень рад, если это все кому-нибудь поможет. С уважением, Орлов Дмитрий aka Jimmy.