2013年5月31日金曜日

【流通小売知識】日配

一言でいうと毎日配送される商品。
発注が止まるとかなり焦る。

以下、Wikipediaより抜粋
日配食品(にっぱいしょくひん)とは、主に流通業界で使われる用語で、ある種の食品を総称する言葉である。デイリーフーズデイリー食品デイリー日配品日配等とも呼ばれる。 近い意味を持つ語として「チルドグロサリー」(略してチルド)がある。
具体的にどのような食品を指すのかは業者によって異なるが、牛乳乳製品、畜産加工品、チルド飲料豆腐コンニャク納豆漬物練物、生麺類、生菓子など、
  • メーカーによって生産され
  • 冷蔵を要し
  • あまり日持ちのしない
食品のことを指すことが多い。 青果、鮮魚などの生鮮食品は含まれない。
ただし、冷蔵を要しないものの、賞味期限が数日間しか設定されていないパンや、畜産物であるなどが含まれる場合も多く、モヤシのような(工場で生産される)青果や、日持ちのする冷凍食品が含まれる場合もある。
また、ハムソーセージなどの畜産加工食品を除外し、生鮮食品として扱う場合もある。
特に牛乳や乳製品、パンといったものを「洋日配」、豆腐や納豆、練物といったものを「和日配」と呼ぶ。

ウィンドウ非表示でプログラムを実行する

ウィンドウを表示しないでバッチやプログラムを実行する方法について。

◆背景

  1. 誰かが操作する可能性のあるマシンでバッチやプログラムを実行する場合、ウィンドウを表示させたくない。
  2. 最小化はSTARTコマンドのMINオプションで簡単にできるが、最小化してても誤操作でウィンドウを閉じるケースがある。
  3. システムをよく知らない人からすると開いた覚えのないウィンドウがウィルスみたいで怖いので、やっぱりウィンドウを閉じる。

  こんなことがあるので、できればウィンドウは最小化すらせず非表示にしたいもの。


◆方法
  VBSを使う。

  【イメージ】

    [VBS実行用バッチファイル]
     ↓
    [プログラム非表示実行用VBS]
     ↓
    [動かしたいプログラム]

  【ソース例】

    [VBS実行用バッチファイル]   …C:\実行用.BAT
    [プログラム非表示実行用VBS] …C:\実行用.VBS
    [動かしたいプログラム]      …C:\work\対象.EXE

[VBS実行用バッチファイル]

      Cscript C:\実行用.VBS C:\work\対象.EXE


    [プログラム非表示実行用VBS]

      CreateObject("WScript.Shell").Run WScript.Arguments(0) , 0


2013年5月23日木曜日

Windowsのバックアップ用コマンド:ROBOCOPY

知らなかったのでメモ。

ROBOCOPYコマンドは「Windows の堅牢性の高いファイル コピー」だそうです。

バックアップ用のS/Wを購入するほど予算がない場合や、
そこまで堅牢なバックアップの仕組みが要らない場合に使える。
UNC対応してるし、リトライするし結構便利。


VBSなどでメール送信の仕組みを作っておいて、
ERROLEVELとの組み合わせで最低限の物は作れるかな。

2013年5月22日水曜日

【Excel2007】名前定義がないのにシートコピーで確認ダイアログが表示される時の対処

邪魔な名前定義があると、Excelのシートをコピーする際に
確認のダイアログが複数出てきてかなり面倒くさい。

[数式]の[名前の管理]で削除したら大体は解消するんだけれど、
稀に名前定義を全部消しても確認ダイアログが表示される場合がある。


ちょっと検索してみたけど解決策が出てこなかったので無理から対処してみた。

以下、メモ。
※対象のファイルをバックアップしてからやってみること。

1)対象のファイルの拡張子を「zip」に変更して解凍する。
 Excel2007の拡張子「xlsx」は実体はzipファイルです。

2)その中でxlフォルダにあるworkbook.xmlを開く。

3)<definedNames>~</definedNames>を削除する。
 子タグの<definedName>のname属性に見覚えがあるはず。

4)workbook.xmlを保存する

5)解凍して出来たファイル群をzip圧縮して、拡張子を「xlsx」に変更する。


これで出来たファイルをExcelで開いてシートをコピーしてみると確認ダイアログが表示されなくなる。

2013年5月20日月曜日

イベントログを出力するバッチコマンド

eventcreateコマンドでイベントログを出力できる。


eventcreate /L Application /SO "test" /T INFORMATION /id 563 /d "テスト"

でWindowsログのアプリケーションのイベントログに
 イベントソース:「test」
 レベル:「Information(情報)」
 イベントID:「563」
 ログ内容:「テスト」
と出力される。

(注意事項)
 ・レベルは、INFORMATION(情報)、WARNING(警告)、ERROR(エラー)
  ※SUCCESS(成功)もあるが使用頻度が低く、アプリケーションログだと情報扱いになるので除外。
 ・イベントIDは1~1000
 ・管理者権限が必要。
  (コマンドプロンプトの場合、管理者として実行する必要がある。)


以上

2013年5月15日水曜日

SQLServerのテーブル一覧(レコード数付き)、ストアド一覧

SQLServerでテーブルやストアドの一覧を取得する。
どこかで拾ってちょびっと手を加えた版

◆テーブル一覧
SELECT name FROM sysobjects WHERE type = 'P'

◆テーブルのレコード件数一覧

SELECT a.name, b.row_count
FROM sys.tables a WITH(NOLOCK)
LEFT JOIN sys.dm_db_partition_stats b WITH(NOLOCK)
ON a.object_id = b.object_id
ORDER BY a.name


◆ストアド一覧
SELECT name FROM sysobjects WHERE type in ('U','S')

2013年5月10日金曜日

SQLServerでタイムアウトを発生させたい

うちのパッケージだけかもですが・・・

テストのために意図的にクエリータイムアウトを発生させたい場合、
対象のテーブルにTABLOCKとXLOCKをかけると発生できるっぽい。

例)
begin tran

select *
from Table with(tablock,xlock)

--rollback

たった今手打ちしたSQLなのでそのまま動くかは謎