問題タブ [interbase]

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.

0 投票する
1 に答える
792 参照

java - GlassfishにInterbase接続プールを追加するにはどうすればよいですか?

プロジェクトでEJB3.1を使用するために、Interbase接続プールをGlassFishv3に追加しようとしています。Glassfishログはデータベースに正しく接続しているように見え、すべてのテーブル名とインデックスを吐き出します。ただし、エラーが発生します

INFO: fetching database metadata SEVERE: could not complete schema update java.lang.NullPointerException at interbase.interclient.ResultSet.local_Close(Unknown Source) ...

また、Glassfish内から接続プールにpingを実行すると、「Ping failedException--null」が表示されます。

接続プールで次のプロパティを設定しています。
リソースタイプ:javax.sql.DataSource
データソースクラス名:interbase.interclient.DataSource
ポート番号:3050
およびデータベース情報。

他の場所で情報を見つけることができないようです。この質問は似ていますが、回答がありませんでした。

ありがとう。

0 投票する
4 に答える
750 参照

sql - InterbaseでSQLを最適化する

私はSQLに関する以前の質問からの良い答えに触発されました。現在、このSQLはInterbase2009を搭載したDBで実行されています。サイズは約21GBです。

AddrDistanceには840000行、Addressには190000行、DistanceQueryTaskには4行あります。

問題は、これをより速く行うことができるかということです。同じクエリが何度も実行されると思いますが、DistanceQueryTaskからbold_idを選択します。私はストアドプロシージャには興味がなく、単なるSQLに興味があることに注意してください:)

EDIT1現在の実行プランは次のとおりです。

はい、DistanceQueryTaskは、データベース内の行の数が少ないことを意味します。

0 投票する
1 に答える
2296 参照

delphi - DelphiのTWideStringFieldのように機能するようにTStringFieldを微調整することは可能ですか?

UnicodeをDelphi2009およびInterbaseで使用したいのですが、文字エンコードをWIN1252からUNICODE_FSSまたはUTF8に切り替えるには、最初にすべてのデータモジュールでTStringFieldのすべてのインスタンスをTWideStringFieldに置き換える必要があることがわかりました。約60のデータモジュールの場合、これを1つの週末に単純に行うことはできません。移行戦略には2つのオプションしか表示されません。

  • 'expected:TWideStringField'エラーをトリガーせずに既存のTStringFieldフィールドを使用できるようにする回避策を見つけます

また

  • 文字列型の競合を回避するために、すべての永続フィールドを削除します

私の知る限り、永続データベースフィールドのフィールドタイプは、ある種のクラスレジストリに登録されています。これを使用して、TStringFieldがUNICODE_FSSまたはUTF8エンコーディングのInterbase文字列で問題ないとDelphiに信じ込ませることができますか?

または、どちらの場合もTStringFieldで動作する市販のdbExpressドライバーを使用できますか?

関連する質問も参照してください:Delphi dbExpressとInterbase:UTF8の移行手順とリスク?


更新:すべてのDFMおよびPASファイルでTStringFieldのすべてのオカレンスをTWideStringFieldに置き換えた後、TWideStringFieldsの「Size」プロパティ値を約100か所で4倍する必要があることがわかりました(UTF8を使用する場合)。そこで、DFMを修正するための手作業を減らす方法の報奨金を開始します

0 投票する
3 に答える
398 参照

sql - Interbase の Hibernate 方言

私は Interbase サーバーで多くの作業を行っています。NHibernate を使用してデータ アクセス レイヤーを開発したいのですが、Interbase 用の既製のダイアクトがありません。

一般的なANSIのみのデータベース作業に使用されるNHibernate方言はありますか、それとも既存の方言のいずれかがInterbaseで問題なく動作するかどうかは誰にもわかりませんか?

一方で、新しい方言を作るにはどのような作業が必要なのでしょうか。

あなたが提供できるアドバイスをありがとう。

デビッド

0 投票する
2 に答える
3325 参照

sql - Firebird.NET 2.5を使用してSQLスクリプトを実行する際の問題(エラーコード= -104)

まずは英語でごめんなさい。問題があり、助けが必要です。私はc#で自分で作った簡単なツールを持っています。このツールは、ローカルまたはリモートのfirebirdサーバー(v.2.5)に接続します。そして、私のツールは、サーバー上のどこかに指定された.fdbファイル(データベース)を作成できます。

また、SQLステートメント(テーブルの作成、トリガーなど)を含むファイルがあります。データベース作成後にこのファイルを実行したい。このファイルを実行すると、ユーザーデータベースの構造がいっぱいになります。データではなく、構造だけです。

しかし、それから私は自分のSQLスクリプトを実行しようとします-firebirdサーバーは

SQLエラーコード=-104トークン不明の行xxx列xxx。

これがこのCREATE TABLESQLステートメントの行です。例:

ファイルにcreateステートメントを1つだけ残すと、すべてがうまくいきます...どのように説明したかわかりません(明確かどうかはわかりません))-別の言葉-多くのcreateステートメントで完全なクエリを実行できないのはなぜですか1つのトランザクションで?クエリを実行する私のメインメソッドがあります:

私のSQLファイルというクエリがあります。

0 投票する
2 に答える
754 参照

sql - 検索結果をコンボボックスに一覧表示する

今は少しハッキーなので、検索を変更したいと思います。現在、次のように機能します。

  1. ユーザーは、 Volvoなどのテキストをテキスト ボックスに入力し、検索を開始します。
  2. Volvo を含むすべての投稿を SQL で検索します。
  3. 結果は、BoldID と DisplayValue の 2 つの列を持つリストです。
  4. BoldID は、データベース内のオブジェクトを識別するための一意の番号です。
  5. DisplayValue は、結果のリストでユーザーに表示されるものです。
  6. 結果セットの各行は、ユーザー リストの行番号で識別されます。最初は 1、2 番目は 2 などです。
  7. コードでクエリをループすることにより、意図的に最大 99 件のヒットのみを表示するという制限もあります。多くのヒットを返すクエリを使用するのは良くありません。ユーザー ヒット リストにこれ以上ヒットしても意味がないからです。その場合、検索はより具体的にする必要があります。

結果リストは、rightpane と呼ばれる別のグローバル ウィンドウに表示されます。ハックな部分は、モーダル ダイアログから検索する場合、マウスで値を選択できるようにするには、右ペインをメイン ウィンドウからドッキング解除する必要があることです。これが原因で、アプリケーションがメイン ウィンドウの背後にあるモーダル ダイアログでロックされることがあると考えられます。

変更後、次のように動作するはずです。

ユーザーはコンボボックスにテキストを入力し、以前と同様に SQL オンデマンドで検索を開始します。ただし、結果セットはコンボボックスに表示されます。したがって、使用中の古い SQL クエリが多数あり、現在は正常に動作しているため、可能であれば表示のみを変更したいと考えています。

Delphi 2007、Interbase 2009、および DevExpress のコンポーネントを使用しています。昨日、カスタムデータソースをコンボボックスに接続しようとしましたが、まだ実装されていませんでした。TcxExtLookupComboBox で TcxCustomDataSource を使用する方法を参照してください。カスタム データソースを使用して、行数とヒットの最大数を実装したいと考えています。上記のリストの 6 と 7 を参照してください。

だから今、私は2つのオプションが表示されます:

  • DB 対応のコンボボックスを使用する
  • テキストボックスを使用し、グリッドをアタッチして結果セットを表示します。

コンボボックスはコンポーネント全体であるためシンプルですが、上記のリストの機能 6 と 7 を実装する方法がわかりません。テキストボックス + グリッドは自由度が高くなりますが、より多くの作業が必要になります。

私は最初のオプションを好みます。現在の問題は次のとおりです。

  • Interbase SQL は結果セットのヒット数を制限できないと思います。コードで行う必要があります。これは、DB 対応のコンボボックスでどのように行われますか?
  • 結果セットに行番号を表示するにはどうすればよいですか?

更新 1: Marjan のおかげで、要件 7 が解決されました。6に関しては難しいと思います。理想的には SQL でそれが必要なので、Add row no のような独自の列を抽出できます。しかし、Interbase はそれをサポートしていません。

0 投票する
1 に答える
2026 参照

sql - Interbase から SQL で行番号を生成する

これは Interbase から可能ですか? たとえば、このリンクのように。

0 投票する
2 に答える
930 参照

sql - IBDAC / UniDAC + interbase 6 または 7 + 「returning」という名前のテーブル フィールド

UniDAC コンポーネントを使用するために、非常に古いコードを移植しています。「returning」という名前のフィールドを変更する特定の UPDATE sql で壁にぶつかりました。データベースの SQL 方言は 1 であり、二重引用符フィールド区切り文字をサポートしていないため、単にフィールドを引用符で囲むだけでは問題は解決しません。フィールドを変更せずにこれを回避する方法はありますか? 私は Delphi 7 を使用しており、interbase db コンポーネントから離れています。

編集:SQLは次のとおりです。

準備しようとすると、次のエラーが返されます。

これは、コードでクライアント SQL ダイアレクトを 1 に設定した場合でも発生します。

0 投票する
3 に答える
8735 参照

sql - Interbase の既存のデータベースの文字セットを変更する方法

データベースがあり、クライアントは Delphi 2007 で作成されています。最新の Interbase 2009 が使用されています。データベースは古く、2002 年頃に作成されたもので、現在は 25 GB を超えています。最近、IBConsoleでそれを発見しました

upper('åäö')

'åäö' を生成します。「ÅÄÖ」である必要があります。これは、英語のアルファベットにないスウェーデンの文字です。

この件について検索したところ、このリンクが見つかりました。重要な部分は次のとおりです。

既存のデータベースのデフォルトの文字セットを変更するにはどうすればよいですか? これを行う方法はサポートされていません。メタデータからデータベースを再作成する必要があります。

このブログは 2004 年 6 月 29 日に Craig Stuntz によって書かれました。Interbase がその後進化し、Interbase 2009 の文字セットを簡単に変更できる方法があることを願っています。不可能な場合は、gbk バックアップ ファイルから実行できますか? 最後のオプションは、適切な文字セットを使用して完全に新しいデータベースを作成し、何らかの方法で古いデータベースからデータを抽出することです。

だから私は2つの質問があります。

  1. 文字セットを変更する最も簡単な方法は何ですか?
  2. upper('åäö') = 'ÅÄÖ' を使用するには、どの文字セットを選択する必要がありますか?

編集:クレイグが言ったように、文字セットを認識しているデータをコピーする以外に本当の方法はありません。だから私は別の方法を選びます。

これは、Interbase から取得した結果であるため、この場合はスウェーデン語の文字を小文字に戻すだけです。最善の解決策ではないかもしれませんが、うまくいくと思います。

0 投票する
1 に答える
61 参照

sql - 最初のケースでdebit='null'が表示され、2番目のケースで正しい金額が表示されるのはなぜですか

最初のケースでdebit='null'が表示され、2番目のケースで正しい金額が表示されるのはなぜですか