Consoleアプリでのデータベース利用

解決


jiro  2024-03-01 18:16:10  No: 151388

FDGUIxWaitCursorコンポーネントを通じてコンソールアプリでのFireDACが利用可能になるかと思ったのですがProviderプロパティをConsoleにしてもFDTable使用の際エラーが出ます。
コンソールアプリからデータモジュールの利用というのは想定されていないのでしょうか。
検索してもあまりヒットしません。uses節の問題でもないように思います。
よろしくお願いします。


igy  2024-03-01 23:34:28  No: 151389

FireDACを使ったコンソールアプリは、作ったことがなかったので、
コンソールアプリケーションでデータモジュールを使って、
TFDQueryにて、SELECT文でデータを取得する簡単なプロブラムを試してみたところ、
データは普通に取得できました。
Delphi 12, MySQL 5.7.44


jiro  2024-03-02 09:41:16  No: 151390

相談に応じていただきありがとうございます。
わたくしの環境で試したところFDQuery, FDTableともに利用できませんでした。
おそれいりますがCEでは利用制限があるのではないかとおもいましたが、どのように試せばよろしいでしょうか。
IBで試したのが問題というわけではないはずです。。
エディションによるものとしか考えられていません。提案はありますか。


jiro  2024-03-02 10:07:34  No: 151391

連投失礼いたします。
今しがたDELPHIの機能一覧を見たところCEではローカル環境でしか機能を利用できないことが明記されていました。
現在はコンソールアプリを問題にしていますがゆくゆくはTHorse ComponentでAPIサーバーをどこまで実現できるか
、無料版で出来たらおかしいですけれど、それをやってみたかったので目標は達成できないらしいです。
コンソールアプリで作ってみてもエラーコードでFireDACコンポーネントへのアクセス行で直ちにとまりますからすべて制限事項なのだと解釈しています。なんとなくこんな理解でよろしいでしょうか。


igy  2024-03-02 11:42:05  No: 151392

> コンソールアプリで作ってみてもエラーコードでFireDACコンポーネントへのアクセス行で直ちにとまります

今回、初めてコンソールアプリケーションでデータモジュールを使ったプログラムを
試そうとして、最初、アクセス違反で終了していたのですが、
原因は、データモジュールを生成してなかったからでした。

コードの最初に、データモジュールを生成して、コードの最後に、データモジュールを破棄したら、
問題なく、データモジュールに置いたFireDACのコンポーネントを使えるようになりました。

jiroさんのコンソールアプリケーションでは、そのあたりは実行済みですか?


HFUKUSHI  2024-03-02 11:56:54  No: 151393

横から失礼します。
> FDGUIxWaitCursorコンポーネントを通じてコンソールアプリでのFireDACが利用可能になる
これはそういうことではないと思います。FDGUIxWaitCursorは

FireDAC アプリケーションを実行時用に準備する - RAD Studio
https://docwiki.embarcadero.com/RADStudio/Alexandria/ja/FireDAC_%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E5%AE%9F%E8%A1%8C%E6%99%82%E7%94%A8%E3%81%AB%E6%BA%96%E5%82%99%E3%81%99%E3%82%8B

にあるように、
> エンド ユーザーにフィードバックを提供
するためのものです。

> コンソールアプリで作ってみてもエラーコードでFireDACコンポーネントへのアクセス行で直ちにとまりますからすべて制限事項なのだと解釈しています。なんとなくこんな理解でよろしいでしょうか。
Community Editionでもローカル接続のDBならうまくいくのではないでしょうか?

うまくいかない最小限の再現プログラムや、うまくいかないときのエラーメッセージを(改変することなくコピーアンドペーストで)提示することで回答が付きやすくなると思います。

あと、
> 現在はコンソールアプリを問題にしていますがゆくゆくはTHorse ComponentでAPIサーバーをどこまで実現できるか、無料版で出来たらおかしいですけれど、それをやってみたかった
ということであれば、(実用上はEnt版を使用することを前提として)Community Editionとは別に環境を用意して30日トライアル版を使ってみる、という方法があります。

Delphi: トライアル版ダウンロード - エンバカデロ・テクノロジーズ
https://www.embarcadero.com/jp/products/delphi/start-for-free

# トライアル版を使うとおそらくセールスから製品いかがですかという連絡がいくと思います


jiro  2024-03-02 15:24:16  No: 151394

igyさまHFUKUSHIさま
ご回答くださいましてありがとうございます。
エラーメッセージがaccess violationであることを併記しておけば知識のある方なら答えやすかったのでしょう、表現がつたなく申し訳ございませんでした。
コンソールアプリでは単一のソースが自動生成されるのでフォームの作成に関しては自前でやる必要がありますね。
私はデータモジュールの追加で完了したものと思っていましたが、ご意見を拝読してためしたところ、エディションはCEでもきちんと動作することが確認しました。慌てさせて申し訳ありませんでした。DELPHIは良い開発環境です。
それでは解決として失礼させていただきます。途方に暮れた時にはまたお世話になりに来ますのでその時はぜひ。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加