Как удалить все таблицы из MSSQL

Появилась задача дропнуть все таблицы из базы данных MSSQL не удаляя и создавая базу данных.

DECLARE @Sql NVARCHAR(500) DECLARE @Cursor CURSOR

SET @Cursor = CURSOR FAST_FORWARD FOR
SELECT DISTINCT sql = 'ALTER TABLE [' + tc2.TABLE_NAME + '] DROP [' + rc1.CONSTRAINT_NAME + ']'
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc1
LEFT JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc2 ON tc2.CONSTRAINT_NAME =rc1.CONSTRAINT_NAME

OPEN @Cursor FETCH NEXT FROM @Cursor INTO @Sql

WHILE (@@FETCH_STATUS = 0)
BEGIN
Exec SP_EXECUTESQL @Sql
FETCH NEXT FROM @Cursor INTO @Sql
END

CLOSE @Cursor DEALLOCATE @Cursor
GO

EXEC sp_MSForEachTable 'DROP TABLE ?'
GO

Как заставить работать Apple USB Ethernet Adapter на Windows 8

Маленькая история. Нашел я у себя Ethernet Adapter от Apple и захотелось мне проверить, можно ли заставить его работать не на технике Apple, а с обычным PC под управлением Windows 8. Оказывается, можно…

Continue reading

Кастомизация RadioButton в Android

Привет! Продолжая тему кастомизации элементов интерфейса Android хочу описать, как кастомизировать RadioButton.

Что бы создать кастомный стиль для RadioButton нужно создать drawable-ресурс, содержащий 4 иконки:

 Pressed  Checked
 True  True
 True  False
 False  True
 False  False

Поместите ваши изображения в res\drawable\ Далее нужно создать описание для этих ресурсов. Селектор.

Для этого нужно создать файл, например res\drawable\button_radio.xml в втором и будут описано, когда какую картинку размещать.

Пример:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_checked="true" android:state_pressed="false"
      android:drawable="@drawable/radio_on"/>
  <item android:state_checked="false" android:state_pressed="false"
      android:drawable="@drawable/radio_off"/>
  <item android:state_checked="true" android:state_pressed="true"
      android:drawable="@drawable/radio_on_pressed"/>
  <item android:state_checked="false" android:state_pressed="true"
      android:drawable="@drawable/radio_off_pressed"/>
</selector>

Подключить его из разметки можно при помощи следующей строки:

android:button="@drawable/button_radio"

А из JAVA кода можно так:

RadioButton newRadioButton = new RadioButton(this);
newRadioButton.setButtonDrawable(R.drawable.radio_button);

В коде выше описаны не все атрибуты.

Кастомизация ProgressBar в Android

С чего же начать… Это еще одна статья, как сделать что-то в Android’е так, что бы было не стандартно или даже красиво :)

Я показывал (достаточно кратко) как кастомизировать кнопки и сделать свой ListView, теперь настало время рассказать как изменить внешний вид ProgressBar.

Continue reading

Как получить SSID Wi-Fi сети из Android-приложения

Возникла необходимость получить SSID сети из Android приложения. Облазил StackOverflow вдоль и поперек… Ответ помечен как правильный. но я имплементирую код который дан и… приложение на нем останавливается. Долго я мучился. Оказывается, нужно добавить Permission…, а лучше два. Код почти полностью из ответа, но у меня он полностью не заработал, так что пришлось удалить ту часть, которая не работает:

private String getCurrentSsid(Context context) {
		  String ssid = null;
		  ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
		  NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
		  if (networkInfo.isConnected()) {
		    final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
		    final WifiInfo connectionInfo = wifiManager.getConnectionInfo();
		    if (connectionInfo != null) {
		      ssid = connectionInfo.getSSID();
		    }
		  }
		  return ssid;
		}

Метод возвращает название SSID (строка) или null если wi-fi не подключен.

Для работы требуются следующие разрешения:

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Как установить APK на телефон?

Бывает, когда нужно установить apk-файл на телефон. Есть простой способ сделать это при помощи SDK.

Команда в CMD будет такой:

adb.exe install <filename>.apk

Просто до безобразия, но работает. Есть несколько НО.

  1. На телефоне должна быть включена отладка по USB.
  2. Телефон должен быть определен SDK. У моего HTC была проблема…
  3. Нужен SDK или его часть — про это подробнее потом расскажу.

Java: GUI приложение для работы с текстовыми файлами

Привет, читатель :)

Дали вот такое задание, для написание на Java и обязательно в среде NetBeans:

Написать программу, которая должна уметь:

  1. Открывать каталог, типа С:\users\
  2. Выводить из каталога в Combobox файлы
  3. По нажатию кнопки «открыть» открывать в редактор текстовый файл из каталога
  4. При изменении файла и нажатии на кнопку «сохранить» сохранять изменения в том же файле который был открыт

Можно сказать, что я начал и закончил интерфейсом. А ну и еще одно — эта инструкция не будет такой подробной как некотрые ранее, так как мне кажется что тут все примитивно.

Continue reading

Google Play: Developer Console. Alpha\Beta Tesring

На последнем Google I/O 2013 Google же анонсировал возможность Alpha\Beta — тестирования приложений в магазине Google Play. Штука интересная, нужная, но при попытке выложить так приложение у меня возникли дикие проблемы, которые удалось решить не сразу, поэтому я надеюсь, что этот материал будет полезен начинающим разработчикам, тем более, что материала по данной теме на русском языке я не нашел. Есть только небольшая заметка на stackoverflow.com

Выкладка Бета\Альфа-версии отличается от релизной выкладки тем, что:

  1. Приложение недоступно по средствам поиска в Google Play.
  2. Если это единственное приложение у разработчика, то его страницы просто нет.
  3. Приложение доступно для тестирования только пользователям по приглашению. Об этом ниже.

На странице «Файлы APK» Появляется блок «Бета-тестировщики», который внутри выглядит так:

betagoogle

Сразу после публикации есть ссылка, но при переходе на нее (и авторизации на Google) получаем ошибку 404. Все потому что нужно сначала создать сообщество на Google Plus и пригласить туда людей, а уж после этого можно давать им эту ссылку. Создать сообщество можно тут. После этого ссылка начнет открываться и тестеры смогут увидить примерно такую картинку (название приложение, группы и автора закрыты):

betagoogle2

После нажатия кнопки «Учавствовать в тестировании» у пользователя появляется возможность скачать приложение.

При этом стоит заметить, что приложение добавляются на Google Play несколько часов… Поэтому сначала ссылка будет вести в пустоту, потом оно появится в Google Play, но при попытке скачать приложение телефон будет говорить: «приложение не найдено». Это нормальное поведение. Нужно еще подожать часа два-три.

Очень кратко. Надеюсь понятно. Если есть вопросы, вы как обычно можете задать их в комментариях.

Настройка listview items с собственным ArrayAdapter


Для реальных коммерческих мобильных приложений, стиль по-умолчанию и вид ListView в Android не привлекателен. Он может лишь отображать простую строку в каждой строке ListView, используя внутренний контролл (элемент) TextView. Для большинства приложений, вы захотите создать интерфейс, который более приятен для пользователя. Хорошо, что ListView очень мощный контрол и с помощью своих разметок элемента он может быть легко изменен что бы соответствовать вашим потребностям. В этом руководстве я покажу вам, как вы можете создать свои элементы ListView с иконками, своей разметкой заголовка и как вы можете  использовать настроенный ArrayAdapter что бы создавать что угодно на основе ArrayAdapter в будущем. Я также расскажу некоторые советы, которые вы можете использовать для оптимизации использования памяти вашим ListView.

Android_Custom_ListView_ArrayAdapter

Continue reading

Создание портативных приложений при помощи VMware ThinApp

Всем привет!

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

У компании vmware есть такой инструмент. Называется он vmware ThinApp. Служит для того, что бы удобно и быстро переносить приложение внутри виртуализированных сред, но его можно использовать и для создания приложений, которые не требуют установки.

Continue reading