Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Проблема с MySql delimiter / 4 сообщений из 4, страница 1 из 1
19.05.2014, 12:25:03
    #38645031
Проблема с MySql delimiter
Здравствуйте! Пытаюсь создать триггер из своего приложения в БД. Код пишу такой:
Код: plaintext
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.
queryTxt = "DELIMITER  //";
		query.exec(queryTxt);
		err=query.lastError().text();
		query.finish();
		queryTxt= "CREATE TRIGGER `transitparams_trigger` BEFORE INSERT ON `transitparams` FOR EACH ROW BEGIN"
				"declare numberact, numberreport, numberresolution, numberfillinform int;"
				"if (new.category <> '1') then"
				"SELECT transitparams.actnumber, transitparams.reportnumber, transitparams.resolutionnumber, transitparams.fillinformnumber into numberact,numberreport,numberresolution, numberfillinform"
				"FROM transitparams"
				"WHERE transitparams.paramid=(select max(transitparams.paramid) from transitparams where transitparams.category <> '1');"
				"if (numberact is null) then"
				"set new.actnumber=1;"
				"set new.reportnumber=1;"
				"set new.resolutionnumber=1;"
				"set new.fillinformnumber=1;"
				"else"
				"if(new.actnumber is null) then"
				"set	new.actnumber=numberact+1;"
				"end if;"
				"if (new.reportnumber is null) then"
				"set new.reportnumber=numberreport+1;"
				"end if;"
				"if (new.resolutionnumber is null) then"
				"set new.resolutionnumber=numberresolution+1;"
				"end if;"
				"if (new.fillinformnumber is null) then"
				"set new.fillinformnumber=numberfillinform+1;"
				"end if;"
				"end if;"
				"end if;"
				"END;";
bool done = query.exec(queryTxt);


И запрос с установкой разделителя не выполняется. То есть при выполнении
Код: plaintext
1.
2.
queryTxt = "DELIMITER  //";
query.exec(queryTxt); 


я получаю ошибку:“check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘DELIMITER //’”.
Когда я выполняю команду DELIMITER // через администратор, то все срабатывает отлично. В чем дело?=(((
...
Рейтинг: 0 / 0
19.05.2014, 12:51:55
    #38645050
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с MySql delimiter
DELIMITER - это команда консольного клиента mysql, а не SQL-команда.
Посмотрите в документации от используемой библиотеки доступа, как именно у нее нужно указывать DELIMITER.
...
Рейтинг: 0 / 0
19.05.2014, 14:23:23
    #38645198
Проблема с MySql delimiter
miksoft,
спасибо! я посмотрела драйвер QMYSQL для qt. Сказано, что он вообще не поддерживает команду DELIMITER и якобы задавать разделитель вообще не нужно. Но если его не задавать, то тоже выдается ошибка синтаксиса(
...
Рейтинг: 0 / 0
19.05.2014, 14:58:32
    #38645261
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с MySql delimiter
Полина_МалинаНо если его не задавать, то тоже выдается ошибка синтаксиса(Тогда ищите в направлении создания хранимых процедур.
Наверное, это лучше у специалистов по QT спрашивать.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Проблема с MySql delimiter / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]