問題タブ [zeos]

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

delphi - 複数のユーザーが編集しているときに TDBGrid が更新されない

単純なデータベースを持つアプリケーションを開発しています。すべての機能は正常に動作していますが、ユーザーがプログラムからデータベースを編集している場合、他のユーザーはコンテンツをすぐに見ることができません。DBGrid他のユーザーは、データが表示され、他のコンピューターからの変更で更新されるように、プログラムを閉じて再度開く必要があります。これには Delphi 7 を使用し、Firebird データベースへのアクセスには ZeosLib を使用しています。DBNavigator の更新ボタンを使用しようとしましたが、機能しません。

データベースへの接続に使用したコンポーネントは次のとおりです。

  • Zコネクション
  • ZQuery
  • 情報源
  • DBグリッド
  • DBNavigator

これは私の ZConnection と ZQuery のコードです。

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

delphi - zqueryを使用してFirebirdデータベースの2つのテーブルから列を選択するには?

1 つのデータベース ファイルの 2 つのテーブルのデータを TDbgrid に表示したいと考えています。次のようなSQL文を書き込もうとしました:

しかし、常にこのエラーが表示されます

それが不可能なのか、コードの記述時にエラーが発生したのか、それとも TDbgrid を変更する必要があるのか​​はわかりません。Zeos sql ガイドを検索しましたが、見つかりません。私が得たのはこれだけでした: http://www.intitec.com/varios/A_ZEOS_basics_tutorial_not_only_for_firebird.pdfしかし、私の質問のいくつかは未回答のままです。

firebird データベース 2.5 と delphi 7 を使用しています。

これでどの SQL コードを使用できますか?

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

mysql - 複数ステートメント Delphi TZquery (Zeos) エラー

次のような複数ステートメントのクエリを作成しようとしています:

次のエラー メッセージが表示されました: SQL エラー: SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、2 行目の「クライアント (名前、年齢) 値 ('doe','21') に挿入」付近で使用する正しい構文を確認してください。

私はすでにマニュアルをチェックしています。コンポーネント TZQuery および TZUpdateSql (zeos lib から) は、複数のステートメントを内部的に実行する可能性を提供します。

編集 [解決済み]

GregD に感謝します。いくつかのテストを実行した後、トランザクションは正常に機能します。それが私が将来他の人を助けるために使用する方法です。

これは、AutoCommit プロパティが Zeos で実際にどのように機能するかです。

AutoCommitが True の場合、SQL ステートメントが実行されるたびにトランザクションが自動的にコミットされますが、Commit を明示的に呼び出すまでは、StartTransaction コマンドを明示的に使用して、この自動コミットを防ぐことができます。

AutoCommitが False の場合、StartTransaction を呼び出すべきではありません。その後、トランザクションは自動的に開始されますが、ステートメントが実行されるたびに自動的にコミットされるわけではありません。

procedure StartTransaction StartTransaction プロシージャは、接続されたデータベース内で新しいトランザクションを開始します。AutoCommit プロパティが TRUE の場合にのみ使用してください。AutoCommit を false に設定して呼び出そうとすると、常に SInvalidOpInNonAutoCommit が発生します。AutoCommit モードへのエスケープとして StartTransaction を使用する必要があるため、この動作は予期されたものです。StartTransaction を呼び出すと、AutoCommit は「オフ」になり、Commit または Rollback を呼び出すと、AutoCommit は再び「オン」になります。AutoCommit を false に設定して作業している場合、新しいトランザクションが自動的に作成され、それらを閉じる方法 (コミットまたはロールバック) を選択します。

procedure Commit現在のステートメントをデータベースにコミットします。非 AutoCommit モード (すべてのステートメントが自動コミットされるため、このプロシージャは役に立たない) でのみ使用するか、AutoCommit モードで StartTransaction プロシージャによって開かれたトランザクションを終了したい場合にのみ使用する必要があります。コミットすると、現在のトランザクションがあれば終了します。ステートメントをデータベースに保存したくない場合は、ロールバック手順を使用する必要があります。

procedure Rollback現在のトランザクションの以前のステートメントをすべてロールバックします。非 AutoCommit モード (すべてのステートメントが自動コミットされるため、このプロシージャは役に立たない) でのみ使用するか、AutoCommit モードで StartTransaction プロシージャによって開かれたトランザクションを終了したい場合にのみ使用する必要があります。Rollback は、現在のトランザクションがあればそれを終了します。satements を失いたくない場合は、Commit 手順を使用する必要があります。

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

delphi - ZeosLib を使用して Firebird 1 を保持する更新

Delphi Xe2 + ZeosLib 7.0.3 安定版 + Firebird 1.0

いくつかのテーブルを更新していますが、データはメモリに保持されています。他のアプリケーションが参照できる方法でデータベースに反映されることはありません。

自動コミットのみを使用してみましたが、機能しませんでした。

明示的なトランザクション制御、ZConnection.StartTransaction および ZConnection.Commit も使用しましたが、どちらも機能しませんでした。

Indy httpServer を使用して Delphi で作成された Web サーバーのデータを更新しています。投稿リクエストを受け取り、データベースの読み取りまたは更新を行います。接続はステートレスですが、接続されているクライアント アプリのリストと、要求がスレッド化されているため、各クライアントを分離するための ZConnection のインスタンスが維持されます。

それに加えて、クライアントが1つしか接続されておらず、1回に1つのリクエストを実行し、重複や再入がないという問題があります。

Firebird のこのシナリオの使用に関するアドバイスを聞く必要があります。コミットを機能させるにはどうすればよいですか。

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

delphi - Delphi XE Zeosdb Tztableを使用したカスケードでのsqlite3削除

私は2つのテーブル Client 、 Commande を持っています

sqlite3 の DDL は次のとおりです。

私は Client に TzTable1 を使用し、Commande に TzTable2 を使用しているため、 を呼び出して Client テーブルからクライアントを削除して Tztable1.delete ;
も、関連する Commandes は Commande テーブルから削除されません!!

どこに問題があるのか​​わからない!!

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

sql-server - Delphi ZeosLib および Delphi 7 を使用して Unicode を SQL Server 2008 に挿入できない

Delphi ZeosLib と Delphi 7 を使用して Unicode を SQL Server データベースに挿入し、挿入された値を読み取るのに問題があります。最初に挿入し、次に挿入された値をクエリする簡単なテスト プログラムを作成しました。

テスト テーブル スキーマ:

簡単なテスト プログラム ソース (ZeosLib ソースを含む) をアップロードしました。ここをクリックしてダウンロードしてください。ntwdblib.dll も含めましたが、独自のものを使用できます。

テスト プログラムには、ここからダウンロードできる TNT コンポーネントも必要です。

テスト プログラムを使用すると、挿入した Unicode 文字が検索時に疑問符として表示されます。問題が挿入コードにあるのかクエリ コードにあるのかはわかりません。

また、挿入する前にデータを utf-8 にエンコードし、utf-8 から取得した後にデータをデコードしようとしました。テスト プログラム ソースで「//inserted as utf8」を検索してください。デコード後に Unicode を表示できるので、この方法は機能します。ただし、実際のアプリケーションでは、SQL Server が UTF-8 を完全にサポートしていないため、UTF-8 としてエンコードできません。一部の文字は格納できません。以前の質問はこちらをご覧ください。

ポインタをいただければ幸いです。:)

一方、テストプログラムのソースは次のとおりです。

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

mysql - Delphi ZEOSlib: テーブルから読み取り、別のデータベースに書き込みます

delphi zeoslib を使用してデータベースからテーブルを読み取り、それを別のサーバーに書き戻すことは可能ですか?

テーブルを読み取って結果セットを書き戻すことだと思いますが、方法がわかりません。それは可能ですか?

私は次のことを考えました: zquery: を作成し、Select * from table1そのzconnection1結果を別のデータベースに挿入して戻したいzconnection2.

データベースを使用していmysqlます。