«Ask SQL» & Databases Control

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

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

    AskSQL Editor for MS SQL

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

    AskSQL Editor for MySQL

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 ;

Подробнее


03.01.2016 11:16

Использование курсора в MySQL (MySQL cursor example)

Использование курсора в MySQL | Mysql cursor example

Как использовать курсоры

Использование курсора в функциях и процедурах реализуется при выполнении следующих шагов:

  • При помощи оператора DECLARE объявляется курсор для отдельного оператора SELECT или для отдельной процедуры.
  • Оператором OPEN производится открытие курсора.
  • Используя оператор FETCH, осуществляется установление указателя на требуемую запись курсора. При этом значения полей текущей записи присваиваются переменным, указываемым в операторе FETCH. Обычно это конструкция помещается в итеративный элемент (иначе сказать, цикл), который прерывается по некоторому условию.
  • В процессе перемещения указателя текущей записи курсора при выходе указателя за пределы курсора устанавливается значение SQLSTATE = 02000.
  • После того как курсор выполнил свое предназначение, его необходимо закрыть оператором CLOSE.

Курсоры должны быть объявлены до их использования. Переменные с условиями объявляются прежде курсоров. Обработчики объявляются строго после объявления курсоров.

Подробнее


22.11.2015 17:49

Как настроить рекламу в приложении на Android (на примере AdMob)

Краткое руководство о том как настроить рекламу в Вашем приложении на Android (на примере AdMob).

Чтобы настроить баннер рекламы в приложении на Android (на примере "AdMob") я буду использовать "Android Studio". Для начала нам неоходимо подключить к нашему приложению GooglePlayServices. Я предпочитаю это делать вручную, так как это действительно легче нужно найти файл build.gradle в папке app и дописать в найденном грэдле зависимость от плэйсервисов:

dependencies {
    compile 'com.android.support:support-v4:19.1.0'
    compile 'com.google.android.gms:play-services-ads:7.8.0'
}

Следите за тем чтобы минимальная версия SDK была 11, ну а меньше нельзя иначе работать Ваш код откажется. Манифест должен быть настроен так:

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="22" />

Подробнее


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