пятница, 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


Автор:

вторник, 19 июля 2011 г.

Как в Delphi XE вручную импортировать файл с лицензией (*.slip)

   Возникла ситуация в которой нужно разместить вручную файл лицензии (*.slip) для Delphi XE. Файлы лицензии для Delphi XE обычно хранятся в папке %AllUsersProfile%\Application Data\Embarcadero или в [Диск]:\Program Files\Embarcadero\RAD Studio\8.0\License\ (каталог установленного продукта).
  Для ручной установки лицензии нужно скопировать файл лицензии (RADStudioXE_license.slip) в одну из папок.

Автор:

вторник, 12 июля 2011 г.

Oracle ошибка: ORA-28000: the account is locked

Ошибка: ORA-28000: the account is locked
Описание: Скорее всего пользователь ввел неверный пароль максимальное количество раз, которое указано в профиле пользователя. Параметр FAILED_LOGIN_ATTEMPTS или пользователь был заблокирован DBA.
Решение: Ждем PASSWORD_LOCK_TIME или начинаем действовать, если конечно у вас есть права DBA. 

Источник: mirsovetov.net
  1. Запускаем командную строку и пишем: sqlplus \sys as sysdba;
  2. Вводим пароль (по умолчанию для логина sys пароль sys)
  3. alter user [USER NAME] account unlock; где  [USER NAME] - Имя заблокированного пользователя
  4. Пробуем подключится.

понедельник, 6 июня 2011 г.

Как добавить кнопку +1 от Google на свой блог (blogspot.com)

Для того чтобы добавить кнопку +1 от Google нужно:
  1. Перейти на страницу получения кода кнопки.
  2. Настроить параметры кнопки
  3. Скопировать текст, который сформировался в результате настроек, у меня он следующий:

<’script src="http://apis.google.com/js/plusone.j’s" type="text/javascript">
{lang: 'ru'}

Делаем все согласно инструкции. Открывает Дизайн блога для изменения шаблона:
  1. Панель инструментов ->  Дизайн -> Изменить HTML, и устанавливаем галочку " Расширить шаблоны виджета" - для отображения всего шаблона.
  2. Ищем тег и перед ним вставим код скрипта:  <’script src="http://apis.google.com/js/plusone.j_s" type="text/javascript_">
    {lang: 'ru'}
    <_/_s_c_r_i_p_t>
  3. Если вы хотите чтобы кнопка была в верхней части статьи тогда ищем
    < strong="">class='post-header-line'/> и вставляем после этого тега - тег кнопки
  4. Сохраняем шаблон и любуемся кнопкой +1 на своем блоге 
PS: В некоторых участках кода изменил теги, добавив знаки ’ и _. Для отображения на блоге кода =)

вторник, 31 мая 2011 г.

Установка компонента QuickReport на Delphi 7

   QuickReport идет в поставке Delphi 7, но по умолчанию его нет в палитре компонентов. Для добавления  QuickReport  в палитру компонент нужно выполнить следующую последовательность действий:
  1. В главном меню Delphi 7 выбрать пункт меню Component -> Install Packages...
  2. Откроется окно управления загружаемыми пакетами. В нем нужно нажать кнопку Add... Для добавления нового пакета.
  3. Откроется окно выбора файлов. В данном окне нужно перейти в папку куда была установлена Delphi (за частую это С:\Program Files\Borland\Delphi7\) и открыть папку Bin. 
  4. В окне выбора файлов установим "Тип файлов" в Package library.bpl 
  5. Выберем пакет с именем dclqrt70.bpl и нажмем кнопку Открыть для подтверждения выбора, после чего в списке установленных пакетов добавится QuickReport Components
  6. Нажимаем ОК для закрытия окно.
  7. Тестирование: Создаем новый проект и тестируем работоспособность.

четверг, 26 мая 2011 г.

MySQL ERROR 1452: Cannot add or update a child row: a foreign key constraint fails

Инструментарий: MySQL Server, Navicat
Описание: Нужно было связать две таблицы (Если ограничение установлено, то такая же ошибка возникает при редактировании/вводе новых данных). При создании Foreign Keys и установке свойств On Delete, On Update = CASCADE, получил в ответ следующее сообщение:
ERROR 1452: Cannot add or update a child row: a foreign key constraint fails (`xxx`, CONSTRAINT `fk_xxx` FOREIGN KEY (`xxx`) REFERENCES `xxx` (`xxx`))

Решение: После анализа оказалось что у меня данные с дочерней таблицы ссылаются на несуществующие данные с главной таблицы. После редактирования данных все заработало. Пример:
Table1 (родительсткая)
id Name
1 тест 1
2 тест 2

Table2 (дочерняя)
id idParent Name
1  5              тест 5.1
2 1               тест 1.1
В Table2 первая запись ссылается на записи которых нет в Table1.

вторник, 17 мая 2011 г.

Эффективная реклама на сегодняшний день - банерные сети

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

Delphi: установка MyDAC v5 (Data Access Components for MySQL)

   Инструкция установки компонента MyDAC v5 на Delphi и C++Builder для Win32, Delphi для .NET, Kylix находится в архиве с компонентами. Для себя и для тех, у которых возникли вопросы при установке описываю весь процесс с самого начала. Ниже приведен пример установки с использованием IDE. Я использую Delphi 2010 и MyDAC v5.90.0.57.
   Запустить IDE и выполнить следующие шаги:
  1. Для начала определимся какую сборку будем использовать для работы, поскольку я работаю с Delphi 2010 я буду работать с папкой  Source\Delphi14  (Для Delphi 7 будет соответствующая папка - Source\Delphi7) В дальнейшем обозначим версию под ХХ ( Source\DelphiXX)
  2. Соберем все проекты воедино. Для этого откроем первый нужный нам пакет,  dacXX.dpk
  3. Добавим следующие пакеты, которые находятся в папке Source\DelphiXX, для этого нужно выбрать Project -> Add Exesting Project... в результате чего будет отображено окно выбора нового проекта. После добавления список должен состоять из следующих пакетов (dacХХ.dpk, dacvclXX.dpk, dcldacXX.dpk, dclmydacXX.dpk, dclmysqlmonXX.dpk, mydacXX.dpk, mydacvclXX.dpk, mysqlmonXX.dpk)
  4. Дальше компилируем проект (Project->Compile All Projects). У меня прервалась компиляция из за того, что файл Dac.inc не был найден. Файл Dac.inc находится в папке  Source. Я его и все файлы с расширением *.inc скопировал в папку Source\Design, после чего снова выполнил компиляцию - все удачно скомпилировалось. Правда при компиляции mysqlmonXX, которое информирует о том что нужно скачать SQLBuilder for MySQL Add-in Нажимаем кнопку скачать и после скачивания устанавливаем.
  5.  Для всех пакетов кроме  dacХХ.dpk и mydacXX.dpk выполнил инсталяцию. (Выбираем в менеджере проекта соответствующий проект и кликаем правой кнопкой мыши, после чего в меню выбираем Install)
  6. После всех операций закрываем все и сохраняем (Project Group 1 можно не сохранять) (для закрытия всех проектов нужно выбрать File->Close All)
  7. Дальше добавим пути для дальнейшей корректной работы. Орываем пункт меню "Tools -> Options -> Evironment Options -> Delphi Options -> Library -> Win 32" (Для Delphi 7 другие пункты меню Tools -> Evironment Options -> Library) и напротив пункта Library Path: нажимаем кнопкуиз тремя точками, появится окно в котором нужно выбрать путь к следующей папке \Source\. После выбора нужно нажать кнопку ADD для добавления пути. 
  8. Все, установка и настройка закончена. Для проверки создаем тестовую программу.  
PS. Ясно что форс мажорные обстоятельства были и будет, но у меня прошло все почти без лишних проблем.

Ниже привожу оригинальный текст установки, описанный в документации, которая находится с компонентами  MyDAC v5.90.0.57:

Data Access Components for MySQL Source Code Copyright 1997-2010, Devart. All Rights Reserved

There are two ways to compile and install MyDAC for Windows manually.

I. Using IDE
  Delphi and C++Builder for Win32
  --------------------------------
  Run your IDE and walk through the folowing steps:
    1) Compile DAC run-time package (dacXX.dpk)
    2) For Delphi 6 and higher compile DAC GUI related package (dacvclXX.dpk)
    3) Compile DAC design-time package (dcldacXX.dpk)
    4) Compile MyDAC run-time package (mydacXX.dpk)
    5) For Delphi 6 and higher compile MyDAC GUI related package (mydacvclXX.dpk)
    If you are going to create CLX applications compile MydacClx.pas unit separately.
    6) Compile and install MyDAC design-time package (dclmydacXX.dpk)

  You can find these packages in
     Source\Delphi5\*.dpk - for Delphi 5
     Source\CBuilder5\*.bpk - for C++ Builder 5
     Source\Delphi6\*.dpk - for Delphi 6
     Source\CBuilder6\*.bpk - for C++ Builder 6
     Source\Delphi7\*.dpk - for Delphi 7
     Source\Delphi9\*.dpk - for Delphi 2005
     Source\Delphi10\*.dpk - for BDS 2006
     Source\Delphi11\*.dpk - for RAD Studio 2007
     Source\Delphi12\*.dpk - for RAD Studio 2009
     Source\Delphi14\*.dpk - for RAD Studio 2010

  To compile MyDAC based applications, add MyDAC Source directory path to the "Library Path".

  Delphi for .NET
  ------------------------
  Run your IDE and walk through the folowing steps:     1) Compile DAC run-time package (Devart.Dac.dpk)
     2) Compile DAC design-time package (Devart.Dac.Design.dpk)
     3) Compile MyDAC run-time package (Devart.MyDac.dpk)
     4) Compile MyDAC run-time package (Devart.MyDac.AdoNet.dpk)
     5) Compile and install MyDAC design-time package (Devart.MyDac.Design.dpk)
     6) Specify the path to compiled assembles in "Assembly Search Paths"
     7) To register the MyDataAdapter component in Delphi for .Net Tool Palette, follow these steps:
        - Open Delphi for .Net and go to the "Tool Palette" window;
        - Add "MyDAC" category using popup menu;
        - Select "Installed .NET Components..." from popup menu;
        - Go to the "Installed .NET Components" tab within opened dialog;
        - Check the MyDataAdapter component;
        - Press the OK button.

  You can find these packages in
     Source\Delphi9\*.dpk - for Delphi 2005
     Source\Delphi10\*.dpk - for BDS 2006
     Source\Delphi11\*.dpk - for RAD Studio 2007

   To compile MyDAC based applications, add Devart.Dac and Devart.Mydac to Namespace prefixes, add MyDAC Source directory path to the "Library Path" list.

   Kylix
   ----------------------------
   Run your Kylix IDE and walk the through folowing steps:
      1) Compile DAC run-time package (dacX.dpk)
      2) Compile DAC GUI related package (dacclxX.dpk)
      3) Compile DAC design-time package (dcldacX.dpk)
      4) Compile MyDAC run-time package (mydacX.dpk)
      5) Compile MyDAC GUI related package (mydacclxX.dpk)
      6) Compile and install MyDAC design-time package (dclmydacX.dpk)

  You can find these packages in
     Source\Kylix2\*.dpk     Source\Kylix3\Delphi\*.dpk

II. Using make-files
  Delphi and C++Builder for Win32
  --------------------------------   
    1) Go to one of the following folders (let's denote this folder %MakePath%):
       Source\Delphi5\*.dpk - for Delphi 5
       Source\CBuilder5\*.bpk - for C++ Builder 5
       Source\Delphi6\*.dpk - for Delphi 6
       Source\CBuilder6\*.bpk - for C++ Builder 6
       Source\Delphi7\*.dpk - for Delphi 7
       Source\Delphi9\*.dpk - for Delphi 2005
       Source\Delphi10\*.dpk - for BDS 2006
       Source\Delphi11\*.dpk - for RAD Studio 2007
       Source\Delphi12\*.dpk - for RAD Studio 2009
       Source\Delphi14\*.dpk - for RAD Studio 2010

    2) Find in the 'make.bat' line containing set IdeDir="D:\Program Files\Borland\Delphi7  and make sure that correct path to IDE is set (always include forward quote and do not include ending quote)   
    3) Run 'Make.bat'. Binaries will be copied to the %MakePath%\Mydac subfolder   
    4) Copy %MakePath%\Mydac\*.bpl files to a folder that is included in the PATH environment variable
    5) Run IDE and add dclmydacXX.bpl via Component->Install Packages... menu
    6) To compile MyDAC based applications, add MyDAC Source directory path to the "Library Path" list

  Delphi for .NET
  -----------------
  1) Go to the following folders (let's denote this folder %MakePath%):
      Source\Delphi9\*.dpk - for Delphi 2005
      Source\Delphi10\*.dpk - for BDS 2006
      Source\Delphi11\*.dpk - for RAD Studio 2007

   2) Find in the 'Make.bat' line containing set IdeDir="D:\Program Files\Borland\BDS\4.0  and make sure that correct path to IDE is set (always include forward quote and do not include ending quote)
   3) Run 'Make.bat'. Binaries will be copied to the %MakePath%\Mydac subfolder
   4) Run IDE and add Devart.Mydac.Design.dll via Component->Installed .NET Components->.NET VCL Components->Add... menu. Specify the path to compiled assembles in Component->Assembly Search Paths->Add... menu
   5) To register the MyDataAdapter component in Delphi for .Net Tool Palette, follow these steps:
        - Open Delphi for .Net and go to the "Tool Palette" window;
        - Add "MyDAC" category using popup menu;
       - Select "Installed .NET Components..." from popup menu;
       - Go to the "Installed .NET Components" tab within opened dialog;
       - Press "Select an Assembly" and choose Devart.Mydac.AdoNet.dll;
       - Check the MyDataAdapter component;
       - Press the OK button.
  6) To compile MyDAC based applications, add Devart.Dac and Devart.Mydac to Tools->Options->Environment Options->Delphi Options->Library->  Namespace prefixes