WindowsコンピューターにはODBCドライバーが既にインストールされているため、SQLServer用のODBCドライバーを使用している可能性があります。osql
その場合、DOSからT-SQLステートメントを実行するためのMicrosoftのユーティリティを入手できる可能性があります。これがMSDNのドキュメントです:
http://msdn.microsoft.com/en-us/library/aa214012(v=SQL.80).aspx
これはSQLServer2000用に設計されているため、SQL Serverの新しいバージョンへの接続に問題が発生する可能性がありますが、試してみる価値はあります。それが機能する場合は、SQLサーバーに接続するために特別なものをインストールする必要はありません(ただし、サーバーのODBCデータソース名を作成する必要がある場合があります...)。Windows Vista +から、[スタート]をクリックし、「 ODBC 」と入力して、ODBCデータソースエディターを開きます。
を使用SQLCMD
するには、ネイティブクライアント、または少なくともSNACをインストールする必要があります(ディスカッションスレッド:http://us.generation-nt.com/answer/how-install-only-sqlcmd-exe-utility-help-87134732.html) Native Client全体をインストールせずに単純に実行SQLCMD
する(ただし、SNACをインストールする必要があります)。SNACのことは聞いたことがないので、少し調査が必要です。何でもインストールすると同じ抵抗が発生すると思います。その抵抗を克服できるのであれば、ネイティブクライアントをインストールするのがおそらく最善の策です。
経過時間は。を使用%DATE% %TIME%
して、現在の日付/時刻を取得できます。したがって、次のようなものを使用して、開始時刻をキャプチャし、プロセスを実行してから終了時刻をキャプチャすることができます。これらはすべてデータベースに投稿されます。
set StartTime=%DATE% %TIME%
hyperioncommandlineshell.cmd /a:parm1 /b:parm2 /c:parm3
set EndTime=%DATE% %TIME%
sqlcmd.exe -b -S myhost -E -d mydatabase -Q "Insert Into MyTable Values ('%StartTime%', 'MyProcess', '%EndTime%')" -W
DOS自体で計算を行うことはできませんがStartTime - EndTime
、SQLを使用して、開始時刻と終了時刻の両方をテーブルに格納できます。
%DATE%
およびの形式%TIME%
は、マシンが使用するように設定されている形式に基づいています。DOSプロンプトで入力echo %DATE% %TIME%
して、どのようにフォーマットされているかを確認できます。varchar
フォーマットが自動的に値に変換されない場合があるため、これらの値をフィールドに格納する必要がある可能性がありdatetime
ます。自動的に変換される場合は、次のようにDOSからSQLステートメントで計算を行うことができます。
sqlcmd.exe -b -S myhost -E -d mydatabase -Q "Insert Into MyTable Values ('%EndTime%' - '%StartTime%', 'MyProcess')" -W
(参考までに-すべての例で擬似コードを使用したため、何もテストされていません。)