Я выполняю запрос с mysql хранимой процедурой:
$AddProf_qr = mysql_query("call AddStudent('$d_Pass', '$d_Titl', '$d_Firs', '$d_Midd', '$d_Last', '$d_Addr', '$d_City', '$d_Stat', '$d_County', '$d_Zipc', $d_Gend, '$d_Birh', '$d_Phom', '$d_Phoh', '$d_Phoo', '$d_Email', '$d_Webs', '$d_Natn', '$d_Profsn', '$d_Compny', '$d_Desig', $d_ProfAcc)", $this->c_remote) or die ("first call" . mysql_error($this->c_remote));
Я, как предполагается, получаю всего один результат вызова: @@ ИДЕНТИФИКАЦИОННЫЕ ДАННЫЕ = число;
$AP_result = mysql_fetch_array($AddProf_qr);
$CurrentSID = $AP_result['@@IDENTITY'];
который хорошо работает. но когда я выполняю другое mysql право запроса на обновление после этого оно дает ошибку при высказывании:
Ошибка: 2014 (CR_COMMANDS_OUT_OF_SYNC) сообщение: Команды из синхронизации; Вы не можете выполнить эту команду теперь
я попытался вставить:
mysql_free_result($AddProf_qr);
но тем не менее то же.
Вызов MySQL выполняется прекрасный, также остальная часть выполнений сценария без вышеупомянутого проблем комментируется. но они не работают одновременно. Мое лучшее предположение, вызов делает что-то, что это портит это.
Для начала это отличный источник regexps: http://www.regular-expressions.info . Посетить его, ткнуть и играть вокруг. Далее API java.util. Образец
имеет краткий обзор regex узоров.
Вернемся к вашему вопросу: вы хотите сопоставить четыре последовательные группы из четырех цифр, разделенных дефисом. Одна группа из 4 цифр может быть представлена как
\d{4}
Четыре цифры, разделенные дефисом, могут быть представлены как:
\d{4}-\d{4}-\d{4}-\d{4}
Чтобы сделать его короче, можно также представить одну группу из четырех цифр и три последовательные группы из четырех цифр с префиксом дефиса:
\d{4}(-\d{4}){3}
Теперь в Java можно использовать String # matchs ()
для проверки соответствия последовательности заданному regex.
boolean matches = value.matches("\\d{4}(-\\d{4}){3}");
Обратите внимание, что я избежал обратной косой черты \
другой обратной косой чертой \
, поскольку обратная косая черта имеет особое значение в Последовательности
. Для представления фактической обратной косой черты необходимо использовать \\
.
Эй, Джастин, как и вы, я недавно думал о добавлении getters в мой объект домена только для записи ради единичного тестирования, но теперь я убежден, что был неправ. Если предположить, что вы купились на идею домена только для записи, то если у вас вообще есть проблемы, вы просите о неприятностях. Принцип домена только для записи предполагает запуск события из объекта домена или чтение из проекции, написанной объектом домена, или что-то подобное. Как только вы обнажаете объекты, вы начинаете раскрывать «форму» объекта, и, как говорит Грег Янг, «объекты домена имеют поведение, а не форму».
При этом я борюсь с вашим тем же вопросом... Как выполнить модульное тестирование объекта домена только для записи? Вот мой текущий план: Я думаю сделать так, чтобы Объект Домена инициировал Событие Домена, сказав «Эти свойства изменились», и в моем модульном тесте я зарегистрируюсь для него, прежде чем отправить Команду. Ознакомьтесь с публикацией Уди Дахана о доменных событиях здесь , а также смотрите , что говорит Эрик Эванс о доменных событиях .
-121--1570849-Хранимая процедура возвращает несколько результатов. Смотрите это сообщение
Решение?
Хранимая процедура возвращает несколько результатов. См. в этой публикации
Решение?
Использование понимания списка
>>> from datetime import date, timedelta
>>> d = [date(2010, 2, 23),date(2010, 2, 24),date(2010, 2, 25),date(2010, 2, 26),date(2010, 3, 1),date(2010, 3, 2)]
>>> date_set=set(d)
>>> missing = [x for x in (d[0]+timedelta(x) for x in range((d[-1]-d[0]).days)) if x not in date_set]
>>> missing
[datetime.date(2010, 2, 27), datetime.date(2010, 2, 28)]
-121--2632568- Проверьте здесь: http://us3.php.net/manual/en/function.mysql-query.php В комментариях один парень утверждает, что заставил его работать, установив флаг подключения на MYSQL_MULTI_RESULTS (131072).
Но было бы гораздо лучше использовать mysqli...