0

ADO Filter プロパティを使用して、列で Recordset をフィルター処理しようとしていuniqueidentifierます。SQLOLEDB.1プロバイダー を使用して、Windows 7 で ADO を使用して SQL Server 2008 に接続しています。

Recordset を作成し、それを使用して SQL クエリをサーバーに送信します。次に、ADORecordset.Filterプロパティを設定します。フィルターに対して何を試してもエラーが発生します。

私が試したら

[column name] = '5D9C83FB-E758-0D4B-B1C7-E751D951B67C'

私は得る

フィルターが開けられません。

私が試したら

[column name] like '%5D9C83FB-E758-0D4B-B1C7-E751D951B67C%'

私は得る

クラス文字列が無効です。

(注: わかりやすくするために、必要な二重引用符は省略しています。他のタイプの文字列列を検索できるので、引用符は問題になりません。)

私は Delphi XE2 を使用していますが、ラッパー コードを使用するのではなく、ADO オブジェクトを直接作成しているため、おそらく関係ないと思います。Filterさまざまな文字列型の列のプロパティに問題はありませんuniqueidentifier

私の基本的な質問は、これを機能させることができるかどうかです。どのように行うのですか (クエリ中に列を文字列に変換する以外)? より一般的な質問は、プロパティuniqueidentifierで列を使用する際のルールは何かということです。Filter関連するものが見つかりませんでした。

4

2 に答える 2

1

どちらの場合も、文字列のように扱っています。GUID 値を中かっこで囲むことをお勧めします。

[column name] = '{5D9C83FB-E758-0D4B-B1C7-E751D951B67C}'
于 2013-07-22T18:18:06.110 に答える