Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1 2
Приветствую участников форума SQLinfo.ru!
Предлагаю принять участие в тестировании отладчика хранимых процедур и функций MySQL.
Подробнее о программе можно узнать на сайте http://www.mysqldebugger.com
Прямая ссылка на загрузку инсталлятора http://www.mysqldebugger.com/files/mydebugger_setup.exe
Краткая инструкция по работе с отладчиком:
После запуска, программа попросит ввести параметры подключения к MySQL серверу. Для работы необходима версия MySQL 5.0 или выше.
После подключения, откроется главное окно программы. В центре рабочей области находятся вкладки редакторов процедур и функций. При первом запуске будет открыта только одна вкладка <Main>.
В теле <Main> находится скрипт который запускается на выполнение движком отладчика. В нем вы должны написать вызовы отлаживаемых процедур\функций.
Скрипт <Main> по синтаксису аналогичен телам процедур MySQL.
Простой пример скрипта <Main> для отладки процедуры:
begin
declare p_result integer;
call my_procedure(p_result);
select p_result;
end
Простой пример скрипта <Main> для отладки функции:
begin
declare p_result integer;
set p_result = my_function();
select p_result;
end
После написания скрипта <Main> можно расставить точки останова, теперь, отладчик готов к работе, нажимайте Run(F9).
В текущей версии отсутствуют:
Отладка триггеров.
Отладка событий.
Поддержка отладки функций вызванных из DML, например select my_function().
Все остальное, включая нововведения MySQL 5.5 (SIGNAL\RESIGNAL) программа поддерживает.
Буду рад ответить на ваши вопросы в этой теме, либо по почте support@mydebugger.com
Спасибо за внимание. Успехов в отладке!
Неактивен
Учитывая различия реализации в различных версиях MySQL, предусмотрен ли выбор версии MySQL с которой работать? Это существенно для корпоративных клиентов, которые во-первых используют только Enterprise-версии, а во-вторых, часто привязаны к старой версии (из-за требований стабильности и сложности миграции большого программного комплекса).
Рекомендую стать технологическим партнером MySQL AB:
https://partner-portal.mysql.com/guide/technology.html
В случае одобрения, партнерство бесплатно, при этом ваш продукт будет рекламироваться на сайте mysql.com в разделе "партнеры" и вы получите логотип для размещения на своем сайте.
Неактивен
Выбор версии не предусмотрен. Скажите пожалуйста о каких конкретно проблемах вы говорите.
Спасибо, заявку на партнерскую программу подал давно, они попросили внести исправления на сайте, все сделал, но они уже неделю молчат, наверно им не до того, заняты переходом под крыло оракла
Неактивен
Это такой наблюдательный факт, что крупные компании не спешат с переходом на 5.1 (проблемы и причины могут быть разные - в основном, консерватизм и более высокое число еще не выловленных багов в новых продуктах). Версия MySQL 5.5 на сегодня экспериментальная и в продакшене практически не используется. Если разница в версиях будет только в новых фичах, то пользователь не испытает проблем с дебаггером, но может так произойти, что версия изменит поведение сервера (то есть код, работающий в 5.0 не будет работать в X.X).
Думаю интеграцией и партнерской программой занимаются разные люди. Поэтому не бойтесь напомнить им - лучше всего звонить ответственному лицу по скайпу или телефону.
Неактивен
Да, сейчас отладчик не учитывает версию сервера. Те же SIGNAL\RESIGNAL будут отлично компилироваться и отлаживаться на версии < 5.5. Естественно, при попытке сохранить изменения в версии < 5.5 пользователь получит законную ошибку синтаксиса.
Спасибо что напомнили о партнерской программе.
Неактивен
byterus написал:
Спасибо что напомнили о партнерской программе.
Как получите статус, мы вам логотип на форуме присвоим
Неактивен
rgbeast написал:
byterus написал:
Спасибо что напомнили о партнерской программе.
Как получите статус, мы вам логотип на форуме присвоим
http://solutions.mysql.com/solutions/item.php?id=1798
Можно присваивать логотип
Неактивен
Поздравляю с получением статуса. Логотип присвоен
Неактивен
rgbeast написал:
Поздравляю с получением статуса. Логотип присвоен
Спасибо, дело за малым, начать тестировать
Неактивен
byterus написал:
Спасибо, дело за малым, начать тестировать
Windows-барьер - это серьезный барьер. Надо под wine попробовать.
Неактивен
Вести с полей
Текущая версия отладчика 1.2, подробности о новых возможностях смотрите в разделе Что нового.
Сегодня опубликовано руководство Работа с отладчиком в ОС Linux.
Программа бесплатна для русскоязычных пользователей, для получения лицензии пишите на support@mydebugger.com
Успехов в отладке!
Неактивен
Аха, под wine завелось Как давно я не видел виндовых окошек
Что означает «configure debug environment»? В базе изменений, вроде, не
увидел.
Неактивен
Отлично! «configure debug environment» автоматически генерирует скрипт для отладки выбранной рутины(содержимое вкладки Main).
Неактивен
Кажется, идею понял
В качестве улучшения usability можно попробовать в случае, когда
main пустой, открыта другая вкладка с процедурой, и человек нажал
debug, создавать main автоматически. Возможно, даже лучше сказать,
что «main был пустой, создал сценарий для запуска этой процедуры
по умолчанию».
Да, еще вопрос — забыл сразу задать. Зачем нужно выбирать обяза-
тельно базу при подключении? Потом я же могу все равно базу менять
через GUI?
Неактивен
Спасибо за предложение! Программа пытается опознать что во вкладке Main нет исполняющихся статементов и выдает диалог с предложением использовать команду Configure environment.
После подключения базу изменить нельзя.
Неактивен
Здравствуйте
Я тут тестирую свои процедуры и ваш отладчик заодно, так вот
У меня возникла следующая проблема:
есть процедура:
CREATE PROCEDURE `getCurrency`(
IN sidid INT(5),
IN curlang VARCHAR(5),
IN curSubemitent INT(13)
)
BEGIN
DROP TABLE IF EXISTS `ocms_currecy_view`;
IF curSubemitent IS NOT NULL AND curSubemitent > 0 THEN
CREATE TEMPORARY TABLE `ocms_currecy_view` AS
SELECT
DISTINCT c.`currency`, c.`sid`, ci.`lang`, ci.`title`, c.`prefix`, ce.`emitent`, c.`main`, c.`amount_sale`, c.`amount_purchase`
FROM
`ocms_currency_i18n` AS ci,
`ocms_currency` AS c
LEFT JOIN
`ocms_currency_emitent` AS ce ON
( ce.`currency` = c.`currency` AND
ce.`sid` = c.`sid` )
INNER JOIN
`ocms_subemitents` AS s ON
( c.`currency` = s.`currency` AND
s.`sid` = c.`sid` )
WHERE
c.`currency` = ci.`currency` AND
c.`sid` = ci.`sid` AND
ci.`lang` = curlang AND
s.`subemitent` = curSubemitent AND
c.`sid` = sidid;
ELSE
CREATE TEMPORARY TABLE `ocms_currecy_view` AS
SELECT
DISTINCT c.`currency`, c.`sid`, ci.`lang`, ci.`title`, c.`prefix`, ce.`emitent`, c.`main`, c.`amount_sale`, c.`amount_purchase`
FROM
`ocms_currency_i18n` AS ci,
`ocms_currency` AS c
LEFT JOIN
`ocms_currency_emitent` AS ce ON
( ce.`currency` = c.`currency` AND
ce.`sid` = c.`sid` )
WHERE
c.`currency` = ci.`currency` AND
c.`sid` = ci.`sid` AND
ci.`lang` = curlang AND
c.`sid` = sidid;
END IF;
END
//
В которой осуществляется выборка данных. Так вот подобный синтаксис переменных curlang, sidid - программа не пропускает - говорит об ошибке в WHERE и требует их записи в @curlang и @sidid. Но когда я записываю их подобным образом - она их делает нулевыми, хотя на входе , благодаря вашей программе я вижу что они не пустые
В общем я не понимаю может кто объяснит мне проблема в том что я не разобралась с синтаксисом или в том что это глюк в программе. Буду благодарна за ответы.
Отредактированно tan4ik (17.09.2010 12:26:00)
Неактивен
tan4ik написал:
В общем я не понимаю может кто объяснит мне проблема в том что я не разобралась с синтаксисом или в том что это глюк в программе.
Это глюк в программе, давно хотел исправить. Сейчас займусь. Спасибо!
Неактивен
tan4ik,
Баг исправил, обновляйтесь
Неактивен
Я шоке! Вы её поддерживаете! Какая радость! Сейчас будем пробовать!!!!!! Спасибо, что так быстро!!!
Неактивен
А вот ещё вопрос!
А отладку мной написанных функций как делать??
Он при пошаговом выполнение - почему-то не переходит в функции - хотя по результатам я вижу что они отрабатывают.
Неактивен
А отладку мной написанных функций как делать??
В дереве объектов выбрать нужную функцию и из контекстного меню выбрать команду Configure environment, программа автоматически сгенерирует скрипт для отладки. Тут более подробно расписано.
Неактивен
Отличная программа
спасибо
Единственный недостаток.
нужно обязательно выбирать схему с которой работаешь.
У меня десятки схем и запросы (втом числе в функциях и процедурах) пересекаются между схемами,
а также создана отдельная схема исключительно под процедуры.
В остальном очень удобно - Спасибо за проделанную работу.
Отредактированно incorri (15.12.2010 16:14:09)
Неактивен
incorri, если из одной базы вызывается процедура\функция находящаяся в другой базе, то программа во время ее отладки переключает контекст на базу в которой находится вызываемый модуль. Так что проблем с разными базами быть не должно.
Спасибо за отзыв!
Неактивен
byterus написал:
incorri, если из одной базы вызывается процедура\функция находящаяся в другой базе, то программа во время ее отладки переключает контекст на базу в которой находится вызываемый модуль. Так что проблем с разными базами быть не должно.
Спасибо за отзыв!
Да, абсолютно верно. Уже проверил.
Просто немного коробит когда коннектишся обязательное указание схемы.
Спасибо за ответ.
Неактивен
Здравствуйте, нашла ещё один баг или не баг не знаю даже
в общем если есть создание временной таблицы
CREATE TEMPORARY TABLE `table3` CHARACTER SET utf8 COLLATE utf8_bin
SELECT
ss.`x2`, ss.`x4`
FROM
`table1` AS ss,
`table2` AS s
WHERE
ss.`x1` = y1 AND
ss.`x2` > 0 AND
ss.`x3` = s.`x3` AND
ss.`x4` = s.`x4` AND
s.`x5` = y5 AND
ss.`x3` = y3
GROUP BY ss.`x4`;
то отладка завершается ошибкой, которая говорит о том, что поле y1 не существует, хотя на самом деле - это не поле, а переменная
Неактивен
Страниц: 1 2