Возникла ситуация в которой нужно разместить вручную файл лицензии (*.slip) для Delphi XE. Файлы лицензии для Delphi XE обычно хранятся в папке %AllUsersProfile%\Application Data\Embarcadero или в [Диск]:\Program Files\Embarcadero\RAD Studio\8.0\License\ (каталог установленного продукта).
Для ручной установки лицензии нужно скопировать файл лицензии (RADStudioXE_license.slip) в одну из папок.
Автор: Андрощук Александр
вторник, 19 июля 2011 г.
вторник, 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
Описание: Скорее всего пользователь ввел неверный пароль максимальное количество раз, которое указано в профиле пользователя. Параметр FAILED_LOGIN_ATTEMPTS или пользователь был заблокирован DBA.
Решение: Ждем PASSWORD_LOCK_TIME или начинаем действовать, если конечно у вас есть права DBA.
Источник: mirsovetov.net
- Запускаем командную строку и пишем: sqlplus \sys as sysdba;
- Вводим пароль (по умолчанию для логина sys пароль sys)
- alter user [USER NAME] account unlock; где [USER NAME] - Имя заблокированного пользователя
- Пробуем подключится.
Автор: Андрощук Олександр
понедельник, 6 июня 2011 г.
Как добавить кнопку +1 от Google на свой блог (blogspot.com)
Для того чтобы добавить кнопку +1 от Google нужно:
- Перейти на страницу получения кода кнопки.
- Настроить параметры кнопки
- Скопировать текст, который сформировался в результате настроек, у меня он следующий:
<’script src="http://apis.google.com/js/plusone.j’s" type="text/javascript">Делаем все согласно инструкции. Открывает Дизайн блога для изменения шаблона:
{lang: 'ru'}
- Панель инструментов -> Дизайн -> Изменить HTML, и устанавливаем галочку " Расширить шаблоны виджета" - для отображения всего шаблона.
- Ищем тег и перед ним вставим код скрипта: <’script src="http://apis.google.com/js/plusone.j_s" type="text/javascript_">
{lang: 'ru'}
<_/_s_c_r_i_p_t> - Если вы хотите чтобы кнопка была в верхней части статьи тогда ищем < strong="">class='post-header-line'/> и вставляем после этого тега - тег кнопки
- Сохраняем шаблон и любуемся кнопкой +1 на своем блоге
вторник, 31 мая 2011 г.
Установка компонента QuickReport на Delphi 7
QuickReport идет в поставке Delphi 7, но по умолчанию его нет в палитре компонентов. Для добавления QuickReport в палитру компонент нужно выполнить следующую последовательность действий:
- В главном меню Delphi 7 выбрать пункт меню Component -> Install Packages...
- Откроется окно управления загружаемыми пакетами. В нем нужно нажать кнопку Add... Для добавления нового пакета.
- Откроется окно выбора файлов. В данном окне нужно перейти в папку куда была установлена Delphi (за частую это С:\Program Files\Borland\Delphi7\) и открыть папку Bin.
- В окне выбора файлов установим "Тип файлов" в Package library.bpl
- Выберем пакет с именем dclqrt70.bpl и нажмем кнопку Открыть для подтверждения выбора, после чего в списке установленных пакетов добавится QuickReport Components
- Нажимаем ОК для закрытия окно.
- Тестирование: Создаем новый проект и тестируем работоспособность.
четверг, 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, получил в ответ следующее сообщение:
Решение: После анализа оказалось что у меня данные с дочерней таблицы ссылаются на несуществующие данные с главной таблицы. После редактирования данных все заработало. Пример:
Описание: Нужно было связать две таблицы (Если ограничение установлено, то такая же ошибка возникает при редактировании/вводе новых данных). При создании 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 (родительсткая)В Table2 первая запись ссылается на записи которых нет в Table1.
id Name
1 тест 1
2 тест 2
Table2 (дочерняя)
id idParent Name
1 5 тест 5.1
2 1 тест 1.1
вторник, 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 и выполнить следующие шаги:
Ниже привожу оригинальный текст установки, описанный в документации, которая находится с компонентами 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
Запустить IDE и выполнить следующие шаги:
- Для начала определимся какую сборку будем использовать для работы, поскольку я работаю с Delphi 2010 я буду работать с папкой Source\Delphi14 (Для Delphi 7 будет соответствующая папка - Source\Delphi7) В дальнейшем обозначим версию под ХХ ( Source\DelphiXX)
- Соберем все проекты воедино. Для этого откроем первый нужный нам пакет, dacXX.dpk
- Добавим следующие пакеты, которые находятся в папке Source\DelphiXX, для этого нужно выбрать Project -> Add Exesting Project... в результате чего будет отображено окно выбора нового проекта. После добавления список должен состоять из следующих пакетов (dacХХ.dpk, dacvclXX.dpk, dcldacXX.dpk, dclmydacXX.dpk, dclmysqlmonXX.dpk, mydacXX.dpk, mydacvclXX.dpk, mysqlmonXX.dpk)
- Дальше компилируем проект (Project->Compile All Projects). У меня прервалась компиляция из за того, что файл Dac.inc не был найден. Файл Dac.inc находится в папке Source. Я его и все файлы с расширением *.inc скопировал в папку Source\Design, после чего снова выполнил компиляцию - все удачно скомпилировалось. Правда при компиляции mysqlmonXX, которое информирует о том что нужно скачать SQLBuilder for MySQL Add-in Нажимаем кнопку скачать и после скачивания устанавливаем.
- Для всех пакетов кроме dacХХ.dpk и mydacXX.dpk выполнил инсталяцию. (Выбираем в менеджере проекта соответствующий проект и кликаем правой кнопкой мыши, после чего в меню выбираем Install)
- После всех операций закрываем все и сохраняем (Project Group 1 можно не сохранять) (для закрытия всех проектов нужно выбрать File->Close All)
- Дальше добавим пути для дальнейшей корректной работы. Орываем пункт меню "Tools -> Options -> Evironment Options -> Delphi Options -> Library -> Win 32" (Для Delphi 7 другие пункты меню Tools -> Evironment Options -> Library) и напротив пункта Library Path: нажимаем кнопкуиз тремя точками, появится окно в котором нужно выбрать путь к следующей папке \Source\. После выбора нужно нажать кнопку ADD для добавления пути.
- Все, установка и настройка закончена. Для проверки создаем тестовую программу.
Ниже привожу оригинальный текст установки, описанный в документации, которая находится с компонентами 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
пятница, 29 апреля 2011 г.
Delphi: Секретная комбинация клавиш или "Пасхальное яйцо" - Часть 2
В предыдущей статье секретная комбинация клавиш или "Пасхольное яйцо" я описывал как можно управлять компонентами с помощью секретной комбинации клавиш, и для примера использовал запуск отладочного режима при котором отображается дополнительный функционал. Продолжая цикл заметок в этом направлении я попытаюсь описать как можно задать некие отладочные (настроечные) параметры при старте программы. Параметры будут задаваться следующего вида Project.exe -deb. Для запуска программы отдельно можно создать ярлык с уже заданными параметрами запуска. И так, приступим.
Откроем к примеру предыдущий проект, или создадим новый. В разделе var добавим переменную DEBUGON, которой по умолчанию присвоем значение false
Следующим шагом будет написание процедуры, которая делает перебор всех входных параметров и устанавливает соответствующие значения (процедуру пишем у разделе implementation):
Дальше нам нужно вызвать данную процедуру при запуске проекта и перед созданием форм. Для этого нужно в главном меню выбрать Project - View Source. В результате откроется исходный код проекта. Вставим вызов нашей процедуры после инициализации и перед созданием форм. У меня код выглядит следующим образом:
Если у нас переменная установлена, тогда задействуем некие параметры, в данном случае делаем видимой или нет Panel1 в зависимости от параметра DEBUGON.
Практически все, теперь можно протестировать наше приложение на работоспособность запустив его с параметром -deb и без него. Для запуска программы с параметром можно воспользоваться средствами Delphi, для этого нужно зайти в Run-Parameters и написать в поле Parameters наше отладочное -deb. Пожалуй все, теперь можно опять протестировать и увидеть результат.
Откроем к примеру предыдущий проект, или создадим новый. В разделе var добавим переменную DEBUGON, которой по умолчанию присвоем значение false
var
Form1: TForm1;
DEBUGON:Boolean = false;
Следующим шагом будет написание процедуры, которая делает перебор всех входных параметров и устанавливает соответствующие значения (процедуру пишем у разделе implementation):
procedure StartInit; // добавляем для глобальной видимостиПроверяем в цыклом от 0 до количества параметров все входные параметры. Кстати первый параметр с индексом 0 будет путь к программе, и ее названием. Если у нас параметр совпадает с константой SDebugOn, то есть имеет значение -deb - тогда переменная DEBUGON = true.
var
Form1: TForm1;
DEBUGON:Boolean = false;
implementation
{$R *.dfm}
procedure StartInit;
const
SDebugOn = '-deb';
var
I: Integer;
begin
for I := 0 to ParamCount do
if ParamStr(I) = SDebugOn then
DEBUGON:=true;
end;
Дальше нам нужно вызвать данную процедуру при запуске проекта и перед созданием форм. Для этого нужно в главном меню выбрать Project - View Source. В результате откроется исходный код проекта. Вставим вызов нашей процедуры после инициализации и перед созданием форм. У меня код выглядит следующим образом:
program Project1;Двигаемся дальше. Переходим на форму и создаем обработчик события на onCreate (два раза кликаем на пустое поле напротив названия onCreate в Object Inspector - Events) и пишем следующий код:
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
StartInit;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Panel1.Visible:= DEBUGON;
Если у нас переменная установлена, тогда задействуем некие параметры, в данном случае делаем видимой или нет Panel1 в зависимости от параметра DEBUGON.
Практически все, теперь можно протестировать наше приложение на работоспособность запустив его с параметром -deb и без него. Для запуска программы с параметром можно воспользоваться средствами Delphi, для этого нужно зайти в Run-Parameters и написать в поле Parameters наше отладочное -deb. Пожалуй все, теперь можно опять протестировать и увидеть результат.
Delphi: Секретная комбинация клавиш или "Пасхольное яйцо" - Часть 1
Бывают ситуации что нужно сделать в программе некий скрытый режим, при котором были доступны какие либо действия. Либо это так называемые "пасхальный яйца" либо какой то специальный режим, к примеру режим отладки, при котором будет доступна какая то панель, в которую мы можем выводить статус работы программы с внутренними параметрами.
Приведу один из способов. Пример буду приводить на неком новом проекте, чтобы не было ничего лишнего. И так приступим.
Создадим новый проект в Delphi (При написании статьи я использовал Delphi 2010). File - New - VCL Forms Application . (Рис.1)
Приведу один из способов. Пример буду приводить на неком новом проекте, чтобы не было ничего лишнего. И так приступим.
Создадим новый проект в Delphi (При написании статьи я использовал Delphi 2010). File - New - VCL Forms Application . (Рис.1)
Рис.1.
Создастся новый проект. Кликаем левой кнопкой мыши на форму и переходим в Object Inspector на закладку Properies, для того чтобы изменить свойство KeyPreview на True. Это свойство определяет будет ли форма обрабатывать события клавиатуры, прежде чем эти события обработаются элементом управления на котором был установлен фокус. В итоге нам нужно будет описать обработчик нажатия клавиш только для формы. Что мы собственно сейчас и сделаем. В переходим в Object Inspector на закладку Events, и в создадим обработчик события на onKeyDown для этого нужно два раза кликнуть левой кнопкой мыши напротив надписи onKeyDown. После создания события - мы переходи в Code Editor для написания кода. Я заранее определился какая комбинация клавиш будет служить для запуска режима отладки - это Ctrl+Shift+D.Пишем следующий код:if (ssCtrl in Shift) AND (ssShift in Shift) AND (Key = Ord('D')) thenКод думаю понятен, если у нас нажата кнопка Ctrl и Shift и D - тогда выполняется какой то заранее подготовленный код. К примеру разместим на форме панель (Panel1 и установим параметр Visible=false в Object Inspector - Properties), а на панели еще какие то компоненты. и к секции begin ... end вышеописанного кода напишем код для скрытия/отображения панели. Весь код представлен ниже:
begin
// код обработки
end
if (ssCtrl in Shift) AND (ssShift in Shift) AND (Key = Ord('D')) thenВсе готово.Запись Panel1.Visible:= not Panel1.Visible; означает что при выполнении кода параметр Visible будет принимать противоположное значение. Теперь можно запускать проект для тестирования. После запуска у нас не будет видна панель, поскольку мы установили свойство Visible = false (Рис.2), но при нажатии комбинаций клавиш Ctrl+Shift+D - панель отобразится (Рис.3)
begin
Panel1.Visible:= not Panel1.Visible;
end;
Рис.2
Рис.3
Вот собственно и все. В следующем описании рассмотрим как можно задать некие отладочные (настроечные) параметры при старте программы. Вида Project.exe -debвторник, 5 апреля 2011 г.
UPDATE command denied to user 'xxxx'@'IP' for table
При осуществлении каких либо операций с таблицей (редактирование, добавление, удаление данных) возникает окно с сообщением:
Текст сообщения следующий: Ошибка возвращения idSQL Error: UPDATE command denied to user 'user'@'192.168.0.1' for table 'tablename'.
С данного сообщения можно узнать причину невыполнения нашей команды, а именно: UPDATE command denie. В данном случае я пытался обновить данные в таблице, к которой у меня закрыт доступ.
РЕШЕНИЕ: Открыть доступ пользователю (назначить соответствующие права на выбор, удаление, редактирование... данных), под которым вы хотите делать какие либо изменения.
После того как я открыл пользователю возможность редактирования записей в БД - все заработало.
Рис.1
Текст сообщения следующий: Ошибка возвращения idSQL Error: UPDATE command denied to user 'user'@'192.168.0.1' for table 'tablename'.
С данного сообщения можно узнать причину невыполнения нашей команды, а именно: UPDATE command denie. В данном случае я пытался обновить данные в таблице, к которой у меня закрыт доступ.
РЕШЕНИЕ: Открыть доступ пользователю (назначить соответствующие права на выбор, удаление, редактирование... данных), под которым вы хотите делать какие либо изменения.
После того как я открыл пользователю возможность редактирования записей в БД - все заработало.
Подписаться на:
Сообщения (Atom)