SQLの窓

2009年09月14日


PHP : Oracle を処理する COM を使ったクラス

Windows 用 Oracle/ADO ODBC 基本クラス

長年使用して来たクラスの Oracle 部分を切り出しました。ADO の ODBC 接続です。DSN を作成する必要があります
※ IIS 等のサービスでは、システムDSN に作成する必要があります
※ OO4O とは違います。

<?
header( "Content-Type: text/html; Charset=shift_jis" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );

require_once( "oracle.php" );

$SQL = new Oracle("OracleServer", "lightbox", "lightbox" );

$Query = 'select * from 社員マスタ';

$Column = $SQL->QueryEx( $Query . $Cond );

while ( $Column ) {

	print_r($Column);
	print $Column['作成日'] . "<br>";
	print "<br>";

	$Column = $SQL->QueryEx( );

}

$SQL->Close();

?>

▼ 詳細はこちらを参照して下さい

クラスのソースコード


タグ:Oracle クラス PHP
posted by lightbox at 2009-09-14 21:01 | PHP + データベース | このブログの読者になる | 更新情報をチェックする

2009年09月12日


コマンドプロンプト : クリップボードにあるファイル情報を標準出力へ

バイナリダウンロード ( cf.exe )

ブラウザでダウンロード
エクスプローラでファイルを選択してクリップボードにコピーしても、テキストデータとして取り出す事ができません。このデータを標準出力に出力してコマンドプロンプトで使用できます。
Imports System.Collections.Specialized

Module MyModule

' ***********************************************
' * クリップボードにあるファイル情報を標準出力へ
' ***********************************************
Sub Main()

	' 引数による処理タイプの決定
	' name : ファイル名のみ
	' path : フルパス
	Dim argv As String()
	argv = System.Environment.GetCommandLineArgs()
	Dim ActType As String
	If argv.Length = 1 Then
		ActType = "name"
	Else
		' name または path
		ActType = argv(1)
	End If
	' SHIFT キーを感知できた場合は処理を反転する
	If My.Computer.Keyboard.ShiftKeyDown Then
		If ActType = "name" Then
			ActType = "path"
		else
			ActType = "name"
		End If
	End If

	Dim FileList As StringCollection
	Dim FilePath As String
	Dim ClipString As String = ""
	Dim delimStr As String = "\"
	Dim delimiter As Char() = delimStr.ToCharArray()
	Dim aData As String()

	' クリップボードにファイルのデータがあった場合
	If My.Computer.Clipboard.ContainsFileDropList() Then
		'データを取得する
		FileList = My.Computer.Clipboard.GetFileDropList()
		'取得したファイル名を列挙する
		For Each FilePath In FileList
			If ActType = "path" Then
				Console.WriteLine( FilePath )
			Else
				aData = FilePath.Split(delimiter)
				Console.WriteLine( aData(aData.Length - 1) )
			End If
		Next
	End If


End Sub

End Module





タグ:VB.NET
posted by lightbox at 2009-09-12 22:34 | VB.NET : ベーシック | このブログの読者になる | 更新情報をチェックする

コマンドプロンプト : バッチファイルで使う for コマンドの変数展開のテスト( vtest.bat )

%~nx0 は、call コマンドの引数を展開する変数です
( ここでは、vtest.bat になります )

よくよく見ると、展開される内容を意味する一文字が使われています。

x = > extension
z => size
s => short name
@echo off

for %%i in ( %~nx0 ) do (
	echo ~   : そのまま : %%~i
	echo ~f  : フルパス : %%~fi
	echo ~d  : ドライブ : %%~di
	echo ~p  : パス     : %%~pi
	echo ~n  : 名前     : %%~ni
	echo ~x  : 拡張子   : %%~xi
	echo ~s  : 短い名前 : %%~si
	echo ~a  : 属性     : %%~ai
	echo ~t  : タイムスタンプ : %%~ti
	echo ~z  : サイズ   : %%~zi
	echo ~dp : 結合 : %%~dpi
)

Vtest

関連する記事
laylaClass バッチ処理支援パッケージ


posted by lightbox at 2009-09-12 13:00 | コマンド : バッチファイル | このブログの読者になる | 更新情報をチェックする

コマンドプロンプト : WAV を mp3 に変換する

ダウンロード

中の lame.exe を使用した以下のようなバッチファイルを作成し、WAV ファイルがあるフォルダに置いて、実行します。
@echo off

for %%i in ( *.wav ) do (
	lame -h "%%~ni.wav" "%%~ni.mp3"
)



-h は高品質になると説明があります。
あっても、無くても bit rate は、128kbps です(サイズは変わりません)

WMP11 で 作成した mp3 とサイズは数バイト違うだけでした。

関連する記事

Windows Media Player(WMP11) を使った音楽CDの扱い( 総合的には lame.exe が必要でしょう )


タグ:変換 MP3
posted by lightbox at 2009-09-12 01:17 | コマンド : コマンド | このブログの読者になる | 更新情報をチェックする

2009年09月03日


prototype.js の Object.extend でプロパティを追加する

<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">

// String オブジェクトにメソッドを追加
Object.extend(String.prototype, {
	myFunc1: function(url) {
		alert("<a href=\""+url+"\">"+this.valueOf()+"</a>");
	},
	myFunc2: function( str ) {
		alert("|"+this.valueOf()+"|");
	},
	blank: function( ) {
		return /^[\s_]*$/.test(this);
	}
} );

</script>
<INPUT type=button value="実行1" onClick='"SQLの窓".myFunc1("http://winofsql.jp");'>
<INPUT type=button value="実行2" onClick='(location.toString()).myFunc2();'>
<INPUT type=button value="実行3" onClick='alert(" _ ".blank());'>

String.prototype に追加しているので、文字列では常に利用可能になります。
prototype.js では、既にこの方法で追加済みで、ここではそのうちの blank を
上書きしています。この場合は、_ も空白扱いになります。


関連する記事
JavaScript : オブジェクトとインスタンスとプロパティの継承


posted by lightbox at 2009-09-03 17:32 | prototype.js | このブログの読者になる | 更新情報をチェックする

JavaScript : オブジェクトとインスタンスとプロパティの継承

Object オブジェクトは、JavaScript の全てのオブジェクトの元となるオブジェクトですが、
JavaScript はオブジェクトに対してプロパティを自由に追加できます。

Object.myData = 20090903;
Object.myFunc = function() {
alert(this.myData);
};

しかし、このプロパティは Object から参照した時に利用できますが、インスタンス化
したオブジェクトからは参照できません

Object.myData = 20090903;
Object.myFunc = function() {
alert(this.myData);
};
obj = new Object();
.
.
.

<INPUT type=button value="実行1" onClick='Object.myFunc();'>
<INPUT type=button value="実行2" onClick='obj.myFunc();'>

※ 実行1は、20090903 が表示される
※ 実行2は、エラー

重要
インスタンスからも利用できるようにするには、prototype プロパティにセットします。
この場合、同じ名前でセットされていた値は、prototype にセットされた内容で上書き
されます( ローディング後に上書きされるようです )

Object.myData = 20090903;
Object.myFunc = function() {
alert(this.myData);
};
Object.prototype.myData = 20091231;
Object.prototype.myFunc = function() {
alert(this.myData+"/prototype");
};
obj = new Object();
.
.
.

<INPUT type=button value="実行1" onClick='Object.myFunc();'>
<INPUT type=button value="実行2" onClick='obj.myFunc();'>

※ 両方とも 20091231/prototype が表示される

さらに、インスタンスにもプロパティを追加できます
Object.myData = 20090903;
Object.myFunc = function() {
alert(this.myData);
};
Object.prototype.myData = 20091231;
Object.prototype.myFunc = function() {
alert(this.myData+"/prototype");
};
obj = new Object();
obj.myFunc2 = function() {
alert(this.myData+"/インスタンス");
};
obj2 = new Object();

この場合、obj のみに追加され事になります( obj2 にmyFunc2 はありません )

重要
そして、結果的に、Object.prototype に追加されたものは、他のオブジェクトで
使用できる事になります

String.myFunc();
"abc".myFunc();
x = new String();x.myFunc();

いずれも同じ結果となります



posted by lightbox at 2009-09-03 11:13 | JavaScript オブジェクト | このブログの読者になる | 更新情報をチェックする
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 終わり