Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
1 / 1 / 0
Регистрация: 14.06.2013
Сообщений: 37

Реализация отправки данных из EditText приложения Android в поле таблицы БД под СУБД Oracle 11g и в поле БД под СУБД MSSQL

31.01.2014, 05:55. Показов 3365. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всем доброго времени суток!

Читаю и изучаю мануалы и уроки по разработке ПО под Андройд.
вообщем постоянно крутиться мысль в голове, так как имею дело постоянно с различными БД
и в основном работаю с Oracle и MSSQL
Так вот...изначально хотелось создать приложение, которое при установке ряд значений от пользователя могла каким-то образом заполнить этими данными поля в базах данных Oracle и MSSQL/
Собственно и вопрос каким образом это можно сделать рационально и нагляднее при условии что БД не имеют связь с миром(INTERNET)...всё в локалке автономной....т.е. есть тел под Андройд у которого отключена связь с миром и подцеплен к точке wi-fi к локалке ..или планшетник...

и собственно не вижу, чтобы при разработке приложения было всё так явно как в php к примеру...т.е. на php я просто буру из библиотеки функцию и заполняю её данными для connect'а и далее уже делаю select, update и т.п.
здесь же я такого не вижу....Андройд не имеет библиотеку для работы с этими СУБД?
стал читать в сторону Intent и Intent Filter....опять же в замешательстве...как это будет выглядеть на практике для реализации вышеизоженной цели...

к примеру есть у нас Базы данных:
-Oracle 11g, ipserver 10.10.10.1 mask 255.255.255.0 nameserver ORACLESERVER nameBD LOGSERVERORACLE table AUDITSERVERORACLE passwordBD 12345 user STEM1 charset utf8
-создан tnsnames.ora
-MS SQL 2005, ipserver 10.10.10.2 mask 255.255.255.0 nameserver MSSQL2005SERVER nameBD LOGSERVERMSSQL2005 table AUDITSERVERMSSQL2005 passwordBD 67890 user STEM2 charset utf8


погуглил и собственно я не вижу, чтобы были прямые функции для работы с этими БД..верно или я ошибаюсь? если через Intent или Intent Filter то мне необходимо установить в системе Андройд два клиента для MSSQL и Oracle-это я думаю проблем не возникнет..но как использовать прозрачно для пользователя ресурсы клиентов?так чтобы пользователь нажав на кнопку смог в разработанном приложении отправить поле1 для ввода текста допустим в поле БД Oracle , а поле2 для ввода текста допустим в поле БД Oracle и соответственно получить всплывающее сообщение, что данные отправлены.? не могу разобраться..если кто сталкивался с подобным-просьба указать для наглядности как это реализовывается?
Заранее благодарю!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.01.2014, 05:55
Ответы с готовыми решениями:

СУБД под Android
Доброе время суток. Такая ситуация, надо написать приложение под Android, а точнее БД. Должна быть клиент-сервер. 1) Редактировать...

Выбор субд( MS SQL 2008 || Oracle 11g)
Доброго времени суток! Не могли бы вы помочь с выбором субд? Мне необходимо предоставить результаты сравнения этих двух БД (задание...

В СУБД Oracle 11g обнаружена критически опасная уязвимость
В рамках проходящей в США технической конференции Black Hat ИТ-эксперты компании NGS Consulting сообщили о наличии критически опасной...

3
Командир зеленых роботов
 Аватар для angryrobot
349 / 286 / 54
Регистрация: 08.10.2013
Сообщений: 576
31.01.2014, 09:55
Цитата Сообщение от Stem123 Посмотреть сообщение
Андройд не имеет библиотеку для работы с этими СУБД?
Не имеет, придётся поискать готовую или написать свою.
0
1 / 1 / 0
Регистрация: 14.06.2013
Сообщений: 37
03.02.2014, 03:57  [ТС]
А кто-нибудь готовые функции уже встречал?
0
1 / 1 / 0
Регистрация: 14.06.2013
Сообщений: 37
05.02.2014, 12:00  [ТС]
Всё же похабрил немного))не отступаю от надежд разработать приложение под Android и поработаь со своими БДами
Наткнулся на интересную статейку как заставить приложение на Android работать с СУБД MS SQL
вот ссылка
http://habrahabr.ru/post/206790/

Вот хотел бы это реализовать хотя бы к примитивной БД MSSQL в моём случае...

Так как я начинающий в программировании под Android хотел бы посоветоваться...

судя из статьи, естественно узкое место становится безопасность-логин и пароль от БД...конечно можно в БД создать пользователя-readonly роль на нужные таблицы..но опять же пользователю нужно втставлять данные в таблицы...

Итак...
создаю приложение

Project name: P1_MSSQL
Build Target: Android 2.3.3
Application name: WorkBDMSSQL
Package name: ru.chita.develop.p1intentfilter
Create Activity: MainActivity

Откроем main.xml и нарисуем экран:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:id="@+id/linearLayout1" 
android:layout_marginLeft="10pt" 
android:layout_marginRight="10pt" 
android:layout_marginTop="3pt"> 
<EditText 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:layout_marginLeft="5pt" 
android:id="@+id/etDATE1" 
android:layout_width="match_parent" 
android:inputType="numberDecimal"> 
</EditText> 
</LinearLayout> 
<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:id="@+id/linearLayout2" 
android:layout_marginTop="3pt" 
android:layout_marginLeft="5pt" 
android:layout_marginRight="5pt"> 
<Button 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:layout_weight="1" 
android:text="+" 
android:textSize="8pt" 
android:id="@+id/btnConMSSQL"> 
</Button> 
</LinearLayout> 
<TextView 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:layout_marginLeft="5pt" 
android:layout_marginRight="5pt" 
android:textSize="12pt" 
android:layout_marginTop="3pt" 
android:id="@+id/tvResult" 
android:gravity="center_horizontal"> 
</TextView> 
</LinearLayout>
Один EditText-для написания данных, которые по нажатию кнопки добавятся в нужное поле нужной таблицы в БД MSSQL2005SERVER
Одна Кнопка Button, которая по нажатию если есть данные в EditText добавляет данные в БД и показывает данные из БД, а если нет то просто показывает данные из БД


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

Сразу возникает вопрос драйвер JTDS должен установлен в системе Android, где должно работать разрабатываемое приложение WorkBDMSSQL?или я что-то не так понял?..Если всё же драйвер в системе...где его можно найти и как называется?


Итак допустим этот шаг мы сделали...
идём далее по статье
На SQL-сервере должна быть настроена работа через TCP/IP.
Иду на сервер свой SQL SERVER 2005 и настраиваю включение сетевого протокола TCP/IP на данном MSSQL2005SERVER

Далее...
Хочу просто получить данные с SQL сервера

Судя по статье данные запросов драйвер JTDS должен возвращает в интерфейсе ResultSet.
Весь обмен данными, как потенциально продолжительную операцию, будем делать асинхронно.
Теперь в статье написано, что можно написать класс для запросов к MS SQL и назван этот класс AsyncRequest

С учётом моих данных для соединения с моей БД на сервере MSSQL2005SERVER класс AsyncRequest по идее должен выглядеть сл образом:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
public final class AsyncRequest extends AsyncTask<String, Void, JSONArray> {
 final static String MSSQL_DB = "jdbc:jtds:sqlserver://10.10.10.2:57333:/ LOGSERVERMSSQL2005;"
 final static String MSSQL_LOGIN = "STEM2";
 final static String MSSQL_PASS= "67890";
 
 @Override
 protected JSONArray doInBackground(String... query) {
   JSONArray resultSet = new JSONArray();
   try {
     Class.forName("net.sourceforge.jtds.jdbc.Driver");
     Connection con = null;
     Statement st = null;
     ResultSet rs = null;
     try {
       con = DriverManager.getConnection(MSSQL_DB, MSSQL_LOGIN, MSSQL_PASS);
       if (con != null) {
         st = con.createStatement();
         rs = st.executeQuery(query[0]);
         if (rs != null) {
           int columnCount = rs.getMetaData().getColumnCount();
           // Сохранение данных в JSONArray
           while (rs.next()) {
             JSONObject rowObject = new JSONObject();
             for (int i = 1; i <= columnCount; i++) {
               rowObject.put(rs.getMetaData().getColumnName(i), (rs.getString(i) != null) ? rs.getString(i) : "");
             }
             resultSet.put(rowObject);
           }
         }
       }
     } catch (SQLException e) {
       e.printStackTrace();
     } catch (JSONException e) {
       e.printStackTrace();
     } finally {
       try {
         if (rs != null) rs.close();
         if (st != null) st.close();
         if (con != null) con.close();
       } catch (SQLException e) {
         throw new RuntimeException(e.getMessage());
       }
     }
   } catch (ClassNotFoundException e) {
     e.printStackTrace();
   }
   return resultSet;
 }
 
 @Override
 protected void onPostExecute(JSONArray result) {
    // TODO: вернуть результат
 }
}
Сразу возникает ряд вопросов-мне просто не понятны некоторые моменты...
1) это класс и вышеуказанный код я должен прописать в MainActivity.java?Каким образом, если да?Т.е. внутри public class MainActivity extends Activity implements OnClickListener или за его пределами(после)?
2)Итак есть класс и как я его теперь могу использовать при разработке своего приложения?
Я правильно понимаю, что я в приложении могу ввести переменную допустим SELMSSQL класса AsyncRequest

Т.е. в MainActivity.java я должен прописать после
Java
1
public class MainActivity extends Activity implements OnClickListener {
Java
1
2
3
 AsyncRequest SELMSSQL;
 
....
И в MainActivity.java использовать уже данную переменную для select'a
Java
1
2
3
4
....
SELMSSQL.st = "select * from table1";
SELMSSQL.resultSet;
...
Теперь переменная SELMSSQL хранит все данные из таблицы table1 БД MSSQL2005SERVER
верно? или я ошибаюсь?Если ошибаюсь-прошу укажите где и в чм ошибся и как исправить?

А далее пишу обработчик для кнопки как в уроках startandroid.com и вывожу по нажатию OnClick значение переменной SELMSSQL.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class MainActivity extends Activity implements OnClickListener{
TextView etDATE1;
....
 
 
// найдем View-элементы
 
btnConMSSQL = (Button) findViewById(R.id.btnConMSSQL);
tvOut =  (TextView) findViewById(R.id.etDATE1);
 
//Пишем обработчик для этой кнопки
OnClickListener oclBtn = new OnClickListener() {
       @Override
       public void onClick(View v) {
         // TODO Auto-generated method stub
        tvOut.setText(SELMSSQL);
       }
     }
//Скармливаем обработчик кнопке
btnConMSSQL.setOnClickListener(oclBtn);
...
}
Это я просто получил данные с БД пока что.
После запускаю на реальном устройстве приложение. Устройсвто находится в одной локалке с БДами.запускаю приложение и должен получить результат.

Сразу скажу я понимаю здесь ошибок крайне много, но если есть уже более опытные в разработки подобного, то прошу укажите где я не так что сделал и как правильно делать нужно?
Заранее благодарен!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.02.2014, 12:00
Помогаю со студенческими работами здесь

Вывод таблицы с подстановкой данных под поле ID
Добрый день) Ребята, подскажите, пожалуйста, как реализовать такую задачу... есть 2 таблицы: 1-я &quot;оборуд&quot; содержит...

СУБД Oracle vs СУБД SAP HANA
Коллеги, в России появилась новая СУБД, которая создавалась компанией SAP AG с целью замены СУБД, используемых в SAP ERP проектах на...

СУБД под Novell
Доброе время суток. Не подскажете, какую СУБД (из современных, нужна поддрежка многопользовательского режима) можно поставить на...

Инохостинг под СУБД
Всем привет. Сидим уже месяц на sim-networks, арендовано облако - виртуальная машина SIM-Cloud (IaaS) с параметрами VCPUх4 XEON E5-2695...

Как установить Oracle 11g под XP?
Помогите, плиз!!! В процессе установки вылетает ошибка: oraconfig.exe не удалось найти компонет oci.dll. Потом еще всякие... ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru