質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Delphi

DelphiはPascalを拡張してオブジェクト指向を導入したWindows, OS X,iOS,Androidのネイティブアプリケーションを開発するための言語です。旧称はObject Pascal。開発用IDE「Delphi」にあわせ現在の名前に改称されました。

Firebird

Firebirdは、オープンソースのリレーショナルデータベース管理システムです。オープンソースとしてBorland社が公開したInterBaseから派生したもので、MGAによる高度なトランザクション管理機能を持ちます。

Q&A

解決済

1回答

481閲覧

【Firebird2.5/Delphi】同一項目に3個以上の値を設定したあいまい検索を実行したい

chiyama

総合スコア11

Delphi

DelphiはPascalを拡張してオブジェクト指向を導入したWindows, OS X,iOS,Androidのネイティブアプリケーションを開発するための言語です。旧称はObject Pascal。開発用IDE「Delphi」にあわせ現在の名前に改称されました。

Firebird

Firebirdは、オープンソースのリレーショナルデータベース管理システムです。オープンソースとしてBorland社が公開したInterBaseから派生したもので、MGAによる高度なトランザクション管理機能を持ちます。

0グッド

0クリップ

投稿2019/07/15 20:22

Firebirdのあいまい検索に関する質問です。

Delphiのコード内で、下記のような同一項目に3個の値を指定したあいまい検索を
実行するクエリを作ったのですが、

SELECT * FROM CUSTOMER where (SEARCH_DATA like '%田中%') and (SEARCH_DATA like '%一郎%') and (SEARCH_DATA like '%テスト%')

Implementation limit exceeded block sizes exceeds implementation restriction
というエラーを表示して検索が実行されません。

FlameRobinで実行してもエラーになってしまいますのでこの様な使い方は出来ないみたいですね。

こういった検索を実装するにはどうすればいいのでしょうか?

ちなみにパラメータ2個では問題無く検索結果が表示されます。

以上、よろしくお願いいたします。

開発環境 Windows10 64bit / Delphi10.2 Win32 / Firebird 2.5.7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

※詳しくはありませんので、推測での回答になります。ご了承下さい。

エラーに該当するFAQがあります。
Implementation limit exceeded. Block size exceeds implementation restriction

上記2に対する対応としては、SELECT *ではなく、項目を限定するという対応が考えられます。
上記4に対する対応としては、where条件をexistsに変更するという対応が考えられます。

投稿2019/07/16 00:56

sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chiyama

2019/07/17 00:54

saziさん 回答ありがとうございます。 FAQは見ていたのですが、対策が思いつかなくて質問した次第です。 やはり項目を絞るしか無いようですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問