воскресенье, 3 марта 2013 г.

Проверка почты средствами Delphi Часть 2

    В предыдущей части мы создали программу, которая проверяет почту напрямую без поддержки шифрования. В данной части мы рассмотрим возможности проверки почты с использованием SSL.
   Поскольку много времени прошло с момента написания предыдущей статьи и в связи с этим я начал использовать немного новый инструментарий, а именно: при написании кода я уже использую Delphi XE, компоненты все те же - INDY (Версия 10).
   Задание для дальнейшей работы будет следующим:
  • Добавить поддержку SSL для безопасного соединения.
  • Проверить работоспособность программы на gmail.com (там используется SSL) и ukr.net (Без шифрования)
Дальнейшее описание на сайте mirsovetov.net

Автор:

пятница, 9 сентября 2011 г.

Ошибка: The number of items cannot be greater than 64, if the EditValueFormat is cvfInteger

Инструментарий: Delphi XEDevExpress
Ошибка: The number of items cannot be greater than 64, if the EditValueFormat is cvfInteger
Использую компоненты DevExpress в частности TcxCheckListBox. Данные для заполнения CheckListBox беру с базы данных. При заполнении выскакивает ошибка
The number of items cannot be greater than 64, if the EditValueFormat is cvfInteger
   Данная проблема появляется и в TcxGrid при кастомизации колонок. Если количество колонок превышает 64. И в рантайме при отключении/включении некоторых колонок - путем нажатия на кнопку ColumnQuickCustomization, тоже выскакивает сообщение:
The number of items cannot be greater than 64, if the EditValueFormat is cvfInteger. 
 

четверг, 8 сентября 2011 г.

ASP Часть 1: Установка IIS на Windows XP Pro

   Поскольку появилась необходимость учить ASP, для полной идиллии взялся устанавливать IIS, и параллельно решил описать все действия в блоге в виде небольших заметок
   Для установки IIS на Microsoft Windows XP Pro нам нужно выполнить следующие шаги:

  1. По умолчанию IIS есть в стандартном наборе компонент в Windows XP Pro (на счет других версий не знаю), но его нужно включить в "установке компонент". Для того чтобы включить IIS нужно перейти "Пуск" - "Панель управления" - "Установка и удаление программ"-"Установка компонентов Windows". После чего откроется "мастер компонентов Windows".
  2. Дальше в списке должна быть запись "Internet Information Service (IIS)", напротив нее ставим галочку, для того чтобы активировать данный элемент. В случае если Вам необходимо включить дополнительные компоненты, которые могут использоваться с IIS - можете нажать кнопку "Состав..." и отключить или включить нужные наборы компонент.
  3. После отметки нужных компонент нажимаем кнопку "Далее".
  4. Ставим диск с Windows и ждем завершения установки. После завершения нажимаем "Готово"
  5. Можно попробовать перейти в браузере по адресу http://localhost для проверки работоспособности IIS
  6. Web директория по умолчанию располагается в "C:\Inetpub\wwroot", но если вы не хотите переписать (или удалять) IIS документацию, которая находится в данной директории, Вы можете создать виртуальную директорию, в которой будет размещаться Ваш сайт. Это и многое другое будет описано в последующих статьях.


Автор:

вторник, 6 сентября 2011 г.

Как удалить Денвер (Denver)

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

  1. Остановить Денвер запустив соответствующий ярлык на рабочем столе.
  2. Если при установке Денвера был создан виртуальный диск, его можно отключиться следующим образом: "Пуск" - "Выполнить..." (Или комбинация клавиш Win+R) и указать команду для выполнения: subst [Диск]: /D, где [Диск] - имя созданного Денвером виртуального диска (по умолчанию Z:) 
  3. Удаляем папку, в которую устанавливали Денвер (По умолчанию єто C:\WebServers)
  4. Удаляем ярлыки Денвера с автозагрузки "Пуск" - "Все программы" - "Автозагрузка"
  5. И наконец удаляем ярлыки Денвера с рабочего стола

PS: Если перед удалением Денвера не завершили корректно его работу (перезагрузившись или с помощью ярлыка остановки), то, скорее всего, Вам нужно будет вручную откорректировать файл в котором сохранены имена хостов С:\WINDOWS\system32\drivers\etc\hosts (в Windows NT/2000/XP/2003) или C:\WINDOWS\hosts (в WIndows 9x или Me)удалив их, чтобы адреса test1.ru и test2.ru перестали ссылаться на локальную машину, а ссылались в Интернет. 

Автор:

пятница, 19 августа 2011 г.

FastReport пропал Object Inspector (Инспектор F11), как восстановить Object Inspector

Инструментарий: FastReport
Описание: Сегодня закрыл инспектор объектов в FastReport, а восстановить никак не удавалось, ни через меню "Вид - Панель инструментов - Инспектор" ни при нажатии кнопки F11
Решение: В FastReport есть полезная функция - восстановление настроек по умолчанию. Для этого нужно зайти в меню "Вид - Настройки..." и нажать в нижнем левом углу - "Восстановить настройки"
Автор:

вторник, 9 августа 2011 г.

FastReport: Class TfrxBarCodeView not found

Инструментарий: FastReport, Embarcadero Rad Studio XE
Описание: Есть шаблон отчета, в котом уже сформировано некоторое количество колонок (шаблон рабочий). Возникла необходимость добавить в шаблон штрих-код. В дизайнере шаблонаов FastReport добавил BarCode, после чего необходимым образом настроил его. Шаблон сохранился без проблем. Но, после того как запустил программу и нажал кнопку отображения отчета появилось сообщение об ошибке со следующим содержимым:
 Class TfrxBarCodeView not found
Решение: Решений есть несколько, но суть одна.
  1. Добавить в раздел uses формы frxBarcode;
  2. Переместить на форму компонент TfrxBarCodeObject
PS: После того как выполнил первый вариант - ошибка не появлялась.
Автор:

понедельник, 8 августа 2011 г.

MySQL: #42000 Can't find any matching row in the user table

Инструментарий: MySQL, Toad for MySQL
Описание: При изменение привилегий пользователю в MySQL выскакивает сообщение:
 #42000 Can't find any matching row in the user table
Решение: Оказывается начиная с версии MySQL 5.0.2 пользователь без пароль автоматически не создаются. Изменить данную опцию можно несколькими способами:

  1. Изменить в файле my.ini настройки, но не всегда есть возможность настраивать сервер или изменять файлу my.ini 
  2. Добавить к запросу IDENTIFIED BY "пароль"
Автор:

пятница, 5 августа 2011 г.

MySQL: Вызов хранимых функций (Unknown column 'xxx' in 'field list')

Инструментарий: MySQL;  TOAD for MySQL 5.0 и Navicat
В общем хранимые процедуры и функции это большой раздел в котором очень много нюансов как при работе, так и при написании. Я написал некую функцию которая возвращала текущего пользователя, но это не столь важно, суть в том что функцию нужно вызвать. Синтаксис вызова функции следующий:
 SELECT <Название функции>
Конечно же написал в соответствии с синтаксисом свой запрос на вызов функции:
SELECT    GetUserID;  
 В результате выполнения получил сообщение об ошибке:
Результат выполнения Navicat:
  • [SQL] select GetUserID;

[Err] 1054 - Unknown column 'GetUserID' in 'field list'

  • Результат выполнения  TOAD for MySQL
MySQL Database Error: Unknown column 'GetUserID' in 'field list' 1 0

Инструментарий разный, но суть та же, не найдена колонка.
Решение:Оказывается для решения проблемы нужно добавить скобки. В результате наш запрос примет следующий вид:
SELECT    GetUserID();  

 P.S. Казалось что такого, но без скобок название видимо рассматривается как некое поле. В моем случае были опущены скобки, поскольку функция не принимала входных параметров.

Автор:

MySQL: При выполнении ALTER TABLE ошибка [Err] 1005 Can't create table...(errno: 121)

Инструментарий: MySQL, Navicat
Описание: Есть две таблицы tbl_category и tbl_user, которые нужно связать по полях  tbl_category.user_id и  tbl_user.id. Для этого выполняем запрос:
ALTER TABLE tbl_category ADD CONSTRAINT fk_category_user FOREIGN KEY (user_id) REFERENCES tbl_user (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
Результат: При выполнении запроса в Navicat получаем сообщение об ошибке:
[Err] 1005 - Can't create table 'ibox.#sql-17d8_1' (errno: 121)

Решение: Сравнил поля двух таблиц, в обоих таблицах поля int(11), но все дело в значении поля -  unsigned. В таблице  tbl_user.id (unsigned), а  tbl_category.user_id  unsigned не установлено. После установки полю tbl_category.user_id - unsigned все заработало.

Автор:

среда, 20 июля 2011 г.

Delphi 2006: Debugger Kernel BORDBK100.DLL or BORDBK100N.DLL is missing or could not be loaded

  Была установлена Delphi 2006 - все работало прекрасно, установил Delphi 2010. Проект в Delphi 2006 открывается нормально, но когда запускаю отладку - выскакивает ошибка:
Debugger Kernel BORDBK100.DLL or BORDBK100N.DLL is missing or could not be loaded.

  Решение: запустить указанные файлы как службу BORDBK100.DLL, BORDBK100N.DLL с помощью команд:
regsvr32 BORDBK100.DLL
regsvr32 BORDBK100N.DLL


Автор: