SQLの窓 イラストAC フリー素材

2008年06月30日

【Oracle+VB.NET】SQLでは無くPLSQLで更新する



System.Data.OracleClient で、PL/SQL が書かれたテキストを実行して、
通常 SQL だけでは不可能な、INSERT 時の更新データの取得を行います。

1) シーケンスによってセットされた値
2) 関数によってセットされた値
3) ROWID の値

というか、PL/SQL の変数部分は、こちら側でバインドすると
その変数を定義して実行してくれた上、変数の内容が戻されるので、
面倒は面倒ですが、PL/SQL の恩恵を殆ど利用できます。


プログラマレベルで行う処置としては危険なので、
システム管理者が許してくれるとは思えないですけど・・・。




 

 

posted by at 2008-06-30 23:03 | VB.net | このブログの読者になる | 更新情報をチェックする

【VB.NET】マルチスレッドを使ったOracleデッドロックテスト




データをロックする方法が存在する以上、デッドロックは必ず発生します。
基本的な考え方は、いかなるプラットフォームでも同じなのですが、
テストとなると、けっこう面倒です。

しかし、一度は実際自分の目で見て実感しないと、
バグとしてのデッドロックをどうにかできるものでは無いと思われます。

Oracle では、Oracle が検知しますが、きっちりエラー処理しなければ、
データの整合性は失われたまま、どんどんデータが積み重なってしまいます。

現場でそんなの起こったら、怖いですね。
まだ、ロックしたままでフリーズするほうがマシかもですよ。




posted by at 2008-06-30 01:09 | VB.net | このブログの読者になる | 更新情報をチェックする

【PHP】WEBアプリケーションにおけるパラメータリレー





ページ上に IFRAME を置いて、データの参照を行う為のテクニックです。
ドキュメントでは、特に記述しなかったですが、IFRAME の position を
absolute にする事によって、好きな場所で WINDOW を開けてデータ
参照が可能です。

何故か、一般 WEB では見かけないような気がしますが・・・


便利ですよ。

posted by at 2008-06-30 01:01 | PHP | このブログの読者になる | 更新情報をチェックする

2008年06月28日

アプリケーションをテストする為のメール環境

いろいろな言語でメールを送る事ができますが、
その事一つを取っても、Outbound Port 25 Blocking やら
サブミッションポートやら、一筋縄では行きません。

メールのクライアントの設定一つを取っても選択肢が増えて来ました。
ですから、少なくともアプリケーション作る側ではもっと深い知識が
必然的に必要になってきます。

PMail Server フリー版 をアプリケーションテスト用に設定




ここでは、それらをふまえた情報をブログラマ用に整理したつもりです。
( メールクライアントとしては、Sylpheed を使用しています )

中のリンクからは、
1) Pear を使用した PHP でのメール送信

2) Telnet で SMTP

という、できるだけ メール送信 の理屈に近い部分が書かれている
記事を参考にするようにしています。



 

posted by at 2008-06-28 00:00 | 資料 | このブログの読者になる | 更新情報をチェックする

2008年06月21日

【ORACLE】少しづつOracle...パート1

Oracle の運用に必要な知識で、比較的簡単なものを・・・
と思って始めたんですが、結構コアな内容になってしまった気がします。
まだ、続く予定です。


テーブル作成と行追加を同時に行なう

・・・このへんまでは余裕で簡単だったんですが・・・

エクスポートユーティリティのテーブル単位の出力

加工テーブル作る為の元テーブルに既存のテーブル定義
が必要だなぁ・・・という事になってまずエクスポート

インポートユーティリティで、表定義を取得する

そこから、表定義を取得する方法にしても、
どちらかと言うと、一般的には解りにくい方法で、
そもそも、インポート・エクスポートユーティリティにしても、
正確にはバージョンを語らないといけないのですが、無視。
( ここでは、Oracle 10g という前提 )

一時表

最終的には、仮想表に持って行きたいけれども一時表も
外せないじゃ無いか・・・という事になってしまいました。




posted by at 2008-06-21 17:19 | DB関連 | このブログの読者になる | 更新情報をチェックする

2008年06月18日

【VB.NET】印刷処理サンプル(VB.NET2005ソース付き)




ちゃんと印刷処理を練習する為のセットです。
改造用の Excel で書いた帳表設計書を作ってリンクしました。
テスト用の仮想プリンタドライバ( PrimoPDF )のリンクもあります。
ソースには MDB も入っていますし、
サンプルのテーブルの仕様もあります。


あとは、ページ末行コントロールや
次ページ用データ保存という
実際の印刷処理の話だけなんですが・・・

これが実に説明しづらいんですよね。





posted by at 2008-06-18 10:24 | VB.net | このブログの読者になる | 更新情報をチェックする

2008年06月16日

【VB.NET】FastZipクラスin#ziplib




とにかく簡単に ZIP ファイルの処理がてきます。
時間が無くて、一覧処理しかサンプル作れなかったですが、
CreateZipExtractZip というメソッドがあって、
その名のごとく、単純な処理ならすぐ作れそうです。

もちろん、詳細な処理を行う為のクラスや
他のアーカイバ用のクラスもあります。
( GZip, Tar and BZip2 )





posted by at 2008-06-16 21:25 | VB.net | このブログの読者になる | 更新情報をチェックする

2008年06月15日

【VB.NET】7-zip32.dllラッパークラス(アンマネージDLLの処理)



アンマネージDLL(既存のAPI) に関する Framework からの面倒な書き方はこれで殆ど全て揃ってると思います。

7-zip32.dll に関しては、使ってみて普通に使えたので unzip32 を使った時の複数 DLL を用意しなければならなかった不便さが解消されてうれしい限りです。

アーカイブ的な専門知識は無いので、7-zip を運用する上で細かい問題点はあるかもしれませんが、それは 7-zip32.dll 側で解消されるのでしょう。

いや、ありがたいです。


UNLHA32.DLL に関してはいまさらなんで実装してみなかったですが、多分殆ど変更というより置換操作でできあがるような気がします。時間があったら他のアーカイバ試したいですね。




posted by at 2008-06-15 14:21 | VB.net | このブログの読者になる | 更新情報をチェックする

2008年06月12日

【VB.NET】Framework標準印刷処理



印刷処理の選択肢としては、有償のツールを使う事になると思うのですが、
結局印刷処理用のアルゴリズムを練習するとなると、このようなベタな処理
で行うほうが良いと思います。

WEB 関連では、結局そういう書き方になると思いますし、
やっと最近 PDF での出力が一般的になってきましたが、
ページの考え方は VB.NET での処理とほとんど同じです。

そもそも、C++ で書いてたころは、印刷処理 = グラフィック
であって、画像書くのも印刷するのも命令は同じで相手は
デバイスコンテキスト。

最近は勝手にプレビューコントロールしてくれますが、
そんなのを自前でやるわけにもいかずに クリスタルレポートにまかす・・・
てなふうに、過去の同業者の方もいろいろな経験をしてきたと
思われるのが印刷処理です。

とにかく、印刷処理ほど多様性のある処理は無いですね、うん。


#システム的には影響少ないので、
#経験値の低い開発員のテーマにもなりますが。



 

posted by at 2008-06-12 21:08 | VB.net | このブログの読者になる | 更新情報をチェックする

【VB.NET】Framework2.0データベースクラス

まとめておかないと、これ使ったサンプルとかの説明できないので。

1) ダウンロード
dll をダウンロードするので、作ったプロジェクト内に直接ダウンロードして
参照して下さい。

2) 共通インターフェイス
RDBMS に依存しない標準的な部分を定義してあります。

3) DbOracle クラス
現在一番良く使っているので、インターフェイスにないメソッドが
たくさん実装されています。
ここでうまくいけば、共通のインターフェイスに追加されます

4) DbOdbc クラス
現在 MySQL のみでテストしていますが、いずれ
PostgreSQL でもテストする予定です。

5) DbAccess クラス
現在 MDB 用ですが、継承して Excel 用を作る予定ではあります。

6) DbSql クラス
SQLServer 用ですが、優先順位は低いですね。
環境の設定からしても無意味に面倒なので、
あまり説明する気がしなくって。

7) PLSQL クラス
まだテスト中ですが、バラバラのテストは終わってます。
DBMS_OUTPUT パッケージの扱いを含めた、プロシージャ用
アプリケーションの作成支援を想定しています。

8) DbHelper クラス
今のところは、外部のテキストファイルに書かれた SQL
内の値の置き換え支援のみですが、何かあれば追加
していきます。





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

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

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

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

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


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

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

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

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

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