Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【MMD】「d3dx9_43.dllが見つからないため、コードの実行を続行できません。プログラムを再インストールすると、この問題が解決する可能性があります。」

2024年2月現在の64ビット版の最新バージョンは9.32。Windows 11で起動すると、以下のメッセージが表示されて起動できないはず。

「d3dx9_43.dllが見つからないため、コードの実行を続行できません。プログラムを再インストールすると、この問題が解決する可能性があります。」

DirectX End-User Runtimeをインストールすればよい。

DirectX End-User Runtime

ファイル名はdxwebsetup.exe。このファイルはダウンロードしてインストールを開始するため、起動すると最初にダウンロードが始まる。

【MMD】「このアプリケーションのサイドバイサイド構成が正しくないため、アプリケーションを開始できませんでした。詳細については、アプリケーションのイベントログを参照するか、コマンドラインツールsxstrace.exeを使用してください。」

2024年2月現在の64ビット版の最新バージョンは9.32。Windows 11で起動すると、以下のメッセージが表示されて起動できないはず。

「このアプリケーションのサイドバイサイド構成が正しくないため、アプリケーションを開始できませんでした。詳細については、アプリケーションのイベントログを参照するか、コマンドラインツールsxstrace.exeを使用してください。」

Microsoft Visual C++ 2008 Service Pack 1再頒布可能パッケージMFCのセキュリティ更新プログラムをインストールすればよい。ダウンロードできるファイルはvcredist_x64.exe。

【Google】URLに検索したい文字列を含めてブラウザーで開く

Googleの検索結果のアドレスのページは以下のとおり。○○○は検索したい文字列をパーセントエンコーディングで表したもの。つまり「q=」以降に任意のパーセントエンコーディングした文字列を付け加えれば、検索した結果のページを自由に開くことができるようになる。

https://www.google.co.jp/search?q=○○○

例えば、「和多田美咲」を検索した結果のページを表示してみる。PowerShellで文字列「和多田美咲」をパーセントエンコーディングする。

PS > Add-Type -AssemblyName System.Web
PS > [System.Web.HttpUtility]::UrlEncode("和多田美咲")
%e5%92%8c%e5%a4%9a%e7%94%b0%e7%be%8e%e5%92%b2

よってURLは以下のようになる。

https://www.google.co.jp/search?q=%e5%92%8c%e5%a4%9a%e7%94%b0%e7%be%8e%e5%92%b2

クリックして開くと、「和多田美咲」を検索した結果のページが開かれるはず。

【MySQL】テーブルの特定の列の値で順位付けを行う

rank関数かdense_rank関数を使う。両関数は動作が異なり、rank関数は指定の列の値に同じ値があった場合は同位としてその次の順位を飛ばすが、dense_rank関数は同じ値があった場合は同位として次の順位は飛ばさない。両関数は指定された列の値に基づいて順位付けを行う。順位付けのデフォルトは昇順のため、これを降順にしたい場合は列を指定する際にdescを指定する。

mysql> select * from temptb;
+------+
| no   |
+------+
|   20 |
|   20 |
|   30 |
|   10 |
|   40 |
+------+
5 rows in set (0.00 sec)
mysql> select no,
    -> rank() over (order by no) as rankno,
    -> dense_rank() over (order by no) as drankno
    -> from temptb;
+------+--------+---------+
| no   | rankno | drankno |
+------+--------+---------+
|   10 |      1 |       1 |
|   20 |      2 |       2 |
|   20 |      2 |       2 |
|   30 |      4 |       3 |
|   40 |      5 |       4 |
+------+--------+---------+
5 rows in set (0.00 sec)
mysql> select no,
    -> rank() over (order by no desc) as rankno,
    -> dense_rank() over (order by no desc) as drankno
    -> from temptb;
+------+--------+---------+
| no   | rankno | drankno |
+------+--------+---------+
|   40 |      1 |       1 |
|   30 |      2 |       2 |
|   20 |      3 |       3 |
|   20 |      3 |       3 |
|   10 |      5 |       4 |
+------+--------+---------+
5 rows in set (0.00 sec)

【MySQL】テーブルに連番付けを行う

row_number関数を使う。over句に何も指定しなければテーブルに登録されている順に連番付けされる。以下は既存のtemptbというテーブルを利用した動作例。

mysql> select * from temptb;
+------+
| no   |
+------+
|   20 |
|   20 |
|   30 |
|   10 |
|   40 |
+------+
5 rows in set (0.00 sec)
mysql> select no, row_number() over () as rownumber from temptb;
+------+-----------+
| no   | rownumber |
+------+-----------+
|   20 |         1 |
|   20 |         2 |
|   30 |         3 |
|   10 |         4 |
|   40 |         5 |
+------+-----------+
5 rows in set (0.00 sec)
mysql> select no, row_number() over (order by no) as rownumber from temptb;
+------+-----------+
| no   | rownumber |
+------+-----------+
|   10 |         1 |
|   20 |         2 |
|   20 |         3 |
|   30 |         4 |
|   40 |         5 |
+------+-----------+
5 rows in set (0.00 sec)

【PowerShell】文字列のパーセントエンコーディングを行う

HttpUtilityクラスのUrlEncodeメソッドを使うと、パーセントエンコーディングすることができる。逆にUrlDecodeメソッドはデコードすることができる。あらかじめAdd-TypeコマンドレットでSystem.Drawing名前空間を現在のセッションに追加しておく必要がある。引数に文字列だけ指定した場合は、UTF-8文字コードで作成した結果を返す。

PS > Add-Type -AssemblyName System.Web
PS > [System.Web.HttpUtility]::UrlEncode("石見舞菜香")
%e7%9f%b3%e8%a6%8b%e8%88%9e%e8%8f%9c%e9%a6%99
PS > [System.Web.HttpUtility]::UrlDecode("%e7%9f%b3%e8%a6%8b%e8%88%9e%e8%8f%9c%e9%a6%99")
石見舞菜香

UrlEncodeメソッドの第2引数に文字コードを指定すれば、指定した文字コードに応じて変換した値が返る。UrlDecodeメソッドも同様。以下はShift_JISで変換した例。

PS > [System.Web.HttpUtility]::UrlEncode("石見舞菜香", [System.Text.Encoding]::GetEncoding("shift_jis"))
%90%ce%8c%a9%95%91%8d%d8%8d%81
PS > [System.Web.HttpUtility]::UrlDecode("%90%ce%8c%a9%95%91%8d%d8%8d%81", [System.Text.Encoding]::GetEncoding("shift_jis"))
石見舞菜香

【SQL Server】テーブルを作成する

create table文を使う。あらかじめuse文で使用するデータベースを指定しておく必要がある。以下は、データベースprincessにテーブルumamusumeを作成した例。

1> use princess
2> create table umamusume (
3> no integer,
4> name varchar(20),
5> prizemoney float,
6> seiyu varchar(20),
7> dummydate datetime
8> );
9> go
データベース コンテキストが 'princess' に変更されました。
1> select substring(name, 1, 12), database_id, create_date
2> from sys.databases;
3> go
             database_id create_date
------------ ----------- -----------------------
master                 1 2003-04-08 09:13:36.390
tempdb                 2 2024-03-07 13:36:23.090
model                  3 2003-04-08 09:13:36.390
msdb                   4 2019-09-24 14:21:42.270
princess               5 2024-03-08 20:32:39.873
(5 行処理されました)

【TeX】空集合の記号∅を出力する

空集合(要素を一つも含まない集合)の記号∅を出力するには\emptysetを使う

空集合は $\emptyset$ という記号で表す。
→
空集合は∅という記号で表す。

高校の数学の教科書ではφ(\phi、ギリシア文字の小文字のファイ)が使用されるが、大学以上の数学では∅(アラビア数字の零に右上から斜線を引いたような記号)が使われる。

【SQL Server】データベースを作成(削除)する

作成にはcreate database、削除にはdrop database文を使う。以下はprincessというデータベースを新規作成してすぐに削除した例。

1> select substring(name, 1, 6) from sys.databases;
2> go
------
master
tempdb
model
msdb
1> create database princess;
2> go
1> select substring(name, 1, 6) from sys.databases;
2> go
------
master
tempdb
model
msdb
princess
1> drop database princess;
2> go
1> select substring(name, 1, 6) from sys.databases;
2> go
------
master
tempdb
model
msdb

【SQL Server】データベースを一覧表示する

SQL Server】データベースを一覧表示する select文でsys.databasesテーブルを参照する。その環境のSQL Serverのデータベースはインストール時に作成されるsys.databasesテーブルに格納されている。

1> select substring(name, 1, 12), database_id, create_date
2> from sys.databases;
3> go
             database_id create_date
------------ ----------- -----------------------
master                 1 2003-04-08 09:13:36.390
tempdb                 2 2024-03-07 13:36:23.090
model                  3 2003-04-08 09:13:36.390
msdb                   4 2019-09-24 14:21:42.270

name列は文字の幅が長いため、substring関数で12文字の長さに縮めて表示している。master, tempdb, model, msdbの各データベースは、インストール時に自動で作成されたデータベースのこと。 試しにデータベースを作成して再度一覧表示してみる。

1> create database testdb;
2> go
1> select substring(name, 1, 6), database_id, create_date
2> from sys.databases;
3> go
       database_id create_date
------ ----------- -----------------------
master           1 2003-04-08 09:13:36.390
tempdb           2 2024-03-07 13:36:23.090
model            3 2003-04-08 09:13:36.390
msdb             4 2019-09-24 14:21:42.270
testdb           5 2024-03-07 23:40:16.207

sys.databasesの詳細については、以下を参照のこと。

https://learn.microsoft.com/ja-jp/sql/relational-databases/system-catalog-views/sys-databases-transact-sql?view=sql-server-ver16