«Ask SQL» & Databases Control

Статьи, заметки, сниппеты о разных языках программирования PHP, JAVA, Delphi, SQL, JS & etc.

  • Портативный клиент для доступа к базам данных на MS SQL

    AskSQL Editor for MS SQL

  • Портативный редактор для работы с базами данных на MySQL

    AskSQL Editor for MySQL

05.08.2017 18:11

Советы о том чтобы скрипты и стили на веб-странице загружались без блокировки

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

Для подгружаемых скриптов подойдет код на javascript:

var js = document.createElement('script');
js.src = 'myscript.js';
var head = document.getElementsByTagName('head')[0];
head.appendChild(js);

Для подгружаемых стилей подойдет код на javascript:

var h = document.getElementsByTagName('head')[0];
var link = document.createElement('link');
link.href = 'mycss.css';
link.type = 'text/css';
link.rel = 'stylesheet';
h.appendChild(link);

В некоторых случаях программисты помещают ссылку на подгружаемый код в конце страницы, тем самым обеспечивая его загрузку только после загрузки основного контента и основных стилей. Кроме того, зачастую на помощь приходят атрибуты ссылок async и defer, которые обеспечивают асинхронную и отложенную загрузку соответственно.

Подробнее


03.06.2017 11:16

Регистрация входящих сообщений MS Outlook в MS Access, логирование записей и сохранение вложений

Для организации записи логов в журнал на базе MS Access из поступающих писем в MS Outlook можно обратиться к внутреннему функционалу MS Office по созданию макросов на VBA. В данной статье предлагается метод регистрации писем без сохранения вложений в базе, но позволяет сохранять вложения в отдельной папке, на которую мы будем давать ссылку через форму в Access. Так как у каждого письма есть свой уникальный идентификатор в почте, мы будем создавать папки с учетом этого идентификатора и давать ссылку из Access на путь, где сохраняются наши файлы. Для чего Вам это решение может потребоваться решайте сами, возможно Вы захотите поиск сделать по базе писем, может структурируете входящую почту в базе и будете там хранить свою переписку или автоматизируете в дальнейшем свои отчеты... как говорится, это уже дело фантазии.

Первым делом, чтобы разобраться как настроить регистрирование входящей почты, нам предстоит определиться в какую базу мы будем сохранять историю и в какую папку будем сохранять вложения. Для этого мы должны создать базу out.accdb на диске например E (название базы или имя диска Вы можете поправить на свои) и в прописать в Outlook следующий программный код

 

Подробнее


30.04.2017 11:04

Отображение экрана смартфона Android на телевизоре (Дублирование экрана) своими руками

Не всегда легко отобразить экран мобильного устройства на смарт-телевизоре для просмотра фото, видео или сайтов можно с помощью специальной кнопки, если эта кнопка доступна. 
“Дублирование экрана” – это функция отображения экрана устройства, поддерживающего функцию Дублирование экрана (например, смартфона или компьютера), на телевизоре с помощью технологии Miracast. При использовании этой функции не требуется беспроводной маршрутизатор (или точка доступа).

На некоторых смартфонах эта кнопка недоступна по умолчанию для стриминга с планшета или смартфона на смарт-тв, но мы можем создать приложение, которое будет вызывать для нас эту настройку. Однако не везде это приложение может работать, так например на Sony Xperia приложение работает отлично, а на смартфоне  Samsung с ОС Android 6 совсем не хочет работать. А на телефонах Asus эта кнопка есть в меню, поэтому это приложение и писать не нужно будет. Итак, давайте напишем приложение для наших исключительных случаев для телевизоров Samsung.

 

Подробнее


16.03.2017 17:14

Выгрузка истории из Outlook в Excel на VBA с именами получателей и отправителей, категориями, именами вложений

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

Для этих целей специально был разработан макрос, который позволяет выгружать в MS Excel историю переписки.

 

Подробнее


23.02.2017 19:06

Расчет суммы значений по дереву элементов с учетом применяемости вышестоящих узлов в Excel применяя формулы или VBA

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

Начинаем формировать таблицу.

Первый столбец «» – задается путь по структуре в виде иерархии, например, 1 – 1.1 – 1.2 – 1.2.1 – 1.2.2 – 1.3.

Второй столбец «Идентификатор» принимает значение обозначения элемента. Зададим тогда и столбец Наименование».

Далее представим столбец «Тип объекта», где будем указывать «Сборочная единица», «Деталь», «Прочее» и т.д.

Столбец «Есть ли структура» будет позволять нам иметь представление о наличии структуры у элемента.

Столбец «Количество» содержит количество элементов на заданном уровне.

Последним в исходной таблице будет столбец «Цена».

Для реализации задачи по подсчету суммы с учетом количества вышестоящих уровней в MS Excel попробуем применить формулы. Для начала попробуем найти по первом столбцу (колонка A) номер пути родительского элемента, например, в 5-ой строке:

=ЕСЛИОШИБКА(ЛЕВСИМВ(A5;ЕСЛИОШИБКА(НАЙТИ(".";A5;ДЛСТР(A5)-1);ЕСЛИОШИБКА(НАЙТИ(".";A5;ДЛСТР(A5)-2);ЕСЛИОШИБКА(НАЙТИ(".";A5;ДЛСТР(A5)-3);"")))-1);"")

Узнаем уровень, на котором находится наш элемент:

=ЕСЛИ(A5="0";"";ДЛСТР(A5)-ДЛСТР(ПОДСТАВИТЬ(A5;".";""))+1)

Можем даже посмотреть наверх, чтобы уточнить значения в столбце «Количество» у родительских элементов

=ЕСЛИОШИБКА(ВПР(AB5;$A:$K;СТОЛБЕЦ($K$1);0);1)

Где AB5 – это ячейка с родительским номером в пути, а СТОЛБЕЦ($K$1) – это номер столбца для отступа вправо по функции ВПР.

Далее мы столбец с ценой умножим на столбец с количеством (запишем результат в столбец Z), но с условием что на родительский элемент не проставлена цена, иначе мы будем считать цену, которая задана сверху:

=ЕСЛИ(ЕСЛИОШИБКА(ВПР(AB5;A:Y;СТОЛБЕЦ(Y$3);0);1)>0;0;Y5*K5*ЕСЛИОШИБКА(ВПР(AB5;A:K;СТОЛБЕЦ(K$3);0);1))

Позже попробуем просуммировать все нижестоящие элементы по каждому узлу – если есть сумма, то мы используем ее, иначе суммируем:

=ЕСЛИ(Z5>0;Z5;СУММЕСЛИМН(Z5:СМЕЩ(Z$5;0;0;СЧЁТЗ(B:B);1);AB5:СМЕЩ(AB$5;0;0;СЧЁТЗ(B:B);1);A5&"*"))

Такой подход конечно не может претендовать на лучший метод расчета, поскольку не позволяет учитывать правильно применяемость родительских элементов в структуре, поэтому лучшим решением будет применение макроса на VBA.

 

Подробнее


12.07.2016 09:57

Простой пример отправки данных формы POST-запросом на Android

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

Предлагаю рассмотреть вариант с отправкой данных из приложения на Android с данными из двух полей на заранее подготовленный сервер, где будет обрабатываться наш запрос. Для начала необходимо воссоздать макет страницы. Пусть кнопка отправки сообщений будет вверху, нам так удобнее при работе с приложением, и добавим два поля EditText и один ProgressBar (который в приложении при загрузке сначала должен быть невидимым, я укажу это в коде активити).

 

Подробнее


02.04.2016 15:08

Какие способы заработка есть в интернете

Есть много возможностей заработать в интернете, но поговорим сегодня о способах, которые наиболее оптимальны. Чаще всего от человека, который ищет заработок в интернете потребуется наличие своего сайта и реже без него. Но мы рассмотрим оба варианта.

1. Тизерная реклама на сайте

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

Немного отличается, но суть примерно та же, это Сеть товарных рекламных объявлений от Recreativ

Подробнее


03.03.2016 09:03

Переполнение диска или как уменьшать Ldf (Log) файлов в MS SQL Server

Существует ситуация, когда LDF файл занимает много гигабайт места (файл с постфиксом _log), и его необходимо уменьшить.

Это происходит когда база в SQL находится в режиме Full, т.е. с фиксацией всех произведенных транзакций. Модель Full позволяет восстановить состояние базы SQL на любое время, в то время, как модель Simple не позволяет этого сделать, а только восстановить базу из бэкапа. Смысл модели Full в том, что в журнал транзакций LDF записываются ВСЕ транзакции и там остаются, ну до определенного времени, например, до операции shrink. Таким образом SQL последовательным откатом транзакций назад может восстановить состояние базы на любой момент времени периода записанных в LDF транзакций.

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

Подробнее


08.02.2016 12:32

VBA Подстановка имен из нового исходящего сообщения в Outlook (настройка обращения по адресатам рассылки)

Сегодня мы рассмотрим скрипт для настройки обращения по адресатам рассылки, то есть займемся подстановкой имен из нового исходящего сообщения в Outlook. Бывает такое, что хочется полениться и нажимать просто одну кнопку, нежели лезть в поле ввода адресов и копировать оттуда сложные имена и отчества для обращения по адресатам рассылки. В этом нам поможет VBA. Теперь нажимайте ALT + F11, мы перейдем в раздел разработчика.

В начале нам необходимо научиться находить имя и отчество. Смотрим и копируем код:

'функция выделения  имени и отчества
Public Function ФИ(ФИО, Optional Наоборот As Boolean = False)
Dim Ф As String 'фамилия, выделенная из ФИО
Dim ИО As String 'инициалы, выделенные из ФИО
Dim i As Long 'счётчик
    ФИ = ФИО 'гарантируем возврат данных
    If IsNull(ФИО) Then Exit Function 'выходим из-за пустого значения ФИО
    ФИО = Trim(ФИО) 'отсекаем пробелы спереди и сзади
    If Len(ФИО) < 3 Then Exit Function 'выходим из-за малой длины ФИО
    i = InStr(ФИО, " ") 'ищем первый пробел
    If i = 0 Then Exit Function 'выходим ввиду отсутствия пробелов
    Ф = Left(ФИО, i) 'выделяем фамилию
    ИО = Right(ФИО, Len(ФИО) - i) 'выделяем имя и отчество
    ФИ = ИО 'возвращаем имя и отчество
End Function

Подробнее


03.01.2016 15:42

MySQL простые примеры (simple examples)

Add MySQL User

CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;

 

MySQL - granting access permissions

-- mySQL granting DB specific privileges:
GRANT ALL PRIVILEGES on DBNAME.* TO 'user'@'%' IDENTIFIED BY 'password' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;   
 
-- mySQL granting generic specific privileges:
GRANT ALL PRIVILEGES on *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;

Подробнее


<< Назад 1 2 3 4 5 >>