суббота, августа 19, 2006

Шутки от MS SQL Server - 2

(по крайней мере, MS SQL 2005 так шутит)

Выяснилось, что даже при указании для некоторого NOT NULL поля таблицы значения по умолчанию в это поле нельзя записывать null.

Т.е., если поле col1 определено как NOT NULL default ('anystring'), то нельзя написать INSERT INTO (col0, col1) VALUES (@p0, @p2) и параметру @p2 присвоить null (DBNull.Value). Тут получится выкидыш-exception - низя в такое поле совать NULL. В этой ситуации поле нужно вовсе в списки не упоминать, тогда ему будет присвоено значение по умолчанию.

Как-то это неочевидно, а в BOL если и написано об этом, то где-то весьма далеко - специально искал, да не нашёл.

Шутки от MS SQL Server

(по крайней мере, SQL EveryWhere так шутит)

Запоминаю в таблице данные файла (имя и дату изменения), чтоб в дальнейшем повторно этот файл не обрабатывать. Фокус вылезает при извлечении запомненной даты и сравнении её с датой из файловой системы. Если файл не изменялся, результат такого сравнения - как у блондинки: то ли больше, то ли меньше. Выяснилось, что при сохранении пропадают сколько-то миллисекунд (округление такое, что ли?)... Пришлось изобретать округление до секунды и пользоваться такими округлёнными значениями.

public static DateTime RoundToSecond(DateTime date) {
           
return new DateTime(
            date.Year, date.Month, date.Day,
           date.Hour, date.Minute, date.Second);
}

пятница, августа 18, 2006

Пост из Writer

Новую примочку придумали. Поглядим...

Как-то не сразу постится...

private void DoFile(string path) {
         iisLogsTested++;
        if (TestFileToProcess(path)) {
              log.WriteFileWithTimeStamp(
"Processing of file [{0}]", path);
              ProcessFile(path);
        }
  }

Нормально, вроде. Пользоваться можно.

P.S. Одновременно с этой примочкой поставили тулбар, с которым моя машина не справляется :-( Пришлось снести...

вторник, августа 08, 2006

Бесплатный антивирус в Windows 2003

Жлобятся производители антивирусов дать возможность  запускать бесплатные версии на Windows 2003. А без антивируса как-то неуютно.
Поднапрягся,  настроился на работу с ClamWin - бесплатный, по размеру небольшой, Outlook проверяет на ходу, базы обновляют довольно оперативно, да и плохого про него не слышно. Одного не хватает - нет резидентного файлового сканера. Да и программка обновления баз в трее великовата.  
Сделал вот как: 
1. Программку из трея прогнал, заменил её задачей nnCron'а :Time: 17 */3  * * * *
Action:
ONLINE?IFStartIn: "G:\avir\.clamwin" ShowMinimized NormalPrioritySTART-APP: D:\Program Files\ClamWin\bin\freshclam.exe --config-file=G:\avir\.clamwin\freshclam.cfg --log=G:\avir\.clamwin\log\ClamUpdateLog.txt --datadir=G:\avir\.clamwin\db --quietTHEN
2. Вместо сканера настроил программку LogMon на сканирование новых файлов в каталоге My Downloads (сюда загружаю файлы из Сети). Команда для этого:
D:\Program Files\ClamWin\bin\clamscan.exe -d G:\avir\.clamwin\db --tempdir=g:\temp\ClamvByaka - l G:\avir\.clamwin\log\ClamScanLog.txt "%File="DP\\N.E"" 
3. Сгружальщик FlashGet настроил на выполнение для каждого загруженного файла команды сканирования D:\Program Files\ClamWin\bin\clamscan.exe -d G:\avir\.clamwin\db -- tempdir=g:\temp\ClamvByaka -l G:\avir\.clamwin\log\ClamScanLog.txt
Жить можно...