当社は、SQL Server データベースへのアクセスを必要とする IntraWeb アプリケーションの開発を開始しています。データベースから1列のデータを取得して表示するための非常に基本的なアプリケーションを作成しようとしています...可能な限りの方法で。私はこれを何度も試みましたが、失敗しか見ませんでした。私が見たところ、クエリ結果を取得することさえできません。C++ Builder XE3 を使用しています。これが私がしていることです...
- IntraWeb アプリケーションの作成ウィザード (スタンドアロン)
- #include "UserSessionUnit.h" を Unit1.cpp に追加
- IWServerController->ComInitialization を ciMultiThreaded に設定します
- TADOConnection を UserSessionUnit にドラッグします
- ビルダーを使用して ADOConnection1->ConnectionString を設定します (Microsoft OLE DB Provider for SQL Server)
- TADOQuery を UserSessionUnit にドラッグします。
- ADOQuery1->Connection を ADOConnection1 に設定します
- ADOQuery1->SQL を「SELECT Column1 FROM Table1」に設定します。
- TDataSource を UserSessionUnit にドラッグします
- DataSource1->DataSet を ADOQuery1 に設定します
- TIWDBGrid を Unit1 にドラッグします
- IWDBGrid1->DataSource を IWUserSession.DataSource1 に設定します。
- IWForm1 の作成時にクエリを実行...
void __fastcall TIWForm1::IWAppFormCreate(TObject *Sender)
{
UserSession()->ADOQuery1->Open();
}
これはうまくいくはずだと思います。アプリケーションはエラーなしでビルドおよび実行されますが、空のグリッドしか表示されません... C++ Builder VCL フォーム アプリケーションでこのシナリオを再現しましたが、問題なく動作しました (もちろん、TIWDBGrid の代わりに TDBGrid を使用しました)。いくつかの「TIWDB」コンポーネントでこれを試しましたが、役に立ちませんでした。