Публікації
Показано дописи з 2011
Oracle 10g на Windows 7 x64
- Отримати посилання
- X
- Електронна пошта
- Інші додатки
Понадобилось поставить клиент Oracle 10g на 64-битной Windows 7. Скачал с oracle.com инсталляцию (10204_vista_w2k8_x64_production_client.zip), распаковал и попробовал запустить setup.exe. Суть появившейся ошибки сводилась к: Checking operating system version: must be 5.0, 5.1, 5.2 or 6.0 . Actual 6.1 Для того, чтобы таки поставилось пришлось сделать следующее: 1. В файликах client\stage\prereq\client\refhost.xml и client\stage\prereq\client_prereqs\client\refhost.xml добавил секцию: <OPERATING_SYSTEM> <VERSION VALUE="6.1"/> </OPERATING_SYSTEM> в HOST\CERTIFIED_SYSTEMS. 2. В файле client\install\oraparam.ini поправил параметр Windows в секции [Certified Versions]. Поменял его значение Windows=5.0,5.1,5.2,6.0 на Windows=5.0,5.1,5.2,6.0,6.1 После этого инсталляция нормально запустилась.
Найти ошибку
- Отримати посилання
- X
- Електронна пошта
- Інші додатки
Только что коллега обратился с вопросом: почему один и тот же запрос возвращает разные результаты в зависимости от того, вызван он прямо или "упакован" в функцию. Я потратил минут 20 на анализ простого кода, но так ничего и не нашел. Запрос отдельно: select max ( LENGTH ) from TUBES where TUBES.NAME LIKE 'tube1' Функция: create or replace FUNCTION "GET_TUBE_LENGTH" ( NAME IN VARCHAR ) RETURN NUMBER AS depth NUMBER ; BEGIN select max ( LENGTH ) into depth from TUBES where TUBES.NAME LIKE NAME; RETURN depth ; END GET_TUBE_LENGTH; Если выполнить запрос отдельно, получаем NULL Если вызвать функцию: SELECT GET_TUBE_LENGTH ( 'tube1' ) FROM DUAL ; получаем 1000! Еще через 10 минут, он написал мне что решил проблему: Название параметра функции совпадает с именем поля в таблице TUBES и оператор like сравнивает не со значением параметра, а с значением поля.
Обновление сервиса "Формы и Бланки"
- Отримати посилання
- X
- Електронна пошта
- Інші додатки
После долгого перерыва мы, наконец-то, выложили новую версию сервиса " Формы и бланки ". Что мы сделали: Опубликовали новые реквизиты для уплаты штрафов ГАИ и для перечислений в пенсионный фонд Исправили ошибки, которые периодически возникали при генерации документов Ускорили выполнение части запросов Подготовили систему к появлению нескольких интересных функций. Так о чем я... О том, что все самое интересное - впереди.
.NET Reflector становится платным
- Отримати посилання
- X
- Електронна пошта
- Інші додатки
Сегодня получил письмо от компании Red Gate, в котором они с глубокими извинениями сообщают, что 7-я версия .NET Reflector-а станет платной. 35 баксов. Примерный перевод причины такой: Мы обещали, что эта тулза будет бесплатной и 2 года честно пытались это обещание выполнять. Но мы коммерческая компания и, если мы не получаем на продукте прибыли, то хотя бы должны компенсировать затраты на разработку. Извините нас за этот шаг, но иначе мы не можем поддерживать утилиту в актуальном состоянии. Жалко, но их можно понять. И думаю, это тот редкий случай, когда многие заплатят.
Вся правда жизни в одной картинке
- Отримати посилання
- X
- Електронна пошта
- Інші додатки
В последние годы, первые минуты наступившего года мы проводим именно так
- Отримати посилання
- X
- Електронна пошта
- Інші додатки
Измерение времени работы программы
- Отримати посилання
- X
- Електронна пошта
- Інші додатки
Для меня производительность программы была всегда очень важным моментом. Было время, когда это даже приводило к ссорам с партнерами по команде. Но речь не об этом. В .NET-е я всегда использовал DateTime для измерения временного промежутка - не очень точно, но когда промежутки измеряются секундами - вполне достаточно. После моей предыдущей заметки один из коллег рассказал мне о классе Stopwatch . В принципе - суть та же, но код выглядит немного элегантней: var watch = new Stopwatch ( ) ; watch. Start ( ) ; // тут кусок кода, время работы которого мы измеряем watch. Stop ( ) ; Console. WriteLine ( "Elapsed: {0}" , watch. Elapsed ) ; Век живи - век учись.