Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 04.04.2013
Сообщений: 16
1
MySQL

Подскажите пожалуйста причину синтаксической ошибки в запросе

25.07.2014, 13:18. Показов 1263. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Произвел подключение к серверу mysql через jdbc драйвер. При отправке запросов create database, drop table и подобные, все проходит хорошо, нужные базы создаются, а таблицы удаляются. Но при попытки выполнить запрос на чтение сервером команд из файла:
Java
1
 st1.executeUpdate("source c:\\users\\dubas\\ideaprojects\\db\\database.sql");
вылетает следующее исключения ошибки синтаксиса:
Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SOURCE C:/users/dubas/ideaprojects/db/database.sql' at line 1
Подскажите пожалуйста в чем ошибка.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.07.2014, 13:18
Ответы с готовыми решениями:

Как выловить причину ошибки сервлета с обращением к MySQL?
Пытаюсь написать сервлет с обращением к MySQL. В результате в браузер выводится что было прописано...

объясните пожалуйста причину ошибки
вот такой небольшой код <? $hello = "hello"; $string = "Hello world"; echo "$string"; ?> ...

Подскажите причину ошибки System.IndexOutRangeException
Здравстуйте. Задача подключиться в SQL серверу и вывести результат в "TreeView" Вот код: using...

Подскажите причину ошибки во фрагменте, аналогичный которому выше выполняется нормально
Проблема в строке 116. Вместо if (kursor==milkis||(kursor==milkis)) должно быть if...

6
Native x86
Эксперт Hardware
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,424
25.07.2014, 13:24 2
Лучший ответ Сообщение было отмечено dubas1994 как решение

Решение

Цитата Сообщение от dubas1994 Посмотреть сообщение
Подскажите пожалуйста в чем ошибка.
Ошибка в том, что в файле c:\users\dubas\ideaprojects\db\database.sql лежит некорректный SQL-запрос. Что в первой строке этого файла?
1
0 / 0 / 0
Регистрация: 04.04.2013
Сообщений: 16
25.07.2014, 13:38  [ТС] 3
Ошибки в файле вроде бы нет
MySQL
1
2
3
4
CREATE DATABASE citie;
USE citie;
CREATE TABLE city (name_city VARCHAR(20));
INSERT INTO `city` VALUES ('name');
Да и при выполнении аналогичной команды через консоль проблем не возникает.
Кликните здесь для просмотра всего текста

mysql> source c:\users\dubas\ideaprojects\db\database.sql
Query OK, 1 row affected (0.00 sec)

Database changed
Query OK, 0 rows affected (0.04 sec)

Query OK, 1 row affected (0.02 sec)

mysql>
0
Native x86
Эксперт Hardware
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,424
25.07.2014, 13:48 4
Лучший ответ Сообщение было отмечено dubas1994 как решение

Решение

Невнимательно прочитал я сообщение об ошибке:
Код
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SOURCE C:/users/dubas/ideaprojects/db/database.sql' at line 1
Отсюда ясно следует, что серверу было отправлено не содержимое файла, а сама строка 'SOURCE C:/users/dubas/ideaprojects/db/database.sql', которая не является корректным запросом. Перечитайте файл, а затем скармливайте его содержимое в executeUpdate().

Команда source -- это не часть SQL, это команда консоли mysql, загружающая внешний файл. И загружает она файл скорее всего в контексте сервера, то есть путь к файлу должен быть указан в файловой системе сервера, а не клиента.
1
0 / 0 / 0
Регистрация: 04.04.2013
Сообщений: 16
25.07.2014, 14:15  [ТС] 5
Спасибо вам большое за помощь!

Добавлено через 24 минуты
Извините, еще один вопрос. Так как source не является sql запросом, возникает вопрос, а можно ли его как то передать из программы серверу на выполнение?
0
Native x86
Эксперт Hardware
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,424
25.07.2014, 14:22 6
Цитата Сообщение от dubas1994 Посмотреть сообщение
Так как source не является sql запросом, возникает вопрос, а можно ли его как то передать из программы серверу на выполнение?
Я не знаю деталей, но если в качестве запроса эта команда не проходит, то значит сервер ее не выполняет, выполняет клиент. В чем проблема прочитать в строку файл и после этого выполнить его?
0
0 / 0 / 0
Регистрация: 04.04.2013
Сообщений: 16
25.07.2014, 14:25  [ТС] 7
Нет, вариант с чтением из файла вполне подходит. Просто интересно, как можно это сделать не таким топорным способом. Скажем так вопрос для общего развития
0
25.07.2014, 14:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.07.2014, 14:25
Помогаю со студенческими работами здесь

исправьте, пожалуйста ошибки в запросе
я сделала запрос на смену фамилии в таблице chitateli, в колонке FIO, а он у меня не работает,...

Подскажите пожалуйста в запросе
База Рабочая, но возникла такая проблема, при внесении данных из одной таблицы в другую вносится не...

Подскажите, пожалуйста, в запросе правильное задание WHERE ID1=perem1
Требуется по нажатию кнопки взять введённое в Поле1 числовое значение, равное номеру идентификатора...

Проект вроде бы без единой синтаксической ошибки выдаёт их кучу
В общих чертах проект таковой: -Использована библиотека SFML, подключены propertySheet-ами...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru