Как? Почему? Зачем? (КВ-Лайт)

Как в СУБД FoxPro позволить пользователю загружать картинки и другие OLE-объекты в базу данных?

Microsoft Visual FoxPro - это распространенная система управления базами данных (СУБД), а также среда разработки приложений, обслуживающих базы данных, имеющая встроенный язык dBase и поддерживающая популярный язык SQL.

Начинающие программисты, пишущие софт для конечных пользователей, нередко сталкиваются с проблемой, возникающей тогда, когда необходимо позволить пользователю заполнять поля таблиц базы данных OLE-объектами, т.е. графическими изображениями, документами Word, Excel, PowerPoint и др. Для этих целей служит команда APPEND GENERAL <поле_типа_general> FROM <путь_к_файлу>. Путь к файлу пользователь может ввести самостоятельно, но, согласитесь, это уже не совсем дружественный интерфейс. Лучше всего для этих целей использовать команду GETFILE("<расширение_файла>"), которая откроет диалоговое окно выбора файла и вернет путь к нему. Например:

MyFile = GETFILE("BMP, GIF, JPG, JPEG")

APPEND GENERAL Images FROM MyFile

Вот здесь нас и подстерегает опасность. Команда APPEND GENERAL в данном случае воспринимает запись MyFile не как переменную, содержащую строковое значение (путь к файлу), а как путь к файлу, т.е. как константное выражение. Поэтому СУБД и выдает ошибку, дескать, файл MyFile не найден. В этом случае очень удобно воспользоваться макроподстановкой, чтобы показать FoxPro, что он должен обратиться к содержимому MyFile:

MyFile = GETFILE("BMP, GIF, JPG, JPEG")

APPEND GENERAL Images FROM "&MyFile."

Запись вида "&MyFile." (кавычка - амперсанд - переменная - точка - кавычка) в FoxPro называется макроподстановкой.


Почему Vista Sidebar загружается без гаджетов?

После публикации статьи "Running Vista's Sidebar under XP", в которой я рассказал читателям о том, как запустить боковую панель из Windows Vista в XP (см. "КВ" №14/2006), на мой электронный адрес пришло письмо, которое начиналось следующим образом.

"Прочитал Вашу статью и сразу захотел установить Sidebar себе на ПК. Скачал все файлы, установил, как описано, переименовал, что требуется, и - нулевой результат: гаджеты не отображаются."

Все дело в том, что название папки (профиль пользователя), в которой хранятся настройки для учетной записи и личные документы, состоит из русских букв, например C:\Documents and Settings\Дима. Почему это так, одному Гейтсу известно. Однако именно это обстоятельство мешает "Сайдбару" загрузить гаджеты. Чтобы заставить его нормально работать, нужно переименовать профиль пользователя, например, в "Dima". Сделать это стандартными средствами Windows, т.е. через F2 и "Учетные записи пользователей", не получится, посредством DOS - нарушите целостность системы. Лучше всего поступить следующим образом:

  1. Загрузите ПК с правами администратора.
  2. В каталоге Documents and Settings при помощи контекстного меню или другим стандартным способом создайте папку Dima.
  3. Используя Свойства системы -> Дополнительно -> Профили пользователей (System Properties -> Advanced -> User Profiles), скопируйте старый профиль "Дима" в созданную папку, т.е. Dima.
  4. Затем в разделе системного реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList найдите подраздел с параметром ProfileImagePath, указывающим путь к старому профилю.
  5. Измените значение этого параметра с "C:\Documents and Settings\Дима" на "C:\Documents and Settings\Dima".
  6. Зайдите в систему под именем Dima.
  7. Удалите старый профиль и скопируйте гаджеты из папки Windows Sidebar\Default Parts в каталог C:\Documents and Settings\Dima\Parts.
  8. Запускайте "Сайдбар" и радуйтесь жизни. :)

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


Что такое синхронизация? Зачем нужно синхронизировать сайты и данные на различных устройствах?

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

Допустим, вы ведете активную деловую переписку и используете для этого почтовик Microsoft Outlook 2002, который позволяет создавать адресную книгу. Однако новые контакты вы добавляете, работая вечером с ПК, а утром, например, с КПК или смартфоном под управлением Windows Mobile, который тоже имеет Outlook. Теперь представьте, какими разными будут адресные книги на ПК и КПК через неделю, если их не синхронизировать. То же самое касается и календаря со списком важных дел. Для того, чтобы на каждом устройстве всегда были одни и те же контакты, письма, задачи, и используются программы для синхронизации. Мобильные устройства, работающие на ОС Windows Mobile, Pocket PC, синхронизируются с ПК при помощи утилиты Microsoft ActiveSync. Для Symbian OS можно использовать программу Desktop Manager, BlueSync, Symbian Series 60 (в зависимости от модели телефона).

Что касается синхронизации web-сайтов, то тут все аналогично. Представим, что вы вебмастер, занимающийся поддержкой некого ресурса, который давно функционирует в сети. На вашем винчестере лежит копия сайта и вы, работая с ней, вносите необходимые изменения. Однако со временем закачка обновлений на сервер вручную становится весьма утомительным занятием. Существует масса программ для синхронизации сайта на удаленном сервере с копией сайта на локальном компьютере, которые избавляют вас от лишней головной боли, - Macromedia Dreamweaver, 1ClickFTP.

Если вы не имеете отношения к разработке web-страниц, а просто хотите иметь на ПК самую свежею off-line копию ресурса, то в IE воспользуйтесь меню Сервис -> Синхронизировать. В последних двух случаях синхронизация осуществляется только в одну сторону.

Narthex

Версия для печатиВерсия для печати

Номер: 

17 за 2006 год

Рубрика: 

На заметку
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!