Хранимые процедуры в MySQL 5.0

Столкнулся с тем, что иногда гораздно удобнее и правильнее спрятать логику работы базы в хранимые процедуры.

1. Вызов процедуры, которая возвращает результат:
CREATE PROCEDURE returnresult(IN userid INT)
BEGIN
SELECT * from ... ;
END;

Тогда
<?php mysql_query('call returnresult(2)');'?>
выдаст ошибку “PROCEDURE base.returnresult can’t return a result set in the given context “.
Проблема в том, что библиотека mysql не поддерживает мульти-запросы. Для возврата результата из хранимой процедуры следует использовать улучшенную версию - библиотеку mysqli (improved).
Заменим в коде функции mysql на mysqli, (на локальном сервере для windows - добавим в файл php.ini строку: extension=php_mysqli.dll; аналогичной команды для *nix не знаю.). После этого все заработало.

2. Рекурсивные процедуры в mysql

При попытке использовать рекурсию mysql выдал:

Recursive limit 0 (as set by the max_sp_recursion_depth variable) was exceeded for routineset …

Лечится запросом “SET max_sp_recursion_depth= 4″ // глубину рекурсии - в зависимости от задачи. Мне много не надо было. :)

Опубликовано Январь 12, 2008 | автор: levik  |  Без комментариев »

На жестком диске видно только 137 Гигабайт даже в BIOS

Вы поставили новый (или не совсем новый) жесткий диск (в быту винчестер, хард, винт), а в биосе (BIOS) его объем определяется как 137 Gb(Гигабайт) (или 136). Хотя на этикетке, на корпусе диска, на коробочке и инструкции, и даже на сайте производителя написано, что объем диска больше ( 160, 200, 500 и т.д.).

Не стоит сразу хвататься за сердце.. Конечно, производители жестких дисков нас обманывают, но не на столько. Как минимум, можно проверить диск на другом компьютере (естественно, имеется ввиду другая конфигурация, желательно более “современная”)

Причем, использование программного обеспечения в Windows (тестировалось на XP Professional) увеличить объем не позволяет - диспетчер дисков, Partition magic и ещё несколько утилит полный размер диска не определяют.

Вообще, похожая ситуация с уменьшением объема жесткого диска возникает при попытке подключить жесткий диск большого объема к материнской плате “в возрасте” - просто на момент выхода материнской платы жестких дисков такого объема не было даже в планах. Но объем в 137 гигабайт особенно характерен для материнских плат gigabyte.

Скорее всего решить “проблему 137 гигов” сможет обновление BIOS до последней версии - качать с сайта производителя.

Перед попыткой найти пропавшие гигабайты убираем с диска всю нужную информацию (после проделанных операций диск будет девственно чист)

  • обновляем BIOS - инструкции и прошивку искать на сайте производителя материнской платы
  • для переразметки можно воспользоваться утилитой mhdd (операции nhpa, config), либо поискать утилиты на сайте производителя жесткого диска (лучше запускать на компьютере с другой материнкой)

После установки винчестера на “обновленную материнку” смотрим и радуемся “полному объему”. Если не получилось… Не знаю…

http://www.ihdd.ru/forum/polnyi-obem-diska-v-xp-ne-opredelyaetsya-vt8066.html - еще интересная утилита
http://www.ihdd.ru/hdd-capacity-restore

Опубликовано Декабрь 27, 2007 | автор: levik  |  Без комментариев »

Lsass.exe - Неправильный формат конечной точки

lsass.exe: Неправильный формат конечной точки. (lsass.exe: The endpoint format is invalid) - такое сообщение появляется при загрузке, после попытки восстановления системы. “Симптомы” до восстановления бывали разные - компьютер начинал загружаться, но на определенном моменте “останавливался”, причем загрузка в безопасном режиме происходила нормально.

Однако, после попытки восстановления, “нормальная” загрузка прекращалась с ошибкой “неправильный формат конечной точки”, после чего компьютер снова перезагружался. Попытки выбрать другую точку восстановления приводили к такому же результату - были проверены несколько точек до “месяца назад”. Компьютер возможно загрузить только в безопасном режиме.

Найденные возможные причины ошибки “неправильный формат конечной точки“:
-    наиболее вероятно поражение вирусом;
-    повреждение реестра;
-    повреждение системных файлов (помогут переустановка SP2 или проверка системных файлов с помощью команды sfc /scannow);
-    повреждение диска (chkdsk);
-    эксперименты с файлом подкачки или системными службами (верните установки по умолчанию);
-    драйверы видеокарты (установите свежие).

Как ни странно, мне ничего из вышеперечисленного не помогло:
- LiveCD антивирус ничего не нашел;
- реестр не проверял - утилиты под рукой не оказалось;
- sfc в безопасном режиме ругнулась на “Сервер RPC”, попытка переустановить SP2 в безопасном режиме тоже не увенчалась успехом;
- chkdsk прошел, однако формату конечной точки особо не помог :) ;
- все значения для файлов подкачки поставил “авто”.. службы - по умолчанию;
- драйвера видеокарты удалил вообще. :) В безопасном же режиме без драйверов работает…

Воспользовался установочным диском WinXP SP2 (с которого была установлена система) - после восстановления (не через консоль) файлов XP сообщение о неправильном формате конечной точки пропало.

Система, похоже, не пострадала - 20 минут, “полет нормальный”.

зы. Видимо, решение слишком очевидно, потому как такого я не нашел.. :) все найденные мной варианты решения проблемы Lsass.exe перечислены выше. Ну, или плохо искал…

Опубликовано Декабрь 17, 2007 | автор: levik  |  Комментарии (2) »

FreeBSD и Sony Vaio pcg-z600lek uhub1: port 2 reset failed

После установки FreeBSD на ноутбук Sony Vaio pcg-z600lek при загрузке выдает ошибкуuhub1: port 2 reset failedНа форумах говорят, что это характерно для случаев, когда usb-панель плохо закреплена. Ничего болтающегося в корпусе найдено не было. Вообще все попытки найти этот UHUB1 завершились неудачей. Логичным продолжением было бы отключение порта (как сказать системе, чтоб забила?)usb - выход выдаёт как uhub0usb на репликаторе - как uhub1 port 3Из советов на форуме:

1. расширитель usb есть в порт pcmcia, и ещё вроде там есть порт мини-юсб, с которого есть переходник на стандартный юсб.2. с модема, если поставить нормальный драйвер, и поиграться с его региональными настройками можно выходить в интернет.3. оперативка там вроде нестандартная(квадратная с двумя разьёмами внизу), наверно не найти (бывала такая на суперслимах sharp и больше нигде не видел).5. это порт “репликатор” к которому подключалась панель со стандартными lpt, com, вторым usb и т.п.(шёл в комплекте). На эти порты существуют usb-преобразователи.

С другого форума:

На мой взгляд, есть несколько вариантов:1) плохой вариант: убрать из ядра поддержку USB девайсов, т.е. просто пересобрать ядро. Но может у вас есть и другие USB-девайсы, работающие?…2) ещё хуже: убрать из /etc/syslog.conf ругаклю на консоль. Не делайте так, козлёночком станете, рано или поздно.3) лучше: лучше напишите в англоязычный список рассылки.4) тоже вариант: расслабьтесь, чтоб это была ваша главная проблема!

Забугорный форум наводит на мысль, что, возможно USB действительно сломан? :)

> uhub7: port 3 reset failed> uhub7: port 4 reset failedI wonder if my laptop’s USB is physically broken.I think it has always had this problem but infrequent, but now theproblem is near continuous and often anything using USB is unusable.

http://www.nout.ru/viewtopic.php?p=22549#22549http://forum.nbprice.ru/1/topic1826-1.htmhttp://www.freebsddiary.org/ibm-thinkpad-t41.phpСо временем проблема стала неактуальна, однако, если кто подскажет решение - буду благодарен.

Опубликовано Декабрь 12, 2007 | автор: levik  |  Без комментариев »

Office Outlook - Ошибка Symantec Antivirus

При запуске MicroSoft Outlook 2000 Появляется сообщение об ошибке:

Надстройку “C:\Program Files\Symantec_Client_Security\Symantec Antivirus…” не удается установить и загрузить. Устраните неполадку с помощь команды “найти и восстановить” из меню “справка”. Не удается загрузить “C:\Program Files\Symantec_Client_Security…”.  возможно, не хватает памяти, системных ресурсов или файла dll.

Судя по всему, ранее на машине стоял Symantec Antivirus, библиотеки которого подгружаются в MS Outlook при запуске.

Пробуем найти библиотеки в “Настройки - дополнительно - Дополнительно - Приложения (или COM ) (В моем случае название было не совсем похожим на Symantec - что-то вроде LDVP) и снимаем галочку

Если не помогает - открываем реестр и пытаемся найти все, что связано со словом Symantec (обнаружил это дополнение в ветке HKLM/Software/Microsoft/Office/Outlook/Addins/ - где и был прописан путь к библиотеке DLL “C:\Program Files\Symantec_Client_Security\Symantec Antivirus…”

Да и вообще, периодически, стоит подчищать реестр компьютеров.
Кто чем пользуется?

upd. можно воспользоваться одной из утилит для удаления антивирусов - в конкретном случае см. пункт Norton Antivirus

Опубликовано Декабрь 7, 2007 | автор: levik  |  Комментарий (1) »

Установка SMF на Denwer - ошибка session.save_path

При установке форума SMF  (simplemachines forum) на Denwer (”Джентельменский набор Web-разработчика”) получаем в ответ ругательное сообщение форума, мол:

Please inform your host that the session.save_path specified in php.ini is not valid! It needs to be changed to a directory that exists, and is writable by the user PHP is running under.

В файле php.ini следует найти строку
session.save_path = “/tmp”
и заменить в ней полный путь на соответствующий windows:
session.save_path = “z:\tmp”

После чего не забываем перезапустить denwer (restart servers | restart Denwer).

Опубликовано Декабрь 2, 2007 | автор: levik  |  Комментарии (3) »

LiveCD - Загрузка со сменного носителя

Live CD (он же LiveCD, а если целиком - CD Live Distro) - если “дословно” живой компакт диск - операционная система, которая позволяет загрузиться со сменного носителя. Довольно часто, так же словом называют сам носитель, независимо от его типа (LiveDVD или LiveUSB).

Особенность LiveCD состоит в том, что все данные, необходимые для работы на компьютере хранятся на сменном носителе - не требуется использовать жесткий диск.

Читать целиком »

Опубликовано Ноябрь 26, 2007 | автор: levik  |  Без комментариев »

Прозрачность png в ie 6 и ниже

Internet Explorer до 6 версии включительно “по умолчанию” не отображает прозрачность у PNG-изображений.

Очень подробно все проблемы, связанные с отображением PNG картинок в IE расписаны у Игоря:

  • Суть и решение проблемы прозрачности PNG в IE6
  • Краткая информация о Фильтр AlphaImageLoader
  • проблема “Не работают ссылки на png-фоне”
  • PNG в IE темнее - искажение цветов PNG изображений в Internet explorer

http://www.tigir.com/alpha_png.htm

UPD - неплохая статья про PNG и IE

http://www.xiper.net/html-and-css-tricks/glyuki-brauzerov/ie6/png-transparency-ie6.html

Опубликовано Ноябрь 21, 2007 | автор: levik  |  Без комментариев »

Реальный объем жесткого диска или где мои гигабайты?

Жесткий диск

При покупке жесткого диска на 200Gb (Гигабайт), после форматирования размер его чуть больше 185 Гигабайт. Куда же делись оставшиеся 15 Гигабайт? Быть может, виной всему неправильный формат? Нам подсунули не тот диск? Обманули?

Поводов для беспокойства нет. Однако, нас действительно обманули… :) “Ловкость рук и никакого мошенства”

Все дело в том, что производители накопителей (кстати, это пошло ещё со времен гибких дисков - дискет, а быть может еще раньше) слегка “лукавят”, указывая емкость из расчета 1000 байт в 1 Кбайте (вместо машинных 1024).

Таким образом диск в 200 Гигабайт = 200 * 1 000 000 000 байт, что в переводе на “настоящие” 1024 Гигабайты (1024*1024*1024) составит около 186 Гигабайт. Получается, что наши “пропавшие” гигабайты (почти 15! из 200 ~ 7%) - это своеобразный маркетинговый(?) ход производителей жестких дисков. Хорошо это или плохо, но такая разница объемов жестких дисков на сегодняшний день воспринимается как норма. Поэтому переживать не стОит.

ps. Если Вам посчастливилось видеть жесткий диск, у которого объем больше (или хотя бы равен) заявленному - было бы интересно узнать…

Опубликовано Ноябрь 15, 2007 | автор: levik  |  Без комментариев »

Вкладка Безопасность или как выставить права на файл в Windows

Если диск отформатирован в NTFS, то имеется возможность выставить права на доступ к любому файлу или папке на этом диске, или целому диску.

Однако, по умолчанию, вкладка “Безопасность” скрыта в windows XP. (в контекстном меню - вызов контекстного меню щелчком правой кнопокой мыши или клавишей “контекстное меню” - на файле/папке/диске выбираем пункт “Свойства” и ищем вкладку “Безопасность“.)

Что делать, если отсутствует вкладка “Безопасность”?

Вообще-то она есть, просто она скрыта. Нужно её показать. :). В окне проводника выбираем Сервис - Свойства папки - вкладка Вид и ищем и снимаем галочку “Использовать простой общий доступ к файлам (рекомендуется)”.

Для англоязычной Windows все аналогично - вкладка “Security” для томов в NTFS. Галочку искать тут:”Tools” - “Folder Options” - вкладка “View”, раздел “Advanced Settings” - “Use simple file sharing (Recommended)”.

UPD Работает только для Windows XP Professional; в Windows Home Edition для назначения прав доступа к файлам без использования сторонних утилит не обойтись (если ошибаюсь - поправьте.)

Опубликовано Ноябрь 10, 2007 | автор: levik  |  Комментарий (1) »