Sql server для андроида

Sql server для андроида

Новые темы необходимо создавать только в корневом разделе! В дальнейшем они будут обработаны модераторами.

Если Вы выложили новую версию программы, пожалуйста, сообщите об этом модератору нажав на вашем сообщении кнопку «Жалоба».

Client for MySQL, MsSQL.
версия: 3.0.2

Последнее обновление программы в шапке: 21.06.2016

Краткое описание:
Позволяет удаленно подключаться к MySQL, Microsoft SQL, Sybase и серверам PostgreSQL прямо с Вашего телефона или планшета.

Описание:
Connect2SQL is an all-in-one MySQL client, SQL Server client, Sybase client, and Postgres client for Android. It allows you to remotely connect to MySQL, Microsoft SQL, Sybase, and PostgreSQL servers directly from your phone or tablet. Execute any command with the help of basic SQL syntax highlighting and view the results in a fully scrollable grid. Save commonly used SQL statements and review the history of SQL statements executed.

This application works as a.
MySQL Client
SQL Server Client (Microsoft SQL)
Sybase Client (ASE only)
Postgres Client

FEATURES
— Full execution availability
— Quick keys [shortcuts]
— Save queries per connection
— History of queries executed
— Placeholders for dynamic saved queries
— Scrollable results with clipboard copy
— Basic SQL syntax highlighting
— Multiple ResultSet compatible
— Built in pagination

CAUTION: Use app with care. It does not have limitations on such commands as DROP, TRUNCATE, DELETE, etc. Anything you do will be done directly on the server. If you are not sure how, what, who, SQL is. this tool is probably not for you.

Требуется Android: 4.0+
Русский интерфейс: Нет

Источник

Android. Работаем с MS SQL без посредников

Предупреждение:
Вообще говоря, информация из статьи применима только для некоторых специфических случаев. Например, когда приложение работает внутри какого-то сегмента изолированной сети. А в общем случае посредник, коим является http-сервер, всё-таки нужен. Хотя бы потому, что при описанном методе логин/пароль доступа к базе зашиты в приложении и передаются по сети.

Статья является продолжением работы, о которой писал в своём предыдущем посте. Изначально эту часть писать не хотелось (см. предупреждение), но на хабре данная тема ещё не освещена, и в целом в сети меньше информации.
Поэтому, если Вам интересно, как можно из под Android напрямую работать с MS SQL (логично предположить, что и с другими БД, но на практике я этого не делал), добро пожаловать под кат.

В Java (и Android соответственно) соединение с удалёнными БД происходит при помощи JDBC-драйверов. В моём конкретном случае сервер майкрософтовский, и для него существует два драйвера: от Microsoft и открытая альтернатива JTDS. Причём последний, по заверениям разработчиков, работает быстрее и стабильней официального. Вот его и будем использовать.

Грабли: Актуальная версия JTDS на дату написания поста — 1.3.1. Но начиная с версии 1.3.0 драйвер переписан для совместимости с Java 7, и в сети встречаются сообщения о проблеме работы этих версий в Android. Поэтому необходимо использовать последнюю стабильную версию ветки 1.2.* (1.2.8), которая для Java 6.

Читайте также:  Android java no selected

На SQL-сервере должна быть настроена работа через TCP/IP.

Получение данных

Данные запросов драйвер возвращает в интерфейсе ResultSet который похож на андроидный Cursor, но быстрого способа приведения ResultSet к курсору я не нашёл. Поэтому поступим по-другому, данные из ResultSet будут конвертироваться в массив JSONArray и возвращаться в основную логику приложения, откуда с ними можно будет делать что угодно.

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

EDIT: Переписал закрытие Connection, Statement и ResultSet в примерах в соответствии с основами.

На вход классу подаётся запрос, на выходе — готовый JSONArray, как если бы мы получали данные от веб-сервера. В отдельном потоке AsyncTask соединяется с сервером, получает данные в ResultSet и формирует из них JSON. Думаю, в целом код примитивен и в пояснениях не нуждается.

Для построения систем, работающих по подобному принципу, лучше передавать на вход не чистые select-запросы, а написать на сервере готовые T-SQL функции, передавая параметры к которым, можно получать нужные выборки.

Insert и Update. Передача данных на сервер

К сожалению, тут я не придумал ничего лучше, просто выполнение Insert-ов в транзакции. В прочем, метод отлично работает, вставка нескольких сотен записей занимает приемлемое время (около секунды на 100 строк, полей в реальном проекте больше, чем в приведённом примере).

EDIT: по совету eyeless_watcher использую метод addBatch() при заполнении PreparedStatement. Вот теперь вставка данных выполняется на самом деле быстро, в одной транзакции. Пример изменил.

Для вставки нужных значений используется PreparedStatement. Нумерация полей в нём почему-то начинается с единицы (см. документацию). А в остальном — всё должно быть понятно. update можно реализовать схожим образом, аналогично используя executeUpdate.

Приведённый подход был использован мной в «боевом» приложении первый раз.
На практике оказалось, что он стабильно работает. Время соединения с БД иногда может занимать несколько секунд (подключаюсь по wi-fi, сервер общий на всё предприятие), но сами транзакции выполняются быстро.

Источник

Превращение Android телефона в сетевую SQL базу данных (MyMobileSQLServer — Utesov)

Недавно я начал делать очередной проект для мобильных устройств. Его побочным продуктом стало приложение, с помощью которого можно развернуть сетевую базу данных на любимом Android телефоне, планшете и т.п… Предлагаемое решение является сетевым провайдером SQLite базы данных.

Приложение многопользовательское, каждый пользователь имеет свою БД, которая недоступна другим пользователям. Код открытый, лицензия Apache 2.0.

Для демонстрации заявленных возможностей написано простое приложение которое позволяет делать SQL запросы на сервер и получать результаты их выполнения, его код рассмотрим здесь. Время освоения — 10 минут. Для тестирования достаточно одного устройства (если используется два и более, то необходимо WiFi подключение). Поехали!


Кадр из к\ф «Весёлые ребята» (доработанный)

Прежде всего устанавливаем приложение (сервер) MyMobileSQLServer — Utesov из PlayMarket, Yandex.Store или из репозитория. Далее необходимо создать пользователя для доступа к данным и саму базу данных. Для этого на главном экране выберите «edit user» -> «Add user». Заполняйте поля формы. После возвращайтесь на главный экран приложения и запускайте его с помощью кнопки «on». Обратите внимание на порт и IP адрес для подключения.

Перейдем к непосредственному созданию приложения для доступа к сетевой БД.

Читайте также:  Как очистить андроид от вирусов через компьютер

1 — Создаем новый проект. Копируем файл библиотеки «myMobileSQLClient.jar» в директорию для хранения библиотек и делаем необходимые действия, чтобы она стала доступна для проекта

2 — Настраиваем манифест проекта, добавляем директиву для возможности использования подключения к сети:

3 — Кидаем на форму:
пять полей ввода: IP адрес, номер порта, текст для sql запроса, логин, пароль;
три кнопки: подключиться, отключиться, отправить запрос;
поле для вывода информации.
У вас должно получиться примерно так:

Копируем следующий код с необходимыми корректировками:

Теперь разберемся что происходит.
За работу с удаленной БД отвечает данный объект:
MainMobileSQLClient mainMobileSQLClient;
В нём переопределены следующие методы:
onMessage — пришло сообщение с сервера;
onConnection — клиент осуществляет подключение к серверу;
onConnect — клиент подсоединился к серверу;
onDisconnect — клиент отсоединился от сервера;
onErrAuthentication — ошибка аутентификации;
onCompleteAuthentication — аутентификация прошла успешно;

При создании главного объекта задается IP адрес сервера и порт для подключения. Запуск клиента осуществляется с помощью метода startClient(). Начало подключения сопровождается методом onConnection. Если произошла ошибка подключения, то вызывается метод onDisconnect, который также вызывается при отключении клиента от сервера (например при разрыве соединения или отключении сервера). Если всё произошло в штатном режиме, то завершение процесса подключения ознаменует метод onConnect.

Далее необходимо произвести регистрацию пользователя на сервере, лучше всего делать это после окончания подключения, прямо в методе onConnect:

В случае успеха аутентификации, будет вызван метод onCompleteAuthentication, иначе onErrAuthentication. Если аутентификация не произошла, то скорее всего ваши логин и пароль не совпадают с теми, которые были зарегистрированы на сервере.

Теперь дело остается за малым — делать запросы и обрабатывать реакцию на приходящие данные.
Чтобы инициировать SQL запрос, необходимо вызвать метод (пример):
String id_request = mainMobileSQLClient.sendSQLRequest(»select * from test;»);
Он, в свою очередь, возвратит идентификатор запроса в виде текстовой строки. Это важно, так как это сетевое приложение, оно работает асинхронно. Когда с сервера приходит новый ответ, то вызывается метод onMessage(String id, DATA_parser data), который передает идентификатор запроса (id), на который пришел ответ и сами данные (data). Данные предоставляются в виде объекта DATA_request, в котором имеются следующие объекты:
status — String — статус результата запроса данных, если «ok», то запрос отработан удачно, иначе «err» (в дальнейшем статусы возможно будут пополняться);
recordsCount — int— количество записей пришедших от сервера, являющиеся результатом запроса;
structure — String[] — текстовый массив, являющийся перечислением названий всех полей ответного запроса;
listData — ArrayList — список массивов данных. Количество элементов в списке соответствует количеству записей с сервера. В каждом элементе находится текстовый массив, с количеством элементов равным количеству элементов в массиве structure.

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

Всё готово! Теперь приступайте к тестированию, отправляйте любые SQL запросы на сервер (создание таблиц, вставка/модификация данных, удаление записей и т.д.) и получайте соответствующие результаты выполнения.

Репозиторий с сервером, клиентом, библиотекой и примером приложения — https://github.com/gc986/MyMobileSQLServer_Utesov
(В настоящее время в репозитории находится самая первая версия проекта подготовленная в формате ADT Eclipse. Следующим этапом станет перевод проекта под формат AndroidStudio)

Читайте также:  Обновление конфигурации андроид что это значит

Вопрос к хабраудитории: где можно применить данное решение?

Источник

Подключение android с MS SQL SERVER 2008

Можно ли подключить приложение Android к центральному серверу базы данных (например, MSSQLServer 2008)?

У меня есть база данных MySQL, к которой обращаются как на веб-сайте, так и на Android. Подключение к базе данных с сайта прекрасно, но как это можно сделать из приложения для Android?

Это уже было задано здесь, а также здесь . Возможно, вам захочется попробовать быстрый поиск до публикации … Единственное отличие – это СУБД, но идея почти такая: создайте уровень веб-сервиса, который ведет себя как мост между вашим клиентом android и вашей базой данных.

  • Представление
  • Безопасность
  • Лучшая практика
  • Разделение проблем

Все, что вам нужно сделать, это использовать соответствующий драйвер, я бы рекомендовал использовать JTDS , а версия 1.2.5, похоже, хорошо работала с android. Подробную инструкцию по использованию с eclipse можно найти здесь . Рабочий код доступен в github

Соединение вашего приложения Android с внешним сервером базы данных – плохая идея, вместо этого создайте веб-приложение и получите доступ к базе данных.

Существует несколько стратегий, которые вы можете использовать для выполнения того, что вы хотите сделать. Учитывая, что поддержка SOAP для Android не существует, вы, скорее всего, захотите вывести данные в формате XML или JSON через WCF, ASP.NET, Ruby On Rails, PHP или любое количество веб-фреймворков.

Не зная, что сейчас работает в вашем веб-приложении, трудно сказать, как лучше всего сделать это подключение к данным. Вы можете использовать службы данных WCF, если вы хотите как можно быстрее встать и работать, а в MSDN есть достойная статья о начале работы с ней:

Я предлагаю вам изучить существующее решение и выяснить, как наилучшим образом расширить его, чтобы вывести данные из вашего приложения на Android.

Я пытаюсь подключиться к андроиду через сервер PHPto ms sql, вы можете прочитать здесь , используя httprequest и json. Если вы хотите подключиться к Ms SQL Server 2005 или выше, вы должны загрузить Microsoft Driver for PHP для SQL Server.

Я использовал php в качестве веб-службы для подключения базы данных Ms SQL Server, так или иначе вы можете использовать jdbc для подключения из android прямо к базе данных MS SQL Server

Другой подход, более простой, чем веб-сервис, заключается в использовании виртуального драйвера JDBC, который использует трехуровневую архитектуру: ваш JDBC-код отправляется через HTTP на удаленный сервлет, который фильтрует код JDBC (конфигурация и безопасность), прежде чем передавать его на Драйвер JDBC для SQL Server. Результат отправляется вам через HTTP. Есть несколько бесплатных программ, которые используют эту технику. Просто Google «Android JDBC Драйвер через HTTP».

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

У меня было устаревшее клиентское / серверное приложение Delphi, и я создал с помощью Raudus веб-приложение, оптимизированное для мобильных устройств. Конечно, это имеет смысл, если у вас есть навыки Delphi, но для других языков / технологий существуют coutnerparts.

Источник

Оцените статью