一人情シスのつぶやき

名古屋の中小企業で一人情シスをしている作者が、日々の業務で思うことをつぶやきます。

AccessにOleDbアクセス時、日付型のパラメータを使用する場合は型を明示する必要あり

はまった... Accessのときのみ発生。

Parameterを使う際、通常、設定した値の型からよきにはからって処理してくれるが、AccessでDateTime、特に時刻部分が設定されている場合ではエラーとなる。

yan-note.blogspot.jp

C#でのDbTransaction.Rollback

C#のTransactionにて、DbTransactionをusing句で使えば、Disposeの際にRollbackされるので、明示的なRollbackが不要とあったのだが、どうもそのように記載しているサイトのほうが少ないように見える。

MSDNで確認したところ、そうあるべきではるが、ベンダー依存のため前提とするのはだめらしい。

Dispose should rollback the transaction. However, the behavior of Dispose is provider specific, and should not replace calling Rollback.

https://msdn.microsoft.com/ja-jp/library/bf2cw321(v=vs.110).aspx

SqlTransactionだけならいいかもしれないが、OleDb(Access)やMySQLも共通化している今のコードでは駄目なようだ。try catch使うしかない。

IDbTransaction.Rollback メソッド (System.Data)

iPad(9.7)でMicrosoft Remote Desktop使用時の注意事項

会社で支給されたiPad Pro 9.7inchで、Microsoft Remote Desktopを利用してWindows 10にアクセスしたところ、その後Windows10にローカルアクセスした際に英語キーボードの設定になっていた。

iPad Pro 9.7inchはSmartKeyboardを使用していて、英語キーボードしかないモデル。おそらくこの設定をMicrosoft Remote Desktopが設定してくれたのだろう。 賢いと言えば賢いのだが...

Windows 10の設定を見ても日本語キーボードとなっている。一旦英語キーボードに変えようとするとサインアウトを促されるので、キーボードレイアウトの変更はサインアウトをしないと反映されないのだろう。 今回も一旦再起動することで日本語キーボードに戻った。

redmineのwikiにおけるhtmlのサポート

redmineで、markdown形式を使っていると、文字に色を付ける方法がない。 セキュリティの観点から、あえてすべてのhtmlタグをフィルタしているようだ...

www.redmine.org

社内で運用している場合にセキュリティを気にして表現力が落ちてもしょうがないので、管理画面で切り替えるなどできるといいのだが... 以下のサイトを参考に設定ファイルを直接書き換え、利用できるようになった。

Wikiの記述にHTMLタグを使用したい — Redmine.JP

DockerのHostの設定変更のcontainerへの反映

Host側でのresolv.confを変更したのだが、containerには、docker-compose restartやstop -> startでは反映されない。 一度downしてからupする必要がある。

AccessでのYes/No型を外部結合してGroupByすると「カレントレコードがありません」

タイトルの通り。

Accessで、OLEDB経由でもAccessで直接クエリをたたいても「カレントレコードがありません」と表示されるエラーに遭遇し、SQLを切り分けたところ、Yes/No型のフィールドが原因と判明。 ググってみると、Yes/No型を外部結合してGroupByすると、Nullが発生した場合に処理できず、このようなエラーが出るらしい。

www.pcreview.co.uk

対処法は、リンク先にある通り、SELECT、GROUP BYの双方をNzでNullの場合の値を指定すること。

OLEDB接続の場合はNz関数が利用できないので、IIfとIsNullを組み合わせる。

Access嫌だ...

RTX1200でL2TP,IPSECによるVPN接続

RTX1200でL2TP,IPSECによるVPN接続を行った。

 

iOS11(iPhone 7, iPad Pro 1st)では問題なく接続できるのだが、Android, Windows, Linux(Ubuntu)はことごとくダメだった。Windowsはそもそも保証対象外と明記されているらしいのだが、iOSがつながるのならAndroidもつながっても良いと思うのだが...

Ubuntuの事例として、あわしろさんの記事を見つけたので、これを参考に再チャレンジしようと思う。