SQLの窓

2011年08月30日


VB.net 2008 : System.Data.Odbc 接続テスト( MySQL 5.1 )



OdbcConnectionStringBuilder を使っている以外は特別なところはありません。
OdbcConnection の使い方と、接続のサンプルです
Imports System.Data.Odbc

Module Module1

	Sub Main()

		' 新しい OdbcConnectionStringBuilder オブジェクトを作成
		Dim builder As New OdbcConnectionStringBuilder()

		' ドライバ文字列をセット ( 波型括弧{} は必要ありません ) 
		' 文字列を正確に取得するには、レジストリ : HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI
		builder.Driver = "MySQL ODBC 5.1 Driver"

		' 接続用のパラメータを追加
		builder.Add("SERVER", "localhost")
		builder.Add("DATABASE", "lightbox")
		builder.Add("UID", "root")
		builder.Add("PWD", "password")

		' 内容を確認
		Console.WriteLine(builder.ConnectionString)

		' 新しい OdbcConnection オブジェクトを作成
		Dim myCon As New OdbcConnection()

		' 接続文字列を設定
		myCon.ConnectionString = builder.ConnectionString

		' 接続を開く
		Try
			myCon.Open()
		Catch ex As OdbcException
			Console.WriteLine("接続エラーです")
			' Console.WriteLine( ex.Message )
			Call ErrorAction( ex )
			Exit Sub
		End Try

		' 接続を閉じる
		myCon.Close()

		' OdbcConnection オブジェクトに使用されているすべてのリソースを解放
		myCon.Dispose()

		' 処理終了
		Console.WriteLine("処理が終了しました")

		' 一時停止
		Console.Write("Enterキーを押して下さい : ")
		Console.ReadLine()

	End Sub

	' ******************************************************
	' エラー処理
	' ******************************************************
	Sub ErrorAction( ex As OdbcException )

		Dim CrLf As String = ControlChars.CrLf
		Dim errorMessages As String = ""
		Dim i As Integer

		For i = 0 To ex.Errors.Count - 1
			errorMessages &= _
				"Index #" & i.ToString() & CrLf _
				& "Message: " & ex.Errors(i).Message & CrLf _
				& "NativeError: " & ex.Errors(i).NativeError.ToString() & CrLf _
				& "Source: " & ex.Errors(i).Source & CrLf _
				& "SQL: " & ex.Errors(i).SQLState & CrLf
		Next i

		Console.WriteLine(errorMessages)

	End Sub

End Module



パラメータは、Microsoft の標準のものを使用していますが、MySQL が定義したものを利用できます。
(例)
        builder.Add("SERVER", "localhost")
        builder.Add("DATABASE", "lightbox")
        builder.Add("USER", "root")
        builder.Add("PASSWORD", "password")
        builder.Add("PORT", "3306")
全てのパラメータ
Parameter Comment
user The user name used to connect to MySQL.
uid Synonymous with user
server The host name of the MySQL server.
database The default database.
option Options that specify how Connector/ODBC should work. See below.
port The TCP/IP port to use if server is not localhost.
initstmt Initial statement. A statement to execute when connecting to MySQL. In version 3.51 the parameter is called stmt. Note, the driver supports the initial statement being executed only at the time of the initial connection.
password The password for the user account on server.
pwd Synonymous with password
socket The Unix socket file or Windows named pipe to connect to if server is localhost.
sslca The path to a file with a list of trust SSL CAs. Added in 3.51.16.
sslcapath The path to a directory that contains trusted SSL CA certificates in PEM format. Added in 3.51.16.
sslcert The name of the SSL certificate file to use for establishing a secure connection. Added in 3.51.16.
sslcipher A list of permissible ciphers to use for SSL encryption. The cipher list has the same format as the openssl ciphers command Added in 3.51.16.
sslkey The name of the SSL key file to use for establishing a secure connection. Added in 3.51.16.
charset キャラクタセット設定
sslverify If set to 1, the SSL certificate will be verified when used with the MySQL connection. If not set, then the default behavior is to ignore SSL certificate verification.
readtimeout The timeout in seconds for attempts to read from the server
writetimeout The timeout in seconds for attempts to write to the server
interactive Enables the CLIENT_INTERACTIVE connection option of mysql_real_connect.
次のステップ

VB.net 2008 : System.Data.Odbc 更新処理( MySQL 5.1 )


タグ:MySQL
posted by lightbox at 2011-08-30 13:55 | VB.NET : データベース | このブログの読者になる | 更新情報をチェックする

2011年08月28日


Firefox で localStorage を編集するアドオン(FireStorage)は、GNU GPL なのでダウンロード(インストール) できるようにしました



Firefox で localStorage を編集するアドオン でソースコードの変更方法を紹介しましたが、一般の人では実現できないので、GNU GPL の元、改変して再配布します。

http://winofsql.jp/download/firestorage-1.0.2b-fx.xpi

■ 新規作成はできません。( Firebug 等で登録して下さい )
■ 変更は、key も value もできます。ダブルクリックで編集可能になります
■ 削除は選択して、一行づつです。左下の x アイコンで削除できます
( この機能がバグっていて動かなかったので改変しました )
■ 再表示は、左下の x の左横のアイコンです
■ バージョンチェックは、Firefox 9.0 まで使えるようにしています



タグ:localStorage
posted by lightbox at 2011-08-28 14:20 | Firefox | このブログの読者になる | 更新情報をチェックする

Firefox6 の postMessage でオブジェクトが引き渡されるのを確認しました

IFRAME で埋め込んだ外部コンテンツから
情報を取得する事ができる postMessage インターフェイス

上記リンク先に実際のコードを埋め込んでテストしました。

▼ 送り出し側です
function postColor() {

	var userAgent = window.navigator.userAgent.toLowerCase();
	var rgb = color.HSV_HEX(hsv);
	var objString = "";

	if (userAgent.indexOf("firefox/6") > -1) {
		objString = { "rgb": rgb, "hsv": { "h": hsv.H, "s": hsv.S, "v": hsv.V }};
		try{
			console.log("オブジェクトを post します (Firefox/6.0) ");
		}
		catch(e){ }
	}
	else {
		objString = '({ "rgb": "'+rgb+'", "hsv": { "h": '+hsv.H+',"s": '+hsv.S+',"v": '+hsv.V+' }})';
	}

	parent.postMessage( objString, "*" );
}


▼ 受け取り側です
function get_post_message(e) {
	var userAgent = window.navigator.userAgent.toLowerCase();
	var result = null;;
	if (userAgent.indexOf("firefox/6") > -1) {
		result = e.data;
	}
	else {
		result = eval(e.data);
	}
	alert(result.rgb + "," + result.hsv.h + "," + result.hsv.s + "," + result.hsv.v );
	document.getElementById("color_cd").value = result.rgb;
}
if ( window.addEventListener ) {
	window.addEventListener('message',get_post_message, false);
}
else {
	window.attachEvent('onmessage',get_post_message);
}



タグ:postMessage
posted by lightbox at 2011-08-28 01:33 | Firefox | このブログの読者になる | 更新情報をチェックする

2011年08月26日


Firefox6 : 気になる変更点、postMessage のオブジェクト引き渡しと、アドレスバーのスクリプトの直接入力

Firefox 6 for developers - MDN Docs

上記リンク先では、全ての変更点が記述されており、いろいろ興味ある内容が
列挙されていますが、最も気になったのが以下です。

window.postMessage() メソッドが structured clone algorithm
を使用するようになり、あるウィンドウから他のウィンドウに
文字列ではなく JavaScript オブジェクトを渡せるようになりま
した
これは実際にやってみると解りますが、使えるべきところに間に合って なかったというのが実際で、オブジェクトが渡せるようになるととても 簡単にクロスドメインのデータ交換が楽になります。 関連する記事 IFRAME で埋め込んだ外部コンテンツから 情報を取得する事ができる postMessage インターフェイス あと、一見「ブックマークレット」が動かないように思える記述がありますが、 アドレスバーに直接入力した時のみそういう仕様であり、HTML 上に既に記述さ れてあるものは、動作します。その延長であるブックマークレットも動作しま した。
•セキュリティの観点から、ユーザーがロケーションバーに
data: URI と javascript: URI を入力した時、現在のページ
のセキュリティコンテキストを受け継がなくなりました。
代わりに、新しい空のセキュリティコンテキストが生成され
ます。これにより、ロケーションバーに入力した javascript: URI
から読み込まれたスクリプトは、DOM メソッドなどへのアク
セスを持たなくなります。
しかし、これらの URI がスクリプトから使用された場合は、
これまでと同じように動作します。
タグ:postMessage
posted by lightbox at 2011-08-26 15:29 | Firefox | このブログの読者になる | 更新情報をチェックする

ローカル記憶域 : window.localStorage

以下は、Microsoft のドキュメントに書かれている説明文です

ローカル記憶域のメカニズムは、複数のウィンドウにまたがり、
現在のセッション以後も存続します。 

localStorage 属性は、ドメインの永続記憶域を提供します。

この属性により、Web アプリケーションはパフォーマンス目的
で約 10 MB のユーザー データ (ドキュメント全体、ユーザー
のメールボックスなど) をクライアントに保存できます。 
格納場所や、容量の仕様としては、ブラウザ毎に違うと思いますが、 データに対するアクセスは単純で全てのブラウザで同じ書き方がで きます。ただ、IE に関してだけで言うと、空文字列または、空文字 と同等とみなされるような参照を使って登録しようとするとエラーが 起きるかもしれません。現在のバージョンでは起きないかもしれない ですが、以前発生していましたので注意して下さい。 ( もし起きる場合は、new String("") をセットします ) 登録(変更)方法 一般的な、「連想配列」として扱います。 localStorage["key文字列"] = 値; 削除方法 localStorage.removeItem("key文字列"); ※ 全て削除は、localStorage.clear(); です。 一覧
localStorage['test'] = 'OK';
localStorage['message'] = 'YES';

var len = localStorage.length;
console.log(len);

var str = "";
for( var i = 0; i < len; i++ ) {
	// キーの値を取得
	str = localStorage.key( i );
	console.log(str + ":" + localStorage[str] );
}

関連する記事

ブラウザ別、localStorage の削除に関わる所作
Firefox で localStorage を編集するアドオン


タグ:localStorage
posted by lightbox at 2011-08-26 14:29 | JavaScript DOM | このブログの読者になる | 更新情報をチェックする

2011年08月25日


Firefox で localStorage を編集するアドオン



https://addons.mozilla.org/en-US/firefox/addon/firestorage/

上のような非常にシンプルなものですが、削除機能がバグで動かなかったり、入力フィールド
が狭かったりしたので、ダウンロードしたファイル( .xpi ) を、.zip に名称変更して、展開
してから中のソースコードを変更して使っています。

再度 .zip に書庫化し、.xpi に拡張子を変更して Firefox のページにドラッグ&ドロップする
とインストールされます。

yllocalstorage.js
remove : function() {
	var list = document.getElementById("yllocalstorage-viewer-list");
	if(list.getSelectedItem(0) != null) {

		var uri = ioService.newURI(content.location.href, "", null);
		var principal = securityManager.getCodebasePrincipal(uri);
		var localStorage = domStorageManager.getLocalStorageForPrincipal(principal, "");
//		dump(list.getSelectedItem(0).firstChild.attributes + "\n");
//		for(x in list.getSelectedItem(0).firstChild.firstChild) {
//			dump(x + "\n");
//		}
		
		localStorage.removeItem(list.getSelectedItem(0).firstChild.firstChild.value);
	}
	this.refresh();
},

cell2.setAttribute('ondblclick', 'this.firstChild.setAttribute("style","display: none"); this.lastChild.setAttribute("style","width:600px;");  this.lastChild.select();');



タグ:localStorage
posted by lightbox at 2011-08-25 15:53 | Firefox | このブログの読者になる | 更新情報をチェックする
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 ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり