読者です 読者をやめる 読者になる 読者になる

TTYF ~earlgrey の雑記~

主に自分用メモとか

VB の論理演算における三値論理に注意

この記事は、Visual Basic Advent Calendar 2016 の 23 日目のエントリーです。22 日目は sutefu さんの なんちゃって仮想労働者を作る2 でした。 三値論理とは 最初に、そもそも三値論理とは何か、というところの説明をします。通常プログラミング言語にお…

VB でインターフェイスの明示的実装

この記事は、Visual Basic Advent Calendar 2016 の 17 日目のエントリーです。16 日目は mmYYmmdd さんの VBAHaskell での関数定義 でした。今回紹介するネタは特に目新しいものではないのですが、VB でインターフェイスの明示的実装方法を調べるときのググ…

Node.js の開発環境構築(Debian 編)

このところ業務で Node.js をやる可能性がほんのり出てきたので、開発環境の構築方法をメモしてみます。よくわかってないでとりあえずやってみてる感じなので、実用的かどうかはわかりませんが。 nvm(Node Version Manager) のインストール Debian だったら…

MDF ファイルのみからデータベースをリストアする方法

先日開発環境でやらかしたので、忘れないうちに自分用にメモします。 注意とお約束 これから記述する内容は無保証ですので、適用する場合は自己責任でお願いします。 また、最終手段としてとりあえずデータベースを認識させるためのものであり、障害発生時点…

VB レガシー機能の多くを封じる方法

今回は、2 年前にとある勉強会で発表した時のネタの一部ですが、今でもこれについて具体的に紹介した日本語のリソースが見当たらないので投稿することにしました。 VB6 おじさん 昨今良くネタにされる、SIer を始めとした労働集約型の開発チームだと、政治的…

sp_executesql におけるオブジェクト名の記述方法

SqlClient でパラメータを使用した SQL を実行すると、実際は sp_executesql に変換されます。 プロファイラを使えばその様子を簡単に観察することができます。 using System; using System.Data; using System.Data.SqlClient; static void Main(string[] a…

BULK INSERT 時のソート操作

SQL Server で大量データを一括登録するときは BULK INSERT を用いますが、並び順を気にしておかないと、状況によっては内部的にソートが発生したり、登録後のテーブルが断片化したりします。 ただ私も詳細はあまりよく把握していないので、いろいろ検証して…

IEnumerable<T> を DataTable に変換する

このご時世に DataTable かよ、という感じもしますし、私自身実案件では Dapper をメインで使用しているわけですが、少しは使える場面もあるかもしれません。 例えばデバッガで使える DataSet ビジュアライザ。こういうやつですね。これなら複数レコードのプ…

ExpressionTree の PropertyOrField

ExpressionTree でプロパティやフィールドの値を取得するとき、Expression.Property や Expression.Field を使えば良いんですが、Expression.PropertyOrField なんてのもあり、こっちだとその名の通りプロパティでもフィールドでもどっちでも OK みたいです…