SQLの窓

2009年11月15日


バッチファイル : コマンドプロンプトの表示幅の変更

Syntax
1) cols
2) cols 140

※ 幅を省略すると 80
@echo off
for /F "tokens=1" %%i in ('echo %1') do (
	if "%%i"=="ECHO" (
		goto default
	)
)
mode con:cols=%1
goto end 

:default
mode con:cols=80

:end 



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

PHP : SQLite3 を PDO の ODBC 経由で読み込み

SQLITE_MASTER は、実際には存在しないテーブルで、ドライバがファイルから直接情報を取得しているようですが、PHP から動作しています。( SQLite3 クラス / PDO の sqlite 接続 / PDO の ODBC )
<?
header( "Content-Type: text/html; Charset=UTF-8" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );
// **********************************************************
// PHP php_pdo_odbc.dll 経由 sqlite3(日本語テーブル) 読み込み
// **********************************************************

print "<pre>\n";

$strDB = realpath("./db1.sqlite3" );
$strDriver = "{SQLite3 ODBC Driver}";

print PHP_SAPI . "\n";
print PHP_OS. "\n";
print PHP_VERSION. "\n";

print "\n";

// **********************************************************
// 処理
// www.php.net/manual/ja/sqlite3.construct.php
// www.php.net/manual/ja/ref.pdo-sqlite.connection.php( PDO )
// **********************************************************
$Cn = new PDO( "odbc:Driver=$strDriver;Database=$strDB;" );
$Rs = $Cn->Query( 'select * from SQLITE_MASTER' );

$nFields = $Rs->columnCount();
$hbuffer = "";
$update_cnt = 0;
while( $result = $Rs->fetch(PDO::FETCH_ASSOC) ) {
	print_r($result);
	if ( $hbuffer == "" ) {
		$field_names = array_keys($result);
		for( $i = 0; $i < $nFields; $i++ ) {
			if ( $hbuffer != "" ) {
				$hbuffer .= ",";
			}
			$hbuffer .= $field_names[$i];
		}
		print $hbuffer . "\n";
	}

	$buffer = "";
	for( $i = 0; $i < $nFields; $i++ ) {
		if ( $buffer != "" ) {
			$buffer .= ",";
		}
		$buffer .= $result[$field_names[$i]];
	}
	print $buffer . "\n";

}
$Cn = null;	// close
print "</pre>\n";
?>

関連するリンク

SQLite3 ODBC ドライバ


タグ:PHP PDO sqlite3
posted by lightbox at 2009-11-15 14:34 | PHP + データベース | このブログの読者になる | 更新情報をチェックする

PHP : 5.3 / 5.2.11 用共用 sqlite3(日本語テーブル) 読み込み

PHP 5.3 では、通常 cli 以外で dl が使えないのでモジュールは使用可能であるという前提にしています。使用したファイルは、日本語テーブルで日本語列に日本語データの SQLite3 です。( キャラクタセットは utf-8 です )

※ PHP 5.3 でも もちろん PDO を使用できます。

さくらのサンプル実行ページ
<?
header( "Content-Type: text/html; Charset=UTF-8" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );
// **********************************************************
// PHP 5.3 / 5.2.11 用共用 sqlite3(日本語テーブル) 読み込み
// **********************************************************

print "<pre>\n";

$strDB = realpath("./db1.sqlite3" );

print PHP_SAPI . "\n";
print PHP_OS. "\n";
print PHP_VERSION. "\n";

print "\n";

// **********************************************************
// 処理
// www.php.net/manual/ja/sqlite3.construct.php
// www.php.net/manual/ja/ref.pdo-sqlite.connection.php( PDO )
// **********************************************************
if( (PHP_VERSION+0) >= 5.3 ) {
	$Cn = new SQLite3( $strDB, SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE );
	$Rs = $Cn->query( 'select * from 社員マスタ' );
	$nFields = $Rs->numColumns();
	$hbuffer = "";
	$update_cnt = 0;
	while( $result = $Rs->fetchArray(SQLITE3_ASSOC) ) {
		print_r($result);
		if ( $hbuffer == "" ) {
			$field_names = array_keys($result);
			for( $i = 0; $i < $nFields; $i++ ) {
				if ( $hbuffer != "" ) {
					$hbuffer .= ",";
				}
				$hbuffer .= $field_names[$i];
			}
			print $hbuffer . "\n";
		}

		$buffer = "";
		for( $i = 0; $i < $nFields; $i++ ) {
			if ( $buffer != "" ) {
				$buffer .= ",";
			}
			$buffer .= $result[$field_names[$i]];
		}
		print $buffer . "\n";

	}
	$Cn->close();

}
else {
	$Cn = new PDO( "sqlite:$strDB" );
	$Rs = $Cn->Query( 'select * from 社員マスタ' );

	$nFields = $Rs->columnCount();
	$hbuffer = "";
	$update_cnt = 0;
	while( $result = $Rs->fetch(PDO::FETCH_ASSOC) ) {
		print_r($result);
		if ( $hbuffer == "" ) {
			$field_names = array_keys($result);
			for( $i = 0; $i < $nFields; $i++ ) {
				if ( $hbuffer != "" ) {
					$hbuffer .= ",";
				}
				$hbuffer .= $field_names[$i];
			}
			print $hbuffer . "\n";
		}

		$buffer = "";
		for( $i = 0; $i < $nFields; $i++ ) {
			if ( $buffer != "" ) {
				$buffer .= ",";
			}
			$buffer .= $result[$field_names[$i]];
		}
		print $buffer . "\n";

	}
	$Cn = null;	// close
}
print "</pre>\n";
?>







タグ:PHP sqlite3
posted by lightbox at 2009-11-15 13:59 | PHP + データベース | このブログの読者になる | 更新情報をチェックする

PHP : Windows2000 で動作する PHP は 5.2.11 まで

Windows 2000 はさすがに一般では使われていないでしょうが、
古い PC はまだそれなりに動いているので、限界だけは知っておかないと。
getaddrinfo がダイナミック リンク ライブラリ WS2_32.dll から見つかりませんでした
この dll だけの問題では無いので、5.3 は xp 以上が確実に必要です。

また、PHP の 5.3 から ext ディレクトリの中の dll の数がかなり減っています。
( phpinfo を見る限り、以下の無くなったモジュールは、デフォルトで有効です )


▼(例)
php_pdo.dll => 無し
php_mcrypt.dll => 無し
php_zip.dll => 無し
php_oci8_11g.dll => 追加
php_sqlite3.dll => 追加






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

2009年11月13日


キーボードにシャットダウンボタンがある場合に間違って押しても問題が起きないように

Shutdown_button2

Shutdown_button

自分のキーボードにはそんなものは無かったので、人から言われた時はピンと来なかったのですが、そういうマシンで作業していて、Print Screen したつもりがそこには・・・

で、初めて頭を働かせる気になると

「あ、たぶん」

となりました。何で他人の時は気が付かなかったのか結構不思議です。



タグ:トラブル
posted by lightbox at 2009-11-13 17:52 | Windows | このブログの読者になる | 更新情報をチェックする

HTA : CSV汎用出力

ダウンロード
Adocsv

Windows に登録されている ODBC ドライバを使用して
汎用的に CSV を出力します( 同じフォルダに出力 )

Adocsv2


※ このソフトの詳細についてはこちらを参照してください。


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