私はCBuilder 6(ターゲットXP Pro)にサービスを書き込もうとしています。このサービスの仕事の一部は、データベース上のテーブルを監視して更新することです。直接ODBCを使用してデータベースに接続しますが、問題はADOでも発生しています。そのため簡単に使用します。Windowsサービス内からのデータベース接続がありません
以下のコードを見ることができます。これは、ServiceStartイベントで実行される関数から呼び出されます。
私の問題は、接続できないということです。私たちのMSSQL DBはドメイン認証を使用しているので、自分のドメインアカウントを使ってサービスを実行しようとしました。私は明示的にドメイン\ユーザー名とパスワードを定義しようとしましたが、どちらも機能しません(サービスのプロパティで、ログオンタブで)。
誰もがこれを手伝ってくれますか?何でも感謝しています。
もう1つの質問は、サービスをどのようにデバッグするのでしょうか?リモートデバッガがインストールされています。私はrundll32.exeなど何かを使ってプロセスを生成しますか?繰り返しますが、どんな助けもありがたいです。
多くの先行ありがとう
Stu。
コードスニペット:
TADOConnection* DB = new TADOConnection(this);
try
{
DB->ConnectionString = "Provider=MSDASQL.1;Password=password;Persist Security Info=True;User ID=usernamej;Data Source=datasource";
DB->Connected = true;
returnValue = DB->Connected;
ShowMessage("Connected");
}
catch (Exception &exception)
{
ShowMessage("Not COnnected");
}
注:ConnectionStringプロパティが唯一の指標であり、変更、ユーザー名、パスワード、およびデータベースを持っています。この文字列をスタンドアロンアプリケーションで使用すると、一貫性のある接続が確立され、クエリを使用してデータを取得できます。
こんにちはJP:JPに対応して
。
ご意見ありがとうございます。私は実際にここにスローされた例外を取得していません(これは奇妙です)。私はいくつかのmsgboxを追加するようにコードを修正しました(下を参照)。
ShowMessage("Attempting Login");
TADOConnection* DB = new TADOConnection(NULL);
try {
ShowMessage("1");
DB->ConnectionString = "<as before>";
ShowMessage("2");
DB->Connected = true;
ShowMessage("Connected");
} catch (Exception &exception) {
ShowMessage(exception.Message);
ShowMessage("Not COnnected");
}
なぜ接続コンポーネントが作成されていないのかわかりません(私は、これから所有者をNULLに変更しようとしました。
ありがとうございます!
Stu。
例外の詳細をログに記録することはできますか?あるいは、あなたはその情報を持っているかもしれません。すでに投稿できますか?これはトラブルシューティングに役立ちます。 –
こんにちはJP。ご意見ありがとうございます。 私は実際にここにスローされた例外を取得していません(これは奇妙です)。私はいくつかのmsgboxを追加するようにコードを修正しました(下を参照)。 ShowMessage( "Login Attempting"); TADOConnection * DB =新しいTADOConnection(NULL); try { ShowMessage( "1"); DB-> ConnectionString = ""; ShowMessage( "2"); DB-> Connected = true; ShowMessage( "Connected"); (例外および例外) } ShowMessage( "接続されていません"); \t} アイデア? ありがとう! Stu。 –
(私は元の質問にそれを再度貼り付けます。回答は形式が非常にうまくいきません:/) –