1つ前の書き込み「VBScript IsNullとかIsEmptyとかIsNumericとか」で、
「実際にはポストされていないデータをRequestで取得してしまった場合、その値はEmptyとなる」
また、「IsNumeric(Empty)はTrueになる」ということを確認しました。
Access MDB では、数値型を「'(シングルクォート)」で囲むことができないため、
クエリに数値型のパラメータを埋めこまなくてはならない場合、埋め込む値が
数値型であるかどうかを厳密にチェックする必要があります。
VBScriptのIsNumericだけでは意図したチェックにならない可能性があるので、
注意しなくてはなりません。
Webのようなインジェクションの恐れがある環境で、
データベースにmdbを用いないのが本来だとは思うのですが・・・。
2011年2月28日月曜日
VBScript IsNullとかIsEmptyとかIsNumericとか
定義 | 構文 | 結果 |
---|---|---|
num = "" | Response.Write num | |
TypeName(num) | String | |
IsNull(num) | False | |
IsEmpty(num) | False | |
IsNumeric(num) | False | |
IsObject(num) | False | |
(num=0) | スクリプトエラー | |
(num="0") | False | |
num = Empty | Response.Write num | |
TypeName(num) | Empty | |
IsNull(num) | False | |
IsEmpty(num) | True | |
IsNumeric(num) | True | |
IsObject(num) | False | |
(num=0) | True | |
(num="0") | False | |
num = null | Response.Write num | |
TypeName(num) | Null | |
IsNull(num) | True | |
IsEmpty(num) | False | |
IsNumeric(num) | False | |
IsObject(num) | False | |
IsNull(num=0) | True | |
IsNull(num="0") | True | |
num = 0 | Response.Write num | 0 |
TypeName(num) | Integer | |
IsNull(num) | False | |
IsEmpty(num) | False | |
IsNumeric(num) | True | |
IsObject(num) | False | |
(num=0) | True | |
(num="0") | True | |
num = "0" | Response.Write num | 0 |
TypeName(num) | String | |
IsNull(num) | False | |
IsEmpty(num) | False | |
IsNumeric(num) | True | |
IsObject(num) | False | |
(num=0) | True | |
(num="0") | True | |
num = "0"(全角) | Response.Write num | 0 |
TypeName(num) | String | |
IsNull(num) | False | |
IsEmpty(num) | False | |
IsNumeric(num) | True | |
IsObject(num) | False | |
(num=0) | True | |
(num="0") | False | |
num = "〇"(漢数字) | Response.Write num | 〇 |
TypeName(num) | String | |
IsNull(num) | False | |
IsEmpty(num) | False | |
IsNumeric(num) | False | |
IsObject(num) | False | |
(num=0) | スクリプトエラー | |
(num="0") | False | |
num = "3D2" | Response.Write num | 3D2 |
TypeName(num) | String | |
IsNull(num) | False | |
IsEmpty(num) | False | |
IsNumeric(num) | True | |
IsObject(num) | False | |
(num=300) | True | |
(num="300") | False |
上記は各データをチェックした一覧です。
想像していたのと、違う結果になっていないでしょうか。
特に↓のような時
Dim num num = Request("numnum") '←実際はnumnumというnameのデータはポストされていないnumはEmptyとなるので、IsNumericで数値チェックをするとTrueとなってしまいます。
ラベル:
Classic ASP,
VBScript,
Web
2011年2月21日月曜日
IETesterでタブを分割表示する
IETester
http://www.my-debugbar.com/wiki/IETester/HomePage
IETesterを用いるとIE5.5, IE6, IE7, IE8での表示・動作確認を行うことができます。
サンプル画面のようにタブで分割表示するには、
まず確認したいバージョンのIEでサイトを開きます。
どちらのタブでも良いので、タブをつまんでウィンドウ内にドラッグ&ドロップします。
タブの分割表示ができました。
※ちなみに、上の参考画像はこのサイトでキャプチャしただけなので、
別に私は「ポンパレ」の広告塔ではありません(汗)
最近このお姉さんめっちゃ見るなぁ
http://www.my-debugbar.com/wiki/IETester/HomePage
IETesterを用いるとIE5.5, IE6, IE7, IE8での表示・動作確認を行うことができます。
サンプル画面のようにタブで分割表示するには、
まず確認したいバージョンのIEでサイトを開きます。
どちらのタブでも良いので、タブをつまんでウィンドウ内にドラッグ&ドロップします。
タブの分割表示ができました。
※ちなみに、上の参考画像はこのサイトでキャプチャしただけなので、
別に私は「ポンパレ」の広告塔ではありません(汗)
最近このお姉さんめっちゃ見るなぁ
2011年2月15日火曜日
Eclipseで矩形選択
Alt + Shift + A
で矩形選択できます。
Alt + ドラッグ の方が便利で良いのですが・・・。
ちなみに矩形は「くけい」と読むそうです。
短形選択だと思ってました。
で矩形選択できます。
Alt + ドラッグ の方が便利で良いのですが・・・。
ちなみに矩形は「くけい」と読むそうです。
短形選択だと思ってました。
2011年2月9日水曜日
SQL Server から CSV データのエクスポート
ハマったのでメモ
単純にテーブルをそのままCSVにエクスポートなら、コマンドプロンプトなりbatファイルなりで
bcpコマンドを叩けば成功した。
参考
bcp ユーティリティ
引数つきのストアドプロシージャの実行結果をエクスポートしようとした時に上手くいかなかった。
また、引数も動的に決定したいのでbcpコマンド自体をストアドに入れてしまって
ジョブで定期実行するなどしたい。
まずはmaster.dbo.xp_cmdshell(master.sys.xp_cmdshell?)を有効にする必要があるので
以下を実行する。
実行結果は以下の通り
これで、ストアドプロシージャ内で以下のような感じでbcpコマンドが使えるハズです。
単純にテーブルをそのままCSVにエクスポートなら、コマンドプロンプトなりbatファイルなりで
bcpコマンドを叩けば成功した。
参考
bcp ユーティリティ
引数つきのストアドプロシージャの実行結果をエクスポートしようとした時に上手くいかなかった。
また、引数も動的に決定したいのでbcpコマンド自体をストアドに入れてしまって
ジョブで定期実行するなどしたい。
まずはmaster.dbo.xp_cmdshell(master.sys.xp_cmdshell?)を有効にする必要があるので
以下を実行する。
-- To allow advanced options to be changed. EXEC sp_configure 'show advanced options', 1 GO -- To update the currently configured value for advanced options. RECONFIGURE GO -- To enable the feature. EXEC sp_configure 'xp_cmdshell', 1 GO -- To update the currently configured value for this feature. RECONFIGURE GO
実行結果は以下の通り
構成オプション 'show advanced options' が 0 から 1 に変更されました。RECONFIGURE ステートメントを実行してインストールしてください。 構成オプション 'xp_cmdshell' が 0 から 1 に変更されました。RECONFIGURE ステートメントを実行してインストールしてください。
これで、ストアドプロシージャ内で以下のような感じでbcpコマンドが使えるハズです。
EXECUTE xp_cmdshell 'bcp AdventureWorks2008R2.Sales.Currency2 in Currency.dat -T -c' EXECUTE xp_cmdshell 'bcp "SELECT Name FROM AdventureWorks2008R2.Sales.Currency" queryout Currency.Name.dat -T -c'
ラベル:
SQL Server
登録:
投稿 (Atom)