問題タブ [null-uniqueidentifier]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - SQL Server および厳密に型指定されたデータセットでの null GUID の処理
SQL サーバーにテーブルがあります。
ParentCategoryID は、どのカテゴリが親であるかを示すために、CategoryID に値を保持するためのものです。親を持たない (つまり、トップ カテゴリである) 場合、ParentCategoryID は null である必要があります。
厳密に型指定されたデータセット (テーブル アダプター) を使用していますが、ParentCategoryID のプロパティについては、null にすることはできません。型指定されたデータセットのフィールドのプロパティを変更しようとしましたが、GUID を「空」または「何も」作成しようとしても無効であると表示されます。唯一のオプションは、null で例外をスローすることです。これにより、エラーが発生します。
テーブル 'Categories' の列 'ParentCategoryID ' の値は DBNull です。
これはどうですか、または型指定されたデータセットを使用するときに null GUID/uniqueidentifiers を処理する方法はありますか?
php - Doctrine SQL Serverのuniqueidentifierは、データベースから取得したときにcharまたはnvarcharとしてキャストされません
「uniqueidentifier」タイプの列を持つデータベースからレコードを取得すると、Doctrineはデータベースからの一意のIDではなく「null」でレコードを埋めます。
いくつかの調査とテストにより、これはPDO/dblibドライバーの問題に帰着しました。PDOを介して直接クエリを実行すると、一意のIDの代わりにnullが返されます。
参考までに、http://trac.doctrine-project.org/ticket/1096にこれについて少し触れていますが、11か月前に更新され、解決のためのコメントはありません。
これを回避する方法は、http://bugs.php.net/bug.php?id = 24752&edit = 1で説明されているように、列を文字としてキャストすることです。ただし、Doctrineがモデルの生成以外にネイティブフィールドタイプを公開しているようには見えないため、SQLクエリを構築するときにuniqueidentifierタイプを検出して内部でキャストするのが少し難しくなります。
誰かがこれの回避策を見つけましたか?