jquery セレクタの"@"について
によると1.3からはSizzleを使うことになりXPath?由来の"@"は使用しないことになったらしいが、 昔のソースを眺めていたらまだ使われていた。 そのソースではjqueryは1.3なんだけど動作しているように思え、念の為検証してみた。
<!doctype html> <html> <head> <meta charset="utf-8"> <title>test jquery 1.3</title> <script src="./jquery-1.3.js"></script> <script type="text/javascript"> $(document).ready(function() { var v0 = $(":radio[@id]:checked").val(); var v1 = $(":radio[id]:checked").val(); var v2 = $(":radio['id']:checked").val(); var v3 = $(":radio[@name='id']:checked").val(); var v4 = $(":radio[name='id']:checked").val(); $("#result0").text(v0); $("#result1").text(v1); $("#result2").text(v2); $("#result3").text(v3); $("#result4").text(v4); }); </script> <style type="text/css"> font-size: 10px; </style> </head> <body> <h1>test result</h1> <form action=""> <input type="radio" name="id" value="0">0 <input type="radio" name="id" value="1">1 <input type="radio" name="id" value="2" checked="checked">2 <input type="radio" name="id" value="3">3 </form> <ul id="result"> <li id="result0"></li> <li id="result1"></li> <li id="result2"></li> <li id="result3"></li> <li id="result4"></li> </ul> </body> </html>
ローカル(Firefox, Chrome, IE11, Edge)で確認してみたところ、やっぱり動いている。 なお、上記のリリースノートにはアップグレードするには単純に"@"を削除しろと書いてあるけど、 [@attr]は['attr']と(当然)しないといけない。
Oracleでユーザまるごと削除しようとしたときのエラーについて
ユーザまるごとオブジェクトを削除しようとして、
SQL> DROP USER FOO CASCADE 行1でエラーが発生しました。 ORA-01940: 現在接続中のユーザを削除することは出来ません。
となるときがあり、もちろん接続しているユーザを確認してから実行したのだけれどなぜかそうなったときは、
SQL> select sid, serial#, username, program from v$session where username = 'FOO'; SQL> alter system kill session '上記のSID, 上記のSERIAL#`;
を実行してから、再度DROP USERを実行してうまくいった。
参考は以下。
VB 配列の初期化
VBで配列の初期化をしようと以下のようにしたところ
Public Sub Main() Dim index As Integer Dim dSample() As Double dSample = Array(1.1, 1.2, 1.3) 'UBoundが参照することで「型が一致しません。」というコンパイルエラー For index = 0 To UBound(dSample) MsgBox (dSample(index)) Next End Sub
実行時エラー '13': 型が一致しません。
となった。 わからなくって、検索しててやっと以下のサイトに到着。
どうも、型指定がVariantであればエラーにならないらしい(なんで?)。
Public Sub Main() Dim index As Integer 'VariantだとArrayで初期化できる Dim sample() As Variant sample = Array(1.1, 1.2, 1.3) For index = 0 To UBound(sample) MsgBox (sample(index)) Next End Sub
見つけたサイトに書いてあるように、配列をStringで型指定していて Splitで設定していたときがあったので てっきり型指定しても問題ないもんだと思い込んでいたが違うらしい。
うーん、それなら型指定全部いらなくない?
VBで省略可能な引数の注意点
引数省略は便利なんだが、見た目がいまいちという場合は避けたいところ。
Sub subfunc(ByVal arg1 As String, Optional ByVal arg2 As String = "TEST2", Optional ByVal arg3 As String = "TEST3") .... End Sub .... subfunc("test1", , "test3")
こう書かれると、ぱっと見わかんないよね。コード可読性として問題なのでレビュー時、ボツにしたい。
Excelのファイル同士の比較
VBA(VBS)で複数行を一行に書くには、一行を分割するには。
複数行を一行で書くには
コロン「:
」を使う。
Sub debug(): MsgBox("テスト"): End Sub
一行を分割するには
アンダースコア 「_
」を使う。
Sub debug() MsgBox("テスト",_ vbYesNo) End Sub
VBの文字チョイスのセンスが分からない。。。
where, group by, havingとかの評価(優先)順位
where -> group by -> having -> select -> order by
の順で評価するのでhavingにはselectでつけた別名を指定できない。order byには指定できる。
例:年が2010以降で名前ごとの件数が1より大きいものを大きい順で表示。
select name, count(*) cnt from TBL where year >= '2010' group by name having count(*) > 1 order by cnt desc ;