Проблема такая:
использую jtds-1.2.7.jar (версии от 1.2.5 до 1.2.8) для подключения к MS SQL 2008r2 и вроде бы все нормально до определенного времени подключалось и читал все, что мне нужно, но при добавлении в gradle dependencies какой-нибудь библиотеки (как практика показала - любой), при подключении к БД выдает исключение
java.sql.SQLException: The executeQuery method must return a result set.
И это именно не при выполнении запроса (запрос вообще убираю), а при
Connection conn = DriverManager.getConnection(MyApplication.db_url, MyApplication.db_name, MyApplication.db_password ); !!!
А после и добавления класса отдельно такую же фигню выдавать начал...
Вот код:
Код: Выделить всё
class login extends AsyncTask<String, String, Integer> {
Integer mysession=0;
@Override
protected void onPostExecute(Integer i) {
Log.d("zxc","Запоминаю настройки");
super.onPostExecute(i);
}
@Override
protected void onPreExecute() {
login_try++;//увеличиваем попытку на единицу
super.onPreExecute();
}
@Override
protected Integer doInBackground(String... params) {
MyApplication.MY_IP=MyApplication.getLocalIpAddress();
try {
Connection conn = null;
try
{
Class.forName("net.sourceforge.jtds.jdbc.Driver"); //.newInstance();
//DriverManager.registerDriver(new net.sourceforge.jtds.jdbc.Driver());
Log.d("zxc", "MSSQL класс подключен");
//DriverManager.registerDriver(new net.sourceforge.jtds.jdbc.Driver());
Log.d("zxc", "MSSQL драйвер подключен");
conn = DriverManager.getConnection(MyApplication.db_url, MyApplication.db_name, MyApplication.db_password );
// DriverManager.getConnection();
Statement st = conn.createStatement();
Log.d("zxc", "good!");
String query = "DECLARE @code int,@code_name varchar(150),@id_session int,@Questions_xml xml, @JK_array xml, @My_info xml, @My_avatar nvarchar(max)" +
" EXEC [DS_CRM].[dbo].[Autorization_Revizor] @Login = N'" + MyApplication.MY_LOGIN + "', @Password = N'"+ MyApplication.MY_PASSWORD +"', @id_value_enter = 1, @IP = N'" + MyApplication.MY_IP + "', @Useragent = N'" + MyApplication.SOFTWAREVERSION + "', @Comment = N'IMEI:" + MyApplication.MYIMEI + "', @code = @code OUTPUT, @code_name = @code_name OUTPUT, @id_session = @id_session OUTPUT, @Questions_xml = @Questions_xml OUTPUT, @My_info = @My_info OUTPUT, @JK_array = @JK_array OUTPUT, @My_avatar=@My_avatar OUTPUT " +
" SELECT @code as N'code',@code_name as N'code_name', @id_session as N'id_session', @Questions_xml as N'Questions_xml', @My_info as N'My_info', @JK_array as N'JK_array', @My_avatar as N'My_avatar'";
catch (java.sql.SQLException e) { e.printStackTrace();
Log.d("zxc", "bad=" + e.toString()); resultcode="Не смог подключиться к БД"; } //вот сюда отправляет все время
}
catch (Exception e) { e.printStackTrace(); resultcode="Не смог выполнить функцию запроса"; }
return mysession;
}
}
Код: Выделить всё
2 19:50:36.802 27346-27427/ru.ds_exp.test_07042016_02 D/zxc: MSSQL класс подключен
07-12 19:50:36.802 27346-27427/ru.ds_exp.test_07042016_02 D/zxc: MSSQL драйвер подключен
07-12 19:50:37.466 27346-27348/ru.ds_exp.test_07042016_02 D/dalvikvm: GC_CONCURRENT freed 698K, 15% free 10335K/12103K, paused 12ms+6ms, total 65ms
07-12 19:50:37.474 27346-27427/ru.ds_exp.test_07042016_02 D/dalvikvm: WAIT_FOR_CONCURRENT_GC blocked 44ms
07-12 19:50:37.726 27346-27348/ru.ds_exp.test_07042016_02 D/dalvikvm: GC_CONCURRENT freed 819K, 15% free 10888K/12807K, paused 13ms+12ms, total 53ms
07-12 19:50:38.154 56-56/? D/Genymotion: Received Ping
07-12 19:50:39.410 27346-27427/ru.ds_exp.test_07042016_02 W/System.err: java.sql.SQLException: The executeQuery method must return a result set.
07-12 19:50:39.410 27346-27427/ru.ds_exp.test_07042016_02 W/System.err: at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:517)
07-12 19:50:39.430 27346-27427/ru.ds_exp.test_07042016_02 W/System.err: at net.sourceforge.jtds.jdbc.JtdsStatement.executeQuery(JtdsStatement.java:1433)
07-12 19:50:39.430 27346-27427/ru.ds_exp.test_07042016_02 W/System.err: at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:401)
07-12 19:50:39.434 27346-27427/ru.ds_exp.test_07042016_02 W/System.err: at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:188)
07-12 19:50:39.438 27346-27427/ru.ds_exp.test_07042016_02 W/System.err: at java.sql.DriverManager.getConnection(DriverManager.java:175)
07-12 19:50:39.438 27346-27427/ru.ds_exp.test_07042016_02 W/System.err: at java.sql.DriverManager.getConnection(DriverManager.java:209)
07-12 19:50:39.450 27346-27427/ru.ds_exp.test_07042016_02 W/System.err: at ru.ds_exp.test_07042016_02.Screen_1$login.doInBackground(Screen_1.java:1075)
07-12 19:50:39.450 27346-27427/ru.ds_exp.test_07042016_02 W/System.err: at ru.ds_exp.test_07042016_02.Screen_1$login.doInBackground(Screen_1.java:1047)
07-12 19:50:39.454 27346-27427/ru.ds_exp.test_07042016_02 W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:287)
07-12 19:50:39.454 27346-27427/ru.ds_exp.test_07042016_02 W/System.err: at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
07-12 19:50:39.474 27346-27427/ru.ds_exp.test_07042016_02 W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:137)
07-12 19:50:39.474 27346-27427/ru.ds_exp.test_07042016_02 W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
07-12 19:50:39.490 27346-27427/ru.ds_exp.test_07042016_02 W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
07-12 19:50:39.494 27346-27427/ru.ds_exp.test_07042016_02 W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
07-12 19:50:39.494 27346-27427/ru.ds_exp.test_07042016_02 W/System.err: at java.lang.Thread.run(Thread.java:856)
07-12 19:50:39.498 27346-27427/ru.ds_exp.test_07042016_02 D/zxc: bad=java.sql.SQLException: The executeQuery method must return a result set.
07-12 19:50:39.522 27346-27346/ru.ds_exp.test_07042016_02 D/zxc: Запоминаю настройки