SQLの窓

2009年11月28日


コマンドプロンプト : 初期値を設定できる行入力

Inputline

ブラウザでダウンロード
いちおう、テンポラリフォルダにも結果を出力していますが、
以下のようにして使用します
@echo off
setlocal
cls

locate 5,3 && echo 社員コード
locate 5,5 && echo 氏名
locate 5,7 && echo 確認


:inputloop
locate 20,3
for /F %%i in ('inputline "0001"') do (
	set INP01=%%i
)

locate 20,5
for /F %%i in ('inputline "山田 太郎"') do (
	set INP02=%%i
)

locate 20,7
for /F %%i in ('inputline') do (
	if "%%i"=="q" (
		goto end
	)
)

goto inputloop 

:end 

echo %INP01%
echo %INP02%
▼ こういうのもありです
for /F %%i in ('inputline "%INP02%"') do (
	set INP02=%%i
)
Imports System.IO
Imports System.Text

Module MyModule

' ********************************************************
' * 実行
' ********************************************************
Sub Main()

	Dim argv As String()

	argv = System.Environment.GetCommandLineArgs()

	if argv.Length = 2 then
			System.Windows.Forms.SendKeys.SendWait(argv(1))
	end if

	' SHIFT_JIS 書き込み
	Dim WriteFile As StreamWriter = New StreamWriter( _
		Path.GetTempPath() & "\lightbox_input.txt", _
		False, Encoding.GetEncoding(932) _
	)

	Dim str As String = Console.ReadLine()

	WriteFile.Write( str )
	WriteFile.Close()
	WriteFile.Dispose()
	Console.WriteLine( str )

End Sub

End Module

関連する記事
コマンドプロンプト : 表示位置を指定できる locate.exe




posted by lightbox at 2009-11-28 23:30 | フリーソフト | このブログの読者になる | 更新情報をチェックする

コマンドプロンプト : 表示位置を指定できる locate.exe

ブラウザでダウンロード

Locate_1
Locate_1
Module MyModule

' ********************************************************
' * 実行
' ********************************************************
Sub Main()

	Dim argv As String()
	Dim Pos As String()
	Dim x As Integer
	Dim y As Integer

	argv = System.Environment.GetCommandLineArgs()

	if argv.Length = 2 then

		Pos = (argv(1)).Split(",")
		if Pos.Length <> 2 then
			y = 0
		end if
		Try
			x = Integer.Parse(Pos(0))
		Catch
			x = 0
		End Try
		Try
			y = Integer.Parse(Pos(1))
		Catch
			y = 0
		End Try

		Console.CursorLeft = x
		Console.CursorTop = y

	end if

End Sub

End Module

■プログラム名
表示位置指定

※ 指定した位置に表示位置を移動します

スペースで表示位置を調整する必要がなくなります

▼ test.bat
-------------------------------------------------
@echo off
cls

locate 0,0 && echo CALL
locate 0,1 && echo CLS
locate 0,2 && echo DIR

locate 5,20
pause

locate 5,0 && echo バッチ ファイル中から、別のバッチ ファイルを呼び出します。
locate 5,1 && echo 画面を消去します。
locate 5,2 && echo ディレクトリ中のファイルやサブディレクトリの一覧を表示します。
-------------------------------------------------


▼ 結果
-------------------------------------------------
CALL バッチ ファイル中から、別のバッチ ファイルを呼び出します。
CLS  画面を消去します。
DIR  ディレクトリ中のファイルやサブディレクトリの一覧を表示します。
-------------------------------------------------

■使用方法
locate n,n

n は 0 から始まります

■利用環境
Framework2.0 以上がインストールされている環境


■著作権その他

このプログラムはフリーです。どうぞ自由に御使用ください。
著作権は作者である私(lightbox)が保有しています。
また、本ソフトを運用した結果については、作者は一切責任を
負えせんのでご了承ください。




posted by lightbox at 2009-11-28 15:32 | フリーソフト | このブログの読者になる | 更新情報をチェックする

2009年11月27日


SSHサーバーにSFTPで繋がらない理由

サーバの .cshrc でエラーが発生していると繋がりません。エラーで無くとも、何かを表示していると、メッセージが too long と言われて接続が切断されます。

Sftp

上記サーバはwindowsサーバーですが、意図的にエラーにしています。
このメッセージの内容の確認方法は、まず、2206303074 を calc で 16進数に変換します

2206303074 => 83818362

これをキャラクタに変換すると原因の文字列になります。これは、明らかに SHIFT_JIS なので、%83%81%83%62
として urldecode します

結果 => メッ

※ 実際は、メッセージ表示 と表示しています

今回、ひさしぶりに vi を触ったので .cshrc の編集でタイプミスをしてしまって、.cshrc の 途中でエラーになっていました。通常の処理に支障の無い場所だったので気が付かなかったのですが、見事に FileZilla でエラーになりましたが、ログからは問題が解りませんでした。

ローカルの OpenSSH の sftp コマンドでは、パスワード入力後に即切断されるという現象となります。


タグ:トラブル sftp
posted by lightbox at 2009-11-27 12:39 | 記録 | このブログの読者になる | 更新情報をチェックする

2009年11月26日


PuTTY ごった煮版で SSH 接続


さくらインターネット : PuTTY ごった煮版で SSH 接続
元々の目的は、リンク先で書いたとおり、さくらインターネットに
Ruby のモジュールをインストールする為にまとめたものですが、
PuTTY はクライアントソフトなので、SSHサーバーさえどこかにあれば、
そのサーバーに直接接続してコマンドプロンプトから普通に処理が可能になります。

インターネット上で利用するには、いろいろセキュリティ上の設定
が必要になりますが、自宅の Windows マシンを出先で操作が可能に
なります。GUI を使わないので思ったよりずっと軽快に作業できるはずです。
( レンタルサーバなら Unix、サーバーが Windows ならコマンドプロンプト )

ローカルネットワークでももちろん利用できますので、
Windows にインストールして慣れておくとイザという時に役に立ちます。

▼ PuTTY から Windows の OpenSSH Server にログイン
Putty_windows


OpenSSH for Windows のインストールに関する情報


posted by lightbox at 2009-11-26 15:58 | 記録 | このブログの読者になる | 更新情報をチェックする

2009年11月19日


Oracle : 固定長データのSQL*Loader のサンプル

INFILE のオプションで固定レコードである事を指定しています。固定レコードのデータは、C 言語で出力した事を想定して作成しています。位置指定かデータ型指定でデータの位置が計算されて処理されます。

FILLER は、データベース列と関連しない列を明示する為に使用します( COBOL と同様 )

位置指定は N:N と N-N は同等で、位置番号を示すのでレコードレイアウトがある場合に簡単に指定できます。
▼レコードレイアウト例



関連する記事

Oracle : SQL*Loader のサンプル


位置指定には他にも以下のようなものがあります
* : 直前の位置から始まる
+N : 終了位置直後の位置から現行のフィールドをオフセットする
          0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
--------------------------------------------------------------------------
00000000 30 31 30 31 8E 52 93 63 8C 4E 00 00 00 00 00 00  0101山田君......
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000030 00 00 00 00 00 00 FF B0 1E 04 00 32 30 30 39 2F  .......ー...2009/
00000040 30 31 2F 30 31                                   01/01
LOAD DATA
 INFILE '社員マスタ.dat' "FIX 69"

-- **************************************************
-- BADFILE  : 拒否レコード
-- **************************************************
 BADFILE 'lightbox.bad'
-- **************************************************
-- DISCARDFILE : 廃棄ファイル
-- **************************************************
 DISCARDFILE 'lightbox.dsc'
-- **************************************************
-- APPEND : 追加
-- REPLACE : 削除後追加( 削除トリガーが起動 )
-- TRUNCATE : TRUNCATE 後追加( 最大限のパフォーマンス )
-- **************************************************
 APPEND
 INTO TABLE "社員マスタ"
 WHEN "社員コード" != '0005'
-- **************************************************
-- ■ TRAILING NULLCOLS
-- 相対位置に指定した列がレコード中に存在しない場合
-- その列の値はNULLとして処理されます
-- **************************************************
 TRAILING NULLCOLS
--
--
--create table "社員マスタ2" (
--	"社員コード" VARCHAR2(4)
--	,"氏名" VARCHAR2(50)
--	,"フリガナ" VARCHAR2(50)
--	,"所属" VARCHAR2(4)
--	,"性別" NUMBER(15)
--	,"作成日" DATE
--	,"更新日" DATE
--	,"給与" NUMBER
--	,"手当" NUMBER
--	,"管理者" VARCHAR2(4)
--	,"生年月日" DATE
--)
--
--
(
"社員コード" CHAR(4)
,"氏名" POSITION(5:54) CHAR NULLIF "氏名"=BLANKS
,"不要部分定義" FILLER POSITION(55:55) CHAR
,"給与" POSITION(56-59) INTEGER(4) NULLIF "給与"=BLANKS
,"生年月日" POSITION(60-69) DATE "YYYY/MM/DD" NULLIF "生年月日"=BLANKS
)



▼ ログ

SQL*Loader: Release 10.2.0.1.0 - Production on 木 11月 19 15:46:04 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

制御ファイル:    syain.ctl
データファイル社員マスタ.dat
  ファイル処理オプション文字列: "FIX 69"
  不良ファイル:  lightbox.bad
  廃棄ファイル: lightbox.dsc
 (すべて廃棄できます)

ロード数: ALL
スキップ数: 0
許容エラー数: 50
バインド配列:    64行、最大256000バイト
継続文字:    指定なし
使用パス:      従来型

表"社員マスタ"、 ロード済 時 "社員コード" != 0X30303035(文字 '0005')
この表に対する有効な挿入オプション: APPEND
TRAILING NULLCOLSオプションは有効です。

   Column Name                  Position   Len  Term Encl Datatype
------------------------------ ---------- ----- ---- ---- ---------------------
"社員コード"                       FIRST    4        CHARACTER            
"氏名"                              5:54   50        CHARACTER            
    NULL if "氏名" = BLANKS
"不要部分定義"                     55:55    1        CHARACTER            
  (FILLERフィールド)
"給与"                             56:59    4        INTEGER              
    NULL if "給与" = BLANKS
"生年月日"                         60:69   10        DATE YYYY/MM/DD      
    NULL if "生年月日" = BLANKS


表"社員マスタ":
  1行のロードに成功しました。
  0行はデータ・エラーのためロードされませんでした。
  0行はWHEN句のエラーのためロードされませんでした。
  0行はすべてのフィールドがNULLのためロードされませんでした。

バインド配列に割り当てられた領域:     4736バイト(64行)
読取りバッファのバイト数:  1048576

スキップされた論理レコードの合計:           0
読み込まれた論理レコードの合計:             1
拒否された論理レコードの合計:               0
廃棄された論理レコードの合計:        0

実行開始木 11月 19 15:46:04 2009
実行終了木 11月 19 15:46:04 2009

実行時間:        00: 00: 00.17
CPU時間 :        00: 00: 00.10


関連する Oracle へのリンク

SQL*Loader : 制御ファイル・リファレンス
SQL*Loader : フィールド・リスト・リファレンス
Windows 限定



posted by lightbox at 2009-11-19 15:58 | Oracle : 環境 | このブログの読者になる | 更新情報をチェックする

2009年11月17日


MySQL : すぐ使える MySQL 5.14 パッケージ


MySQL5.14 販売管理データ登録済みセットのダウンロード
このあいだ、MySQL : 5.1.4 : インストール場所を一か所にまとめる というテストをしたので、
パッケージ化して他の PC で使える事を確認しました( XP と Vista )

C:\ にダウンロードしてそのまま解凍して、C:\mysql514 というディレクトリ
内に全てのファイルがある状態にして install.bat を実行するだけです。

後は、サービスを起動してアプリケーションからアクセスするだけです

簡易的な販売管理用テーブルが13、ビューが4つ登録されています


タグ:MySQL
posted by lightbox at 2009-11-17 14:16 | MySQL | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり