-
MY PROJECTS
-
Recent Posts
- SQL.How can you compare two nullable values safely, and how does IS DISTINCT FROM differ from <>?
- SQL.How are NULL values ordered by ORDER BY, how do defaults differ between databases, and how can you control their placement?
- SQL.How does NULL propagate through arithmetic expressions, and how can COALESCE and NULLIF help handle missing values and division by zero?
- SQL.How does NULL affect join conditions, and why can filtering the right-hand table in WHERE remove unmatched rows from a LEFT JOIN?
- SQL.How do GROUP BY and DISTINCT treat NULL values, even though NULL = NULL evaluates to UNKNOWN?
- SQL.How do aggregate functions handle NULL, and what is the difference between COUNT(*), COUNT(column), and COUNT(DISTINCT column)?
- SQL.How does NULL affect IN and NOT IN, and why can NOT EXISTS be a safer choice when a subquery returns nullable values?
- SQL.How do WHERE, HAVING, and CHECK constraints treat conditions that evaluate to UNKNOWN?
- SQL.Why do column = NULL and column <> NULL not work as expected, and when should you use IS NULL and IS NOT NULL?
- SQL.What is SQL’s three-valued logic (TRUE, FALSE, UNKNOWN), and how do AND, OR, and NOT behave with UNKNOWN?
- ChromeDevTools.Watch all failed requests
- SQL.What are domain types (or constraints on data types), and how do they help enforce data correctness?
- SQL.How does SQL handle comparisons between different data types (for example, string vs number), and why is this dangerous?
- SQL.What is the difference between DATE, TIME, TIMESTAMP, and TIMESTAMPTZ, and which one should be used for business events?
- SQL.How do numeric types like INTEGER, BIGINT, DECIMAL, and FLOAT differ in terms of precision and use cases?
- SQL.What problems can arise from implicit type casting in SQL, and how can it affect indexes?
- SQL.How does NULL differ from 0, an empty string, or FALSE in SQL?
- SQL.What is the difference between CHAR, VARCHAR, and TEXT, and when would you choose each?
- SQL.What is MVCC ?
- SQL.What is AutoVacuum Postgres ?
Categories
- Aptana
- Azure
- C#
- DataSnap
- DBExpress
- Delphi
- Delphi и сети
- Delphi. Язык программирования
- ExtJS
- FastReport
- FireDAC
- FireMonkey
- GIT
- ICS
- IDE
- IIS
- Indy
- InnoSetup
- javascript
- jQuery
- JSON
- LiveBindings
- MSHTML
- MySQL
- PHP
- REST
- Ribbons
- SMS
- SQL инструкции
- SVN
- TRichView
- UniGui
- WebBroker
- WinAPI
- Windows
- Алгоритмы
- Без рубрики
- Деревья
- Ищу ответ
- Компонентостроение
- Мои компоненты
- Начальный уровень
- Обработка исключений
- Парсинг
- Потоки(Threads)
- Регулярные выражения
- Тестирование приложений
Category Archives: Delphi
Delphi. TLangMan. Перевод приложений. International Application
Задумался о переводе приложений. Изучил всякие разные варианты, попробовал написать свой класс, понял, что это крайне трудоемко, учитывая многие моменты. Вот что нашел на просторах сети) Сайт автора http://www.regulace.org/index.php?cPath=26 Стоит эта штука в районе 50 евро
Posted in Delphi
Comments Off on Delphi. TLangMan. Перевод приложений. International Application
Delphi. Читаем ориентацию из Exif для Jpg файлов и ориентируем правильно
Каждый программист встречается с “Battle”. Иногда сидишь сутками, решая проблему и как прекрасен тот момент, когда понимаешь, как это можно решить. Столкнулся с тем, что если загрузить методом idHTTP.Get jpg файл , у которого в exif данных указана ориентация, скажем … Continue reading
Posted in Delphi
Comments Off on Delphi. Читаем ориентацию из Exif для Jpg файлов и ориентируем правильно
Delphi. TRichView. Обходим глюк с выравниванием таблиц при загрузке HTML при помощи TrvHTMLImporter
Всем привет, давненько ничего не писал в блог. Итак, столкнулся с таким глюком. В чем суть? При загрузке html контента методом RvHtmlImporter1.LoadHtml(s) выравнивание таблиц слетает. Если, скажем, она была выравнена по центру, то она выравнивалась по левому краю. Просидел с этим … Continue reading
Posted in Delphi
Comments Off on Delphi. TRichView. Обходим глюк с выравниванием таблиц при загрузке HTML при помощи TrvHTMLImporter
MySQL. Вставка с инкрементом
Если одно из полей должно возрастать при определенных условиях, можно при вставке выполнить такие инструкции
|
1 2 3 |
select max(coffeetest_db.testanswers.sortIndex) from coffeetest_db.testanswers where testQuestions_id=1370 into @r; SELECT (CASE WHEN @r IS NULL THEN @r:=0 ELSE @r:=@r+1 END); # increasing if needed INSERT INTO `coffeetest_db`.`testanswers` (`testQuestions_id`,`sortIndex`) VALUES ('1370',@r); |
Posted in Delphi
Comments Off on MySQL. Вставка с инкрементом
Delphi. Как сделать Ribbon меню на DevExpress?
Делая меню для одной из своих программ, я экспериментировал со встроенными Риббонами из стандартной библиотеки Delphi. Но, скажу честно, отказался от этой идеи. Местами были глюки. Всё настроил, но оно слетает. Пожелание разработчикам стандартных Риббонов Delphi – довести до ума. … Continue reading
Posted in Delphi
Comments Off on Delphi. Как сделать Ribbon меню на DevExpress?
Delphi.MySQL.Мои компоненты.TPSDBTreeView
Вот что у нас получится. Дерево работает над базой MySQL. В примере 2 дерева, работающие над одной таблицей базы. 3-й ряд кнопок сам определяет какое дерево активно. Исходники прилагаю. Типовая таблица для дерева. Это минимальный набор полей. Всё остальное можно … Continue reading
Posted in Delphi, MySQL, Компонентостроение
Comments Off on Delphi.MySQL.Мои компоненты.TPSDBTreeView
Delphi. Архитектура приложения. Видимость объектов
Увидел на DelphiMaster, решил сохранить себе Вот несколько принципов, соблюдая которые навсегда избавишься от проблем “видимости”: 1. Объекты, переменные, методы ОБЩЕГО ПОЛЬЗОВАНИЯ всегда размещать в датамодуле, причем сам код датамодуля не должен “ведать” ни о каких переменных извне – все, … Continue reading
Posted in Delphi
Comments Off on Delphi. Архитектура приложения. Видимость объектов
MySQL. Пример авторизации на языке базы (хранимая функция). И вызов из Delphi
Пример №1 Простая и надежная функция проверки логина, пароля, роли, с результатом tinyint(1)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
CREATE DEFINER=`root`@`localhost` FUNCTION `loginpasswordrolecheck2`(ALogin VARCHAR(45), APassword VARCHAR(45), ARoleName VARCHAR(45)) RETURNS tinyint(1) BEGIN -- DECLARE foundRows INT; -- default 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION return 0; -- if count=1 then OK select count(*) from users where login=ALogin and password=APassword and roles_id=(select id from roles where name=ARoleName) into @RowCount; if @RowCount=1 then return 1; else return 0; end if; END |
C результатом VarChar
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
CREATE DEFINER=`root`@`localhost` FUNCTION `loginpasswordrolecheck`(ALogin VARCHAR(45), APassword VARCHAR(45), ARoleName VARCHAR(45)) RETURNS varchar(45) CHARSET utf8 BEGIN -- DECLARE foundRows INT; -- default 0; -- DECLARE roleName varchar(45); -- default 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION return 0; -- if count=1 then OK select count(*) from users where login=ALogin and password=APassword and roles_id=(select id from roles where name=ARoleName) into @RowCount; if @RowCount=1 then return '1'; else return '0'; end if; END |
Вызов из Delphi
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
CREATE DEFINER=`root`@`localhost` FUNCTION `loginpasswordrolecheck`(ALogin VARCHAR(45), APassword VARCHAR(45), ARoleName VARCHAR(45)) RETURNS varchar(45) CHARSET utf8 BEGIN -- DECLARE foundRows INT; -- default 0; -- DECLARE roleName varchar(45); -- default 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION return 0; -- if count=1 then OK select count(*) from users where login=ALogin and password=APassword and roles_id=(select id from roles where name=ARoleName) into @RowCount; if @RowCount=1 then return '1'; else return '0'; end if; END |
Вызов из Delphi
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
procedure TMain.bHelloClick(Sender: TObject); var result:string; begin with FDStoredProc do begin Connection:=FDConnection; //coffeetest_db.loginPasswordRoleCheck //StoredProcName:='loginpasswordrolecheck'; StoredProcName:='loginpasswordrolecheck2'; Prepare; Params[0].Value := 'admin1'; Params[1].Value := 'admin'; Params[2].Value := 'admin'; Result := ExecFunc; ShowMessage(result); end; end; |
Пример №2 Вот функция в MySQL, которая проверяет пару логин пароль и при обнаружении … Continue reading
Delphi. UniGUI. Делаем фильтры. Быстро и просто
Вот, что у нас получится на выходе Чтобы освоить базовые принципы работы с фильтрами, посмотрите пример, который находится в
|
1 |
C:\Program Files (x86)\FMSoft\Framework\uniGUI\Demos\Desktop\GridFiltering |
Вообще, у UniGUI отличные демки! Можно просто смотреть их и многое делать по аналогии!
Delphi. DBTreeView. Обходим маленький глюк при клике. Корректное отображение выделенной иконки
Делаю свой компонент DBTreeExplorer, чтобы использовать его в дальнейшем в других проектах. Сейчас на стадии доработки дерева. Выглядит всё это так… Глюк заключался в том, что при нажатии или смене узла через клавиши, выделенная иконка начинала отображаться некорректно. Решение следующее. … Continue reading
Posted in Delphi
Comments Off on Delphi. DBTreeView. Обходим маленький глюк при клике. Корректное отображение выделенной иконки