問題タブ [firedac]

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 投票する
2 に答える
6295 参照

delphi - FireDAC を使用して組み込みの Firebird 2.5 に接続する

何をしても、FireDAC を使用して Firebird 2.5 組み込みデータベースに接続できないようです。面白いのは、昨日はうまくいったように見えたのに、突然うまくいかなくなったということです。

なぜ突然機能しなくなったのか頭をかきむしるよりも、何が起こっているのかを段階的に把握できるように、クリーンなプロジェクトの再構築を開始しました。もちろん、Firebird からダウンロードしたパッケージの内容全体をアプリケーション ディレクトリとデータベース自体に追加 (コピー) しました。

フォルダーの問題を回避するために、すべてのファイル (および exe) を同じディレクトリに配置するように Delphi 環境オプションを設定しました。次に、Firebird の *.doc フォルダーにある提案を使用して、fbembed.dll の名前を fbclient.dll に変更しました。(この問題に関するいくつかの FireDAC Q&A で、Firedac には fbembed.dll ファイルが必要であると読みました。まあ、両方の方法を試しましたが、いずれにしても機能しません)。しかし、fbclient.dll の最初の問題に固執させてください。

接続を確立するために、データモジュールに FDPhysFBDriverLink1 と FDConnection1 をドロップしました。

今度は FDPhysFBDriverLink1: BaseDriverID は FB です。DriverID については、両方の提案を試しました。最初に 'FB' を使用し、次に fbclient.dll へのフル パスを指定します。どれも違いを生むようには見えません。

Firedac 接続エディタにアクセスしてデータベース ファイルへのパスを入力すると、「ベンダー ライブラリ (fbclient.dll または fbembed.dll) を読み込めません」というエラーが表示されます。ただし、これらのファイルは両方ともアプリケーションの exe フォルダーにあります (Embarcadero サイトで提案されているように)。では、FireDAC はどこでファイルを探しているのでしょうか? Firebird と FireDAC には、接続を成功させるために何をしなければならないかを簡単に説明できないので、少しうんざりしています。彼らが提供するのは、どれも機能しないいくつかのあいまいなオプションだけです。これを追加して、最後に失敗します。

したがって、誰かが簡単な回答でこれを行う方法について経験がある場合(リンクはありません。すべてを見て試してみました)、とても感謝しています。簡単な接続を確立するために何日も試みるのは、本当にばかげています。同様の結果でUniDACでも試しました。接続を完了するにはどうすればよいですか?

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

sql - SQL 変換エラー / select ステートメントにパラメータを挿入する方法は?

FireDAC を介して接続する IB データベースを実行しています。

次の動的クエリが機能します。

A_INDEXRELATIONS (整数)に列を追加します。この列では、パラメーターを指定したいので、次のようにします。

ただし、これは機能しません。何らかの理由で、クエリを実行すると、CATEGORYparam の変換エラーがあると不平を言います。

これは、このクエリ操作の完全なコードです。

ここに画像の説明を入力

私はまだSQL、データベース、FireDACについて学んでいるので、selectステートメントに直接値を入力できる理由が本当にわかりませんが、paramはダメです。

A_INDEX最初のクエリを使用して、列にパラメーターを動的に挿入するにはどうすればよいでしょうか?

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

sql - Delphi FireDac を使用して Windows Azure SQL データベースに接続しようとすると、「no such table CUSTOMERS」というエラーが表示されます

リモート データベース接続は初めてで、非常に単純な単一テーブルの Delphi XE6 プロジェクトをセットアップして、小さな Windows Azure SQL データベースで作成したばかりのテーブル ('CUSTOMERS') を表示したいと考えています。後で、VCL コードと Android 上の FireMonkey の両方でこのアクセスを使用する予定です。Azure ダッシュボードを使用してテーブルを表示および編集できます。

VCL コードをテストするために、TFDTable、TDatasource、および TDBGrid を使用してフォームに FDConnection をドロップしました。ここで接続情報の例を見てきましたが、これは、XE6 Professional を使用しているため、持っていないと思われる MSSQL ドライバーを参照しています。そこで、TFDPhysSQLiteDriverLink を使用し、SQLite ドライバーを接続パラメーターで使用してみました。

私のテーブルは CUSTOMERS で、これは TFDTable のテーブル名プロパティにあります。プロジェクトを実行すると、接続エラーは発生しませんが、「[FireDAC][Phys][SQLite] ERROR@ no such table CUSTOMERS」が発生します。これは、そのドライバーを使おうとする私が愚かであることを示していますか? その場合、FireDAC を使用して DB にアクセスする方法はありますか?

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

delphi - IBX から TIBDatabaseInfo を Firedac に置き換えてデータベース情報を取得する

IBX (Interbase/Firebird) 接続を Firedacに移行する必要がありますが、 Firedac の TIBDatabaseInfoコンポーネントで取得したような特定のベンダー情報を取得するにはどうすればよいですか? BackoutCount、DeleteCount、ExpungeCount ... のカウンターに興味があります。

Firedac でこの情報を取得する方法は?

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

c++ - FireDAC を使用して C++ XE3 から XE7 に移行するにはどうすればよいですか?

C++ Bulder XE3 で作成したアプリがあり、XE7 にアップグレードしたいと考えています。しかし、私は PostgreSQL との接続に FireDAC を使用します。XE3 では接続は ADConnection と呼ばれ、ADQuery をクエリし、XE7 では FDConnection と FDQuery を呼び出します。すべてを書き直すことなく、そうする簡単な方法を見つける必要があります。御時間ありがとうございます。

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

json - XE4 で TFDJSONDataSets などを使用するには?

説明

今日、Delphi XE6 サンプルが呼び出されているのを発見しましFireDACJSONReflectた。datasnap サーバーとクライアント間の通信を行う方法を使用したいと思います。andを使用してMine アプリケーションで実行したいと考えています(実際には必要ありませんが、使用する別の方法がある場合)。私がそれを見たいと思う別のコンポーネント)。TFDMemTableTFDJSONDataSets

** 私のアプリケーションは、サーバーとクライアントです **

問題

ところで、私のアプリケーションは Delphi XE6 の代わりに Delphi XE4 を使用しており、datasnap サーバーとクライアントの間で同じ方法で通信するために何をすべきかを知りたいのですがFireDACJSONReflectTFDJSONDataSetsプロジェクトの使用リストに含めることができないことがわかります。

  • TFDJSONDataSetsDelphi XE4 で使用できますか?
  • データを入力するために使用TFDMemTableせずに使用できますか?TFDJSONDataSets

いくつかのコード

Delphi xe6で問題なく実行されているコード行があり、xe4でも同じことをしたい:

そして質問:なぜ私は結果を出したいのTFDJSONDataSetですか?

それは、私がTFDMemTableしたいデルファイxe6クライアントアプリケーションを持っていて.appendData、それを行う必要があるTFDJSONDatasetためです(データを追加する別の方法が役立つかもしれません)。

何か助けはありますか?

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

delphi - 2 つのトランザクションが開いているときに Delphi が例外をスローしないようにするにはどうすればよいですか (FireDac コンポーネントと FireBird dbms を使用)。

FireDac と HTTPServer コンポーネントを使用して、Delphi で Web API を構築しました。アプリケーションは、firebird を利用した dbms を使用しています。

同じ API エンドポイントへの複数のリクエストをシミュレートし始めるまで、すべてが正常に機能していました。これにより、内部サーバー例外が発生し、トランザクションが既に開かれているときに 2 番目のトランザクションが開かれていることが報告されます。

使用後にすべての接続が閉じられ、メモリ リークを防ぐためにオブジェクトが破棄されることはわかっていますが、アプリケーションが例外をトリガーする理由がわかりませんでした。

私を解決に導く可能性のある助けや困難はありますか?

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

mysql - 「!」と組み合わせた FireDAC の sha() 関数の誤り キャラクター

Delphi XE4 を使用していますが、FireDAC コンポーネント (V8.0.5.3365) と MySQL ハッシュ関数sha()に問題があります。たとえば、MySQL サーバーの通常のデータベース ツールでsha('testtest1!')を使用すると、結果は次のようになります。

d68c15248886d3eb551990298ab1f99db788365a

FireDAC TADQuery 関数から同じハッシュ関数を使用すると、結果は次のようになります。

d41ff23e0e6147a8fd2722f68e53f993a92784b0

この異なる出力は、ハッシュされた文字列に「!」が含まれている場合にのみ発生します。それ以外の場合、ハッシュされた文字列は同じです。私が間違っていることはありますか??

0 投票する
5 に答える
9499 参照

mysql - パラメータの操作 Delphi XE7 Firedac

ここでの支援は素晴らしいでしょう。

パラメータを使用して「ORDER BY」を動的に変更しようとしています

以下は私が試したコードですが、ドキュメントに従っているにもかかわらず、「[FIREDAC] [PHYS] [MYSQL] SQL構文にエラーがあります...行4の「ORDER BY some_field」の近く」というエラーが表示されます」

ParamCreate を True に設定しました

私のデータベースはMySQLです

0 投票する
0 に答える
1101 参照

mysql - Delphi XE 6 を使用してテーブルに複数のレコードを追加する方法は?

Delphi XE 6、FireDAC、および MySQL 5.6 を使用しています

私の FORM には、顧客レコードの多くの TDBEDIT フィールドを格納する TABSHEET があります。

CUSTOMER テーブルは TFDTABLE です。これらの TDBEDIT フィールドは、その CUSTOMER テーブルに関連するデータ ソースを使用します。

新しい顧客レコードを追加するためのロジックは次のとおりです。

  1. CUSTOMER テーブル APPEND を呼び出します
  2. これらの TDBEDIT フィールドは空白になります。ユーザーが入力できます。
  3. ユーザーは CANCEL ボタンをクリックして、この追加をキャンセルできます
  4. ユーザーは [OK] ボタンをクリックして、新しいレコードの追加を確認できます。次に、CUSTOMER テーブル POST を呼び出します

ユーザーが最大5つの顧客レコードを入力できるように、5つのタブシートが必要です。次に、[OK] ボタンをクリックすると、これら 5 つのレコードが CUSTOMER テーブルに追加されます。

どうすればそれを達成できますか?

既存のロジックを使用すると、同じリモート物理 MySQL 顧客テーブルに 5 つの TFDTABLE を使用する必要があります。

これは、特に顧客テーブルが大きい場合、効率的ではないようです。

次に、TFDTABLE ごとに 5 つのデータ ソースを使用して、フィールドの 5 つの TDBEDIT セットのそれぞれが 1 つのデータ ソースを使用できるようにする必要があります。

次に、5 TFDTABLE APPEND メソッドを呼び出して、各タブシートに 5 セットの空白の TDBEDIT フィールドを作成します...など...など...

この方法は少しばかげているようですが、他に方法はありますか?