ellgree: (WestUkraine)
[personal profile] ellgree
Предупреждаю, не-айтишникам скорее всего не будет интересно.
Один австралийский клиент столкнулся с заменой старых сим-карточек новыми и попросил создать простенький портал для своих сотрудников с формой, куда сотрудник вводит номера новой и старой сим-карты. Задача плевая, нарисовал на коленке, клиенту понравилось.
Правда у клиента есть списки номеров новых карточек, сгруппированных по филиалам, теперь портал должен опознавать сотрудника и позволять ему ввести номер карточки только из списка его филиала.
Нет проблем, добавил функционал. Интересуюсь, в каком формате клиент передаст списки.
Клиент передавать списки не будет, будет импортировать самостоятельно, через ODBC при помощи клиента FileMaker в базу данных под MySQL.
Клиент просит, чтобы данные проверялись на стороне MySQL сервера. Список проверок и сообщений об ошибках прилагается.
ОК, думаю, не нужно парсить данные, добавлю в MySQL хранимую процедуру — триггер на добавление записи. Пишу:
CREATE TRIGGER db_name.before_insert_lookup_data_tbl
     BEFORE INSERT ON db_name.lookup_data_tbl FOR EACH ROW
     BEGIN
          IF NEW.sim_card_old AND !(NEW.sim_card_old REGEXP "^[0-9]{9}[a-zA-Z]?$")
          THEN
            SIGNAL SQLSTATE '45000'
               SET MESSAGE_TEXT = 'Wrong format of the old SIM card number';
          ELSEIF ... и так далее

Оказывается, что у клиента MySQL-сервер версии 5.1, никаких SIGNAL'ов он не понимает.
Обновлять сервер никто не будет, крупные компании консервативны до безумия.
Сижу, размышляю.
Создать ошибку я могу. Например, могу подменить добавляемые данные и вызвать событие "Повторяющаяся запись" (Duplicate entry).
Этот вариант не подходит, клиент хочет знать что именно не так с его данными.
Собираюсь писать ответ, вроде "задача в полном объеме невыполнима", но решаю сначала перекурить.
После третей затяжки складывается цепочка рассуждений:
Как я еще вызвать ошибку в хранимой процедуре? Делением на ноль? Тоже ничего не дает.
Вызов несуществующей процедуры? А что это может дать? Название процедуры может быть любым?
Это уже интересно, надо проверить.
Заменяю в триггере все сигналы на вызовы процедур с именами, содержащими сообщение об ошибке,
вроде 'Wrong format of the old SIM card number', тестирую добавление неправильной записи и получаю результат:

          "#1305 - PROCEDURE db_name.'Wrong format of the old SIM card number' does not exist"

Не очень красиво, но у клиента претензий не возникло :)
Может у кого есть решения лучше?

Date: 2014-04-10 07:05 am (UTC)
From: [identity profile] freesopher.livejournal.com
:) А чем еще жизнь насыщена, акромя трудо выебудней?

Date: 2014-04-10 07:26 am (UTC)
From: [identity profile] ellgree.livejournal.com
Так, ничего особенного.
Слежу за событиями на Юго-Востоке Украины, за мировым спектаклем под лозунгом "загоним русского медведя обратно в уравнение Нэша", готовлю сани к майским праздникам (собрались семьей в Нидерланды прокатиться), посматриваю одним глазом на предложения хедхантеров в LinkedIn'е.

Date: 2014-04-10 07:28 am (UTC)
From: [identity profile] freesopher.livejournal.com
"собрались семьей в Нидерланды прокатиться"
----
:) Курить будем?

Date: 2014-04-10 07:31 am (UTC)
From: [identity profile] ellgree.livejournal.com
Тю, в Чехии с куревом гораздо проще, чем в Амстердаме.
Там теперь в кофешопах только своим гражданам отсыпают.
А мы на тюльпаны полюбоваться и на Дне Королевы поприсутствовать.

Date: 2014-04-10 07:44 am (UTC)
From: [identity profile] ellgree.livejournal.com
Отвыкаю от ЖеЖешечки, ищу на комменте кнопку Like :)

Date: 2014-04-10 07:45 am (UTC)
From: [identity profile] freesopher.livejournal.com
Где еще в сетях висишь?

Date: 2014-04-10 07:46 am (UTC)
From: [identity profile] ellgree.livejournal.com
Присутствую почти везде.
Вишу в основном в фейсбуке.

Date: 2014-04-10 07:56 am (UTC)
From: [identity profile] live-in-odessa.livejournal.com
если поскроллить этот тред колесом мышки, появляется эффект зума страницы =)

Date: 2014-04-10 07:58 am (UTC)
From: [identity profile] ellgree.livejournal.com
У меня нет эффекта. Отсыпь? :)

Date: 2014-04-10 08:43 am (UTC)
From: [identity profile] ellgree.livejournal.com
Тебе смешно, а у меня палец устал :)

December 2016

S M T W T F S
    123
45678910
11121314151617
181920212223 24
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 26th, 2017 01:45 am
Powered by Dreamwidth Studios