問題タブ [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.
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
delphi - Delphi コンポーネントが新しいデータ モジュールのコンポーネント パレットから消える
私のコンポーネントの宣言は次のとおりです。
TActivexComponent:
どの Delphi バージョンでも新しい DataModule を開くと、コンポーネントがコンポーネント パレットから消えます。
Delphi XE2 で ClassGroup を変更しようとしましたが、うまくいきません。
delphi - 同じデータ オブジェクト名を持つ 2 つの Delphi データ モジュールのいずれかに効率的にアクセスする
Delphi アプリで 2 つのデータ モジュール (TDMA、TDMB) が必要な状況があります。各データモジュールには同じデータ オブジェクト名 (クエリ、テーブルなど) がありますが、異なるコンポーネント セット (TZQuery、TADOQuery) からのものです。複数のデータベースをサポートしたいのですが、すべてのデータベースがコンポーネント スイートでサポートされているわけではないため、これが必要です。どのデータモジュールにアクセスする必要があるかは、DBFlag ブール変数によって決まります。データアクセスごとにほぼ同一のコードセグメントを分離する以外に、より効率的な方法はありますか?
DMG のようなグローバル データモジュール変数を DBFlag に基づいて DMA または DMB に設定できれば、コードは DMA または DMB の代わりに DMG を参照できます。それは理想的であり、コードの変更はほとんど必要ありませんが、私の知る限り不可能です。
delphi - 別のフォームから DataModule のイベントにアクセスする (デルファイ設計時)
TButton.OnClick
コンポーネントのイベント( As )をデータモジュールで定義されたプロシージャ(設計時)にリンクする方法があるかどうか知りたいです。現時点では、実行時にこれを行っています。
目標は、オブジェクト インスペクタ ウィンドウのドロップダウン リストで提案された MyDataModule.MyOnClickEvent を取得することです。知識を共有してくれるすべての人に前もって感謝します:D
注 1: 同様の質問がありますが、設計時に同じタスクを実行する方法についての情報はありません: Access an event on a DataModule from another Form
注2: 私が見つけた唯一の方法は、親フォームですべてのイベントを定義することですが、よりクリーンなソリューションがあることを望んでいました
delphi - アプリケーションによって作成されたデータ モジュールをいつ解放する必要がありますか?
私は次のようなコードを持っています:
コードで行ったように DM を明示的に解放しないと、Access Violation Exception が発生しますが、別のアプリケーションでは、コードは次のようになります。
DMを解放する必要はなく、例外も発生しません。何故ですか?
delphi - .DFM なしで Data Module を使用することは可能ですか?
すべての ADO フードを別のデータ モジュールにオフロードしたので、1 つのモジュールを複数のアプリケーションから参照できます。私のすべてのアプリケーションは基本的に、データにアクセスするために2 つのワーカーメソッドのみを必要とします。
AdoQuery
の形式で結果セットを提供しTADODataSet
ます。
AdoExecute
結果をフェッチせずに単純な更新/削除クエリを実行します。
クラス構造は次のとおりです。
次に、公開されている 2 つのラッパーをクラス メソッドに追加しました。これを使用して、呼び出しでの長いクラス参照を回避しました。
上記は、すべてのフォーム内から呼び出すワーカー関数です。
AdoConnect
イベントで一度だけ実行されDataModuleCreate
ます。から派生した TDatModule TPersistent
。これにより、ランタイム全体で接続の単一インスタンスを永続化できます。
これまでのところ私を悩ませている唯一のことは、まったく必要のない役に立たない.DFMです。
それを取り除くオプションはありますか?
delphi - 開いている/閉じているデータセットでこの操作を実行できませんか?
こんにちは、私は関数に与えられた ID をチェックし、iID
見つかったメンバーの名前を出力する必要がある関数を作成しました。それ以外の場合は、見つからないことを出力する必要があります
この関数が呼び出されると別のテーブルがアクティブになるため、Members
(ID を検索するために) テーブルを変更してから、後で再度戻す必要があります (複数のテーブルがあります)。
しかし問題は、この関数を呼び出すたびに、「開いているデータセットでこの操作を実行できません」というエラーが表示されることです。
関数を実行する前にデータセットを閉じると、「閉じたデータセットでこの操作を実行できません」というメッセージが表示されます
テーブル名にアクセスしたり変更しようとするとエラーが発生することはわかっています(これらの3行がコメントアウトされている場合、関数はエラーを出しません)
これを機能させる方法がわかりません。助けていただければ幸いです
delphi - プロジェクトを Delphi XE6 にロードする際のランダム エラー
プロジェクトを XE6 IDE にロードすると、次のエラーが発生することがあります。
このエラーにより、TZConnection コンポーネントが何らかの不可解な理由で Datamodule から削除されます。プロジェクトは何年にもわたって問題なく読み込まれており、突然、これが発生することに注意してください。
誰もこれを前に見て、それを止める方法を知っていますか? また、他のコンポーネントでも発生します。常に TZConnection コンポーネントではなく、ほとんどが ZConnection コンポーネントです。
前にも言ったように、これはランダムに表示されます。プロジェクト A を閉じて、プロジェクト B を開いてから閉じて、プロジェクト A に戻って bang! を実行すると、エラーが発生します。
手がかりはありますか?(これは Delphi 2007 でも発生していたことに注意してください)