SQLの窓

2009年07月29日


XN Resource Editor でシステムのプロパティを変更してみました


XN Resource Editor は、exe や dll のリソースデータを変更するアプリケーションですが、どこかの海外のブログでこんな事をやってたようなので、軽い気持ちでやってみました。もちろんオリジナル(SYSDM.CPL)は保存してありますし、古いほうの PC にのっかってる Windows2000 を使ってます。

こんなバカな事は実際やらないほうが良いのですが、専用のパッチが出てもいいと思えるほど便利な変更になったところもあります。

まずは、プロパティの一番手前の画像を変更。
( 海外サイトでは、アンジェリーナ・ジョリーにしてました )


Sysdmdog


で、これはともかくとして以下のは実用的です。


Sysdm


リストビューを広くして、入力フィールドを長く。これで間違えにくいですよね。


関連する記事

XNResourceEditor 3.0.0.1 の日本語化
昔のVB6の.frmから.rcを作って、XNResourceEditor 3.0.0.1で画面イメージを確認する
【改造】 XN Resource Editor で guidgen.exe を日本語化してボタンをメニュー化改造


タグ:お遊び
posted by lightbox at 2009-07-29 03:18 | 記録 | このブログの読者になる | 更新情報をチェックする

2009年07月25日


マイ コンピュータアイコンの表示名を実際のコンピュータ名に自動変更

※ Shell Script としては、最も標準的な使い方のうちの一つです


Const MY_COMPUTER = &H11&

Set objNetwork = CreateObject("Wscript.Network")
strComputer = objNetwork.ComputerName
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(MY_COMPUTER) 
Set objFolderItem = objFolder.Self
objFolderItem.Name = strComputer



元へ戻すスクリプト(コンピュータに変更) 


タグ:Shell Script
posted by lightbox at 2009-07-25 13:08 | 記録 | このブログの読者になる | 更新情報をチェックする

2009年07月18日


PHP : ユニークなキーの取得

uniqid という単純な関数で取得できます。

結果例 : 4a60afd294c67

これは、マイクロ秒( 100万分の1秒 ) を元にしているらしいので、十分にユニークです。ほぼこれ以上を気にする必要はありません。

マニュアルには、第一引数の説明として、prefix というものがありますが、これは複数のサーバで同時に実行される場合同じになる可能性が( ほんのほんの少しだけ、殆ど無い ) あるので用意されているだけで、同一サーバの同一処理系で利用しても意味ありません。

また、第二引数としてさらにユニークにするオプションがありますが

実行例 : print uniqid("",true);
結果例 : 4a60b0dd16e413.58317420

通常そこまでする必要はありません。
( どうしても気になるのであれば使用すればいいと思います )

さらに、$token = md5(uniqid()); というサンプルがありますが、これはセッション等のセキュリティ上の問題を回避する為の手法であり、ユニークキーを作成する事だけが目的の場合は必要ありません。


uniqid(); で十分です。


サーバ側で使うのであれば、そのid の存在チェックを行ってから使うほうが現実的ですね。
( DB ならば、RDBMS 内にそういうユニークキー作成機能があるのでそちらを使用します )




posted by lightbox at 2009-07-18 02:10 | PHP + ベーシック | このブログの読者になる | 更新情報をチェックする

2009年07月15日


windowsディレクトリに入れるコマンドプロンプト支援


ブラウザでダウンロード
コマンドプロンプトから、コマンドプロンプトを呼び出すと、
見た目は変わりませんが、F7 で呼び出す履歴は呼び出すネスト
毎に保存されるので、少しでいいからそれが解るようにしようと思いました。

Cmdhelp4

まず、一番上の親を間違って終わらせてしまわないように、
専用の終了バッチとして 「q.bat」を作り、一番上位では
終了できないようにしました( もちろん exit では終わります )
echo off
if %newcmd% == y (exit) else echo 終了できません / 終了は exit を入力して下さい

Cmdhelp3

また、コマンドラインを起動時に大きく使いたいので、
c.bat と c.vbs を作成し、「c.bat」でコマンドラインを使うようにしています。
Cmdhelp1
デフォルトのプロンプトは、ディレクトリ表示が邪魔なので短く
していますが、pr.bat と p.bat を作成して切り替えれるようにしています
Cmdhelp2
新しいコマンドラインの呼び出しは、new.bat です。
q.bat の連携と、コマンドラインに時間を表示しています。
Cmdhelp4
echo off
cmd.exe /k "set newcmd=y & prompt new $T$G"



posted by lightbox at 2009-07-15 14:48 | コマンドプロンプト | このブログの読者になる | 更新情報をチェックする

2009年07月13日


Oracle : SQL*Loader のサンプル

CSV 形式のデータを制御ファイルに含めています。WHEN には、= のほか != も指定できるようですが不等式はエラーになりました。

BADFILE は、テーブルに適合しないデータが送られますDISCARDFILE は、WHEN に合致しないレコードです

TRAILING NULLCOLS があるので、CSV 側で列数が足りなくてもエラーにはなりません

NULLIF は、条件が合致すると NULL がセットされます。( DEFAULTIF もあります )


関連する記事
Oracle : 固定長データのSQL*Loader のサンプル


最終的に、通常データに関数指定ができます
※ 多くは試していませんが TO_DATE(:フィールド)+1 が可能だったので
※ いろいろできる可能性があります
LOAD DATA
 INFILE *
-- **************************************************
-- BADFILE  : 拒否レコード
-- **************************************************
 BADFILE 'lightbox.bad'
-- **************************************************
-- DISCARDFILE : 廃棄ファイル
-- **************************************************
 DISCARDFILE 'lightbox.dsc'
-- **************************************************
-- APPEND : 追加
-- REPLACE : 削除後追加( 削除トリガーが起動 )
-- TRUNCATE : TRUNCATE 後追加( 最大限のパフォーマンス )
-- **************************************************
 APPEND
 INTO TABLE "社員マスタ2"
 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 TERMINATED BY ','
,"氏名" CHAR TERMINATED BY ',' NULLIF "氏名"=BLANKS
,"フリガナ" CHAR TERMINATED BY ',' NULLIF "フリガナ"=BLANKS
,"所属" CHAR TERMINATED BY ',' NULLIF "所属"=BLANKS
,"性別" INTEGER EXTERNAL TERMINATED BY ','
,"作成日" CHAR TERMINATED BY ','  NULLIF "作成日"='//' "TO_DATE(:\"更新日\")+1"
,"更新日" CHAR TERMINATED BY ','  NULLIF "作成日"='//' "TO_DATE(:\"更新日\")+1"
,"給与" INTEGER EXTERNAL TERMINATED BY ','
,"手当" INTEGER EXTERNAL TERMINATED BY ','
,"管理者" CHAR TERMINATED BY ',' NULLIF "管理者"=BLANKS
,"生年月日" CHAR TERMINATED BY ',' "TO_DATE(:\"生年月日\")"
)
BEGINDATA
0001,浦岡 友也,
00002,山村 洋代,ヤマムラ ヒロヨ,0003,1,2005/06/17,2005/09/18,300000,,,
0003,多岡 冬行,タオカ フユユキ,0002,0,2005/08/14,2005/11/14,250000,,,
0004,高田 冬美,タカタ フユミ,0003,1,//,//,250000,,,
0005,内高 友之,ウチタカ トモユキ,0003,0,2005/09/12,2005/11/10,150000,,,
0006,森尾 正也,モリオ マサヤ,0002,0,2005/08/14,2005/12/17,300000,7000,0002,



タグ:Oracle SQLLoader
posted by lightbox at 2009-07-13 20:26 | Oracle : 環境 | このブログの読者になる | 更新情報をチェックする

Oracle : 貴重な擬似列 ROWID

Oracle は全てのテーブルに ROWID という列を持っており、明示する事によって表示する事ができますが、常にその値を使って更新が可能です。

主キーを持たない全く同じデータを複数行持つテーブルでも、1行毎にユニークに値を持つので更新する事ができます

ユーティリィティ(ツール)を作る場合に重宝します。( ADO のような API 経由ですと、bookmark を使います )
select ROWID,社員コード,給与 from 社員マスタ

ROWID社員コード給与
AAAGlMAAFAAAAFfAAA0001270000.
AAAGlMAAFAAAAFfAAB0002300000.
AAAGlMAAFAAAAFfAAC0003250000.
AAAGlMAAFAAAAFfAAD0004250000.
AAAGlMAAFAAAAFfAAE0005150000.
AAAGlMAAFAAAAFfAAF0006300000.
AAAGlMAAFAAAAFfAAG0007170000.
AAAGlMAAFAAAAFfAAH0008240000.
AAAGlMAAFAAAAFfAAI0009290000.
AAAGlMAAFAAAAFfAAJ0010180000.
▼ 更新
update 社員マスタ
	set 給与 = 500000
where
	ROWID = 'AAAGlMAAFAAAAFfAAA'



タグ:Oracle 擬似列
posted by lightbox at 2009-07-13 17:12 | Oracle | このブログの読者になる | 更新情報をチェックする

2009年07月12日


タスクマネージャのメニューバーおよびタブが表示されない( Tiny Footprint モード )

↓こういう状態です。



Microsoft ドキュメントにも正式にありますが

ウィンドウの上部の縁をダブルクリックすると戻ります。という事は、もういちどダブルクリックするとそうなります。

タブ移動は、CTRL+PageUp または、CTRL+PageDown で実行できますし、閉じるのは ALT+F4 で可能ですが、知らないと困ってしまうと思います。


posted by lightbox at 2009-07-12 16:06 | Windows | このブログの読者になる | 更新情報をチェックする

コマンドプロンプト作業の基本

起動
ファイル名を指定して実行から、cmd と入力します

日本語入力
ALT+「半角/全角」

プロンプトの変更
カレントディレクトリが表示されて長すぎて邪魔な時に実行すると良いです

prompt $g

実行中のプログラムの強制終了
CTRL + C です。

※ まれに終了できないものもあります。
( そういう場合は、exit か quit でたいてい終わります )

最悪でも、タスクマネージャから強制終了できます

画面スクロールを一時停止したい場合
表示中に CTRL + S です が、

表示速度が速く、通常は都合よく止められ無いので

コマンド | more

を使います

フルスクリーン と 画面クリア と タイトル変更
フルスクリーン は ALT + Enter です
元に戻すのも ALT + Enter です

画面クリアは cls です

タイトル変更は、title 文字列 です。


タグ:日本語入力
posted by lightbox at 2009-07-12 15:40 | コマンドプロンプト | このブログの読者になる | 更新情報をチェックする

2009年07月07日


リモートのOracle にsysdba で入る

リモート側の windows ユーザが ORA_DBA グループに所属していて、ローカルユーザに同じユーザが、同じパスワードで同程度の権限で存在している必要があると思われますが・・・
sqlplus /@PC名/サービス名 as sysdba

↓つまり、こんなかんじ

sqlplus /@night/orcl as sysdba

Oracle11g インスタント クライアントではこの方法は実行できません


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

2009年07月03日


VBScriptで、ビットをスイッチとして使う記述

C言語と同じです。
| に相当する or を使用したり、& に相当する and を使用してビット演算が可能です

Or 演算子は、2 つの数式内の対応するビットに対するビット単位の比較も行います。
And 演算子は、2 つの数式内の対応するビットに対するビット単位の比較も行います
Xor 演算子は、2 つの数式内の対応するビットに対するビット単位の比較も行います。
Not 演算子は、変数に対してビット単位の反転も行います。

' 00000001	スイッチA
' &H1
' 00000010	スイッチB
' &H2
' 00000100	スイッチC
' &H4
' 00001000	スイッチD
' &H8

' スイッチA と スイッチ C をオンにする

flag = &H1 or &H4 ' ( つまり、&H5 )

' それぞれのスイッチがオンの時にメッセージを表示

if ( flag and &H1 ) = &H1 then
	Wscript.Echo "スイッチA"
end if
if ( flag and &H2 ) = &H2 then
	Wscript.Echo "スイッチB"
end if
if ( flag and &H4 ) = &H4 then
	Wscript.Echo "スイッチC"
end if
if ( flag and &H8 ) = &H8 then
	Wscript.Echo "スイッチD"
end if



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

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

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

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

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


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

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

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

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

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


Windows
container 終わり

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

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
PHP正規表現チェッカー
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり