刹那(せつな)の瞬き

Willkömmen! Ich heiße Setsuna. Haben Sie etwas Zeit für mich?

SQLServer

SQLServerのBuild-an-appのWebページが無くなってた

SQL Server 2017 の頃に見つけた、お気に入りの開発者向けサイトがありました。 SQL Server - Get Started (Build-an-app) Microsoft のサイトなのですが、SQL Server の公式ドキュメント群とは別のものです。 C#, Java, Node.js, PHP, Python, Ruby, Go の…

Ubuntu 22.04をサポートしたMS版ODBCドライバが出揃ってた

先月 8/11 に Ubuntu 22.04 LTS の最初のポイントリリースがありました。 いい機会だったので SQLServer の公式サイトを確認したところ、ODBC ドライバのサポート対象に Ubuntu 22.04 が追加されてました。 Release Notes ODBC Driver for SQL Server on Lin…

odbc-apiクレートに乗り換えたら、MS版ODBCドライバからSQLServerへの接続が色々と捗った

macOS, Linux 環境での話です。 先月 MS 版 ODBC ドライバが更新されたのを機に、改めて Rust で ODBC ドライバを扱うクレートを探したところ、odbc-api クレートを発見しました。 https://crates.io/crates/odbc-api 後述する内容は、私なりに調べた結果を…

RustでSQLServerへの接続プールにdeadpoolを試してみた

以前、PostgreSQL で非同期な接続プールに deadpool を利用したことがあります。 GitHub - bikeshedder/deadpool: Dead simple pool implementation for rust with async-await deadpool/postgres at master · bikeshedder/deadpool · GitHub PostgreSQL へ…

RustでSQLServerへの接続プールにbb8 / bb8-tiberiusを試してみた

バックエンドで Tiberius を利用する非同期な接続プールに bb8 があります。 GitHub - djc/bb8: Full-featured async (tokio-based) postgres connection pool (like r2d2) GitHub - kardeiz/bb8-tiberius bb8 は SQLServer 用のアダプタ bb8-tiberius と組…

Rustでasync/awaitに対応したTiberiusからSQLServerに接続する

一年くらい前に Rust から ODBC ドライバで接続する方法を試してました。 その当時、直接 TDS プロトコルを扱う tiberius クレートも試してみたのですが、依存するクレートのバージョンを固定する必要があり、コードが書き辛い状態でした。 UbuntuでRustから…

SQLServerでサロゲートペアや結合文字列を扱う前に照合順序を確認しよう

SQL Server 2019 での話です。 Unicode の𠮷(つちよし), 𩸽(ほっけ)や (ビール), ‍‍‍(家族: 父母と女の子と男の子)のような絵文字等を扱う場合、データベースがサロゲートペアや結合文字列に対応している必要があります。 SQL Server の Unicode データ型は …

Knex.js ver 0.95.0以降でSQLServerのdatabase libraryがtediousに変わってた

Knex.js を利用して SQLServer に接続するコードを書いて実行したところ、 Error: No event 'socketConnect' in state 'SentPrelogin' のようなエラーが発生して接続できませんでした。他の DB には接続できるのに SQLServer だけ接続できないのは釈然としま…

LinuxのNode.jsでnode-odbcとMS版ODBCドライバからSQLServerに接続する

node-odbc モジュールから SQLServer への接続は FreeTDS の ODBC ドライバとの組み合わせで確認できました。 LinuxのNode.jsでnode-odbcとFreeTDSのODBCドライバからSQLServerに接続する しかし、同じソースコードを Microsoft 版 ODBC ドライバで実行する…

LinuxのNode.jsでnode-odbcとFreeTDSのODBCドライバからSQLServerに接続する

Node.js から SQLServer に接続する場合、node-mssql または直接 tedious モジュールを利用すればいいのですが、ODBC ドライバでの接続方法も調べてみました。 www.npmjs.com で調べたところ node-odbc モジュールを見つけました。 ODBC ドライバマネージャ…

Node.jsでnode-mssqlを利用してSQLServerに接続する

Node.js から SQLServer へ接続について、Microsoft のサイトにはtedious モジュールでの開発方法が掲載されています。 tedious モジュールを直接利用してコーディングする場合、どうしてもイベントの記述が煩雑になりがちなので、ずっと敬遠してました。 し…

Ubuntuでodbc-iterクレートを試したら便利だった

前回までで、Rust の odbc クレートから SQL Server 2019 on Linux に接続して、日本語を含むクエリが処理できるようになりました。 UbuntuでRustからSQLServerに接続できたけど道半ば UbuntuでodbcクレートとMS版ODBCドライバで日本語を扱う 次は日付や数値…

UbuntuでodbcクレートとMS版ODBCドライバで日本語を扱う

時折この記事が見られていますが、別の方法があるので紹介します。 2022-05-15 MS版ODBCドライバは odbc-api クレートで 現状 macOS, Linux 環境において、Rust で MS 版 ODBC ドライバを利用したい場合は、odbc クレートではなく、odbc-api クレートをお奨…

UbuntuでnanodbcからSQLServerに接続する #3 - 追試編

導入編では nanodbc をビルドして Ubuntu 環境にインストールしました。ここでは、日本語を含むテーブル・カラム・クエリ等の扱いと、その他、気になる点について追試してみます。 対象は引き続き MS 版 ODBC ドライバです。 1. 追試用プロジェクトの準備 導…

UbuntuでnanodbcからSQLServerに接続する #2 - テスト編

前回の記事では Ubuntu 環境下で nanodbc の構築とテストを実施しました。 C++ で ODBC 接続するのに便利な nanodbc は、そのテスト範囲も広かったです。もう少し nanodbc で用意されているテストについて掘り下げてみます。 1. テスト内容 SQL Server 用の…

UbuntuでnanodbcからSQLServerに接続する #1 - 導入編

C++ で ODBC 接続するのに便利な nanodbc (http://nanodbc.io/) という C++ wrapper が MIT ライセンスで公開されています。nanodbc は Windows だけでなく Linux や macOS 環境にも対応しています。私も Ubuntu に環境を用意して試してみました。 1. 環境 U…

UbuntuでFreeTDSとtdsppからSQLServerに接続する

久しぶりに FreeTDS を扱う機会を得たので、FreeTDS そのものというか、ODBC を使わずに、C++ で SQL Server on Linux に接続してみたくなりました。 とは言っても、直接 DB-Library / CT-Library を扱うつもりはなく、FreeTDS の Wikipedia にリンクが貼っ…

UbuntuでRustからSQLServerに接続できたけど道半ば

稀にこの記事が検索されるのですが、現状は全く異なります。 2022-05-15 元記事の内容が古すぎるので 現在は、macOS, Linux 環境でも Rust から SQLServer に接続可能です。私もそれなりに試したので、そちらを参考にしていただければ幸いです。 ODBC 非 Win…

Azure Data Studioを試したらSSMSくらい便利だった

少し前に Azure Data Studio の提供を開始とのアナウンスがありましたが、てっきり Azure SQL Database 専用かと思い、スルーしてました。 Azure Data Studio の提供を開始 | Microsoft Azure Azure Data Studio とは - Azure Data Studio | Microsoft Docs …

LXDコンテナのUbuntu18.04に日本語ロケールを設定してSQLServerをインストールする

ローカル環境の SQL Server 2019 on Linux は、その後、特に問題なく利用できてます。このままでも十分なのですが、パッケージの依存関係や諸々の理由から、開発環境とは分離したいと思うようになりました。 せっかく Ubuntu を使ってるので、試しに LXD コ…

シャットダウン中に mssql-server で止まってしまう

Ubuntu18.04 に SQL Server 2019 をインストールして開発環境は整いつつあるのですが、シャットダウン時に困った状態になりました。 サーバ用途ではない PC なので、使用しない場合は常に電源を切ります。いつものようにシャットダウンの操作をしたところ、…

OLE DBの非推奨が2018年に取り消されてた

2011年に OLE DB が非推奨でサポート廃止になるとのアナウンスがありました。 そろそろ終息したのかなと思ってたら、現在のこんな公式ドキュメントを見つけました。 Microsoft OLE DB Driver for SQL Server - SQL Server | Microsoft Docs OLE DB is now un…

UbuntuでQt5からSQLServer2019に接続する

前回の続きです。 unixODBCからMS版ODBCドライバでSQLServer2019に接続する unixODBC と Microsoft 版 ODBCドライバでの接続が確認できたので、次は Qt5 からアクセスしてみます。 ちなみに、Qt5 の SQLServer 用データベースドライバは QODBC ですが、Unix …

unixODBCからMS版ODBCドライバでSQLServer2019に接続する

Ubuntu で SQL Server on Linux の導入時にコマンドラインツールを導入すると、Microsoft 版の ODBCドライバもインストールされます。 Ubuntu18.04にSQLServer2019をインストールした後は unixodbc-dev パッケージも同時にインストールするし、せっかくなの…

UbuntuでNode.jsからSQLServer2019に接続する

SQL Server on Linux の評価の続きです。 Node.jsとReactの復習したら時代が変わってた Ubuntu で直近の Node.js 環境を整えたばかりなので、Node.js から SQL Server on Linux に接続してみます。 1. 環境 Ubuntu Desktop 18.04.4 LTS 日本語Remix (Linux K…

VSCodeのmssql拡張機能でSSMS気分を味わう

SQL Server on Linux の公式サイトを読むと、sqlcmd コマンド以外に接続する手段があります。 SQL Server on Linux の概要 - SQL Server | Microsoft Docs 本来、Windows PC があれば、普通に SSMS (SQL Server Management Studio) から接続して諸々の操作し…

Ubuntu18.04のSQLServer2019にデータベースファイルを移行する

前回までの続きです。 Ubuntu18.04にSQLServer2019をインストールする Ubuntu18.04にSQLServer2019をインストールした後は Ubuntu 上の SQLServer に sqlcmd で接続するところまで確認しました。次に、Windows 上の SQLServer で使用してたデータベースファ…

Ubuntu18.04にSQLServer2019をインストールした後は

前回の続きです。 Ubuntu18.04にSQLServer2019をインストールする まずは SQL Server 2019 が Ubuntu 上で動作するところまで確認しました。もう curl3 云々の件は忘れて良いみたい。 続いて、SQLServer に接続して、SQL 文を発行してみます。 4. SQL Server…

Ubuntu18.04にSQLServer2019をインストールする

SQL Server 2019 on Linux の提供が始まってしばらく経ちました。ようやくやる気になったので、まずは Ubuntu Desktop にインストールしてみます。 1. 環境 OS: Ubuntu Desktop 18.04.4 日本語Remix (Linux Kernel 5.3.0-28-generic) 今回は SQLServer 専用…

Qt5: 入門Qt4〜QtSqlから使ってみる

「入門Qt4プログラミング」の13章はデータベースについてです。Qt5環境でもテキストに従い、例題を進めます。ただし、接続するデータベースはSQLServerです。 QtCreatorで新しいプロジェクトから「Qtウィジェットアプリケーション」を選択。適当なプロジェク…