問題タブ [datamodule]

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 に答える
187 参照

c++ - TDataModule を削除しますが、TADOConnection はそのままにしておきます

TADOConnection を共有するいくつかの TDataModules を含む lib があります。一部のアプリケーションでデータモジュールを作成および削除します。

データモジュールを削除すると、EAccessViolation エラーが発生します。これは、データモジュールが共有されている TADOConnection を削除したいという事実によるものだと思います。

デストラクタが呼び出されたときに tdatamodule->tbquery->Connection プロパティを NULL に設定しようとしましたが、うまくいきませんでした。

エラーが TADOConnection にあると思うのはなぜですか? ライブラリなしでアプリケーションをビルドすると、問題なくデータモジュールを作成および削除できるためです。また、独自の接続を持つデータモジュールを使用してライブラリを作成しても、問題はありません。

何か助けはありますか?前もって感謝します!

エラー: http://oi60.tinypic.com/noyc6x.jpg

コール スタック: http://oi61.tinypic.com/sgljx5.jpg

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

delphi - Delphi コンポーネントが新しいデータ モジュールのコンポーネント パレットから消える

私のコンポーネントの宣言は次のとおりです。

TActivexComponent:

どの Delphi バージョンでも新しい DataModule を開くと、コンポーネントがコンポーネント パレットから消えます。

Delphi XE2 で ClassGroup を変更しようとしましたが、うまくいきません。

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

delphi - 同じデータ オブジェクト名を持つ 2 つの Delphi データ モジュールのいずれかに効率的にアクセスする

Delphi アプリで 2 つのデータ モジュール (TDMA、TDMB) が必要な状況があります。各データモジュールには同じデータ オブジェクト名 (クエリ、テーブルなど) がありますが、異なるコンポーネント セット (TZQuery、TADOQuery) からのものです。複数のデータベースをサポートしたいのですが、すべてのデータベースがコンポーネント スイートでサポートされているわけではないため、これが必要です。どのデータモジュールにアクセスする必要があるかは、DBFlag ブール変数によって決まります。データアクセスごとにほぼ同一のコードセグメントを分離する以外に、より効率的な方法はありますか?

DMG のようなグローバル データモジュール変数を DBFlag に基づいて DMA または DMB に設定できれば、コードは DMA または DMB の代わりに DMG を参照できます。それは理想的であり、コードの変更はほとんど必要ありませんが、私の知る限り不可能です。

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

delphi - 別のフォームから DataModule のイベントにアクセスする (デルファイ設計時)

TButton.OnClickコンポーネントのイベント( As )をデータモジュールで定義されたプロシージャ(設計時)にリンクする方法があるかどうか知りたいです。現時点では、実行時にこれを行っています。

目標は、オブジェクト インスペクタ ウィンドウのドロップダウン リストで提案された MyDataModule.MyOnClickEvent を取得することです。知識を共有してくれるすべての人に前もって感謝します:D

注 1: 同様の質問がありますが、設計時に同じタスクを実行する方法についての情報はありません: Access an event on a DataModule from another Form

注2: 私が見つけた唯一の方法は、親フォームですべてのイベントを定義することですが、よりクリーンなソリューションがあることを望んでいました

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

delphi - アプリケーションによって作成されたデータ モジュールをいつ解放する必要がありますか?

私は次のようなコードを持っています:

コードで行ったように DM を明示的に解放しないと、Access Violation Exception が発生しますが、別のアプリケーションでは、コードは次のようになります。

DMを解放する必要はなく、例外も発生しません。何故ですか?

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

delphi - .DFM なしで Data Module を使用することは可能ですか?

すべての ADO フードを別のデータ モジュールにオフロードしたので、1 つのモジュールを複数のアプリケーションから参照できます。私のすべてのアプリケーションは基本的に、データにアクセスするために2 つのワーカーメソッドのみを必要とします。

AdoQueryの形式で結果セットを提供しTADODataSetます。
AdoExecute結果をフェッチせずに単純な更新/削除クエリを実行します。

クラス構造は次のとおりです。

次に、公開されている 2 つのラッパーをクラス メソッドに追加しました。これを使用して、呼び出しでの長いクラス参照を回避しました。

上記は、すべてのフォーム内から呼び出すワーカー関数です。

AdoConnectイベントで一度だけ実行されDataModuleCreateます。から派生した TDatModule TPersistent。これにより、ランタイム全体で接続の単一インスタンスを永続化できます。

これまでのところ私を悩ませている唯一のことは、まったく必要のない役に立たない.DFMです。
それを取り除くオプションはありますか?

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

delphi - 開いている/閉じているデータセットでこの操作を実行できませんか?

こんにちは、私は関数に与えられた ID をチェックし、iID見つかったメンバーの名前を出力する必要がある関数を作成しました。それ以外の場合は、見つからないことを出力する必要があります

この関数が呼び出されると別のテーブルがアクティブになるため、Members(ID を検索するために) テーブルを変更してから、後で再度戻す必要があります (複数のテーブルがあります)。

しかし問題は、この関数を呼び出すたびに、「開いているデータセットでこの操作を実行できません」というエラーが表示されることです。

関数を実行する前にデータセットを閉じると、「閉じたデータセットでこの操作を実行できません」というメッセージが表示されます

テーブル名にアクセスしたり変更しようとするとエラーが発生することはわかっています(これらの3行がコメントアウトされている場合、関数はエラーを出しません)

これを機能させる方法がわかりません。助けていただければ幸いです

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

delphi - プロジェクトを Delphi XE6 にロードする際のランダム エラー

プロジェクトを XE6 IDE にロードすると、次のエラーが発生することがあります。

Delphi XE6 でプロジェクトを開くときのプロジェクト読み込みエラー

このエラーにより、TZConnection コンポーネントが何らかの不可解な理由で Datamodule から削除されます。プロジェクトは何年にもわたって問題なく読み込まれており、突然、これが発生することに注意してください。

誰もこれを前に見て、それを止める方法を知っていますか? また、他のコンポーネントでも発生します。常に TZConnection コンポーネントではなく、ほとんどが ZConnection コンポーネントです。

前にも言ったように、これはランダムに表示されます。プロジェクト A を閉じて、プロジェクト B を開いてから閉じて、プロジェクト A に戻って bang! を実行すると、エラーが発生します。

手がかりはありますか?(これは Delphi 2007 でも発生していたことに注意してください)