- PR -

Delphi8でWebサービス

1
投稿者投稿内容
ケイ
会議室デビュー日: 2004/08/25
投稿数: 3
投稿日時: 2004-08-25 04:08
Delphi8でWebサービスを作成しています。
Webサービスにアクセスするためのアプリケーション(Windowsアプリケーション)
において、Webメソッドの呼び出しでの,オブジェクトの生成方法は
どのようにすればよいのでしょうか。

VB.NETでいう
Dim オブジェクト名 as localhost.ファイル名 = New localhost.ファイル名
にあたる部分をDelphiで記述するとどのようになるのでしょうか。

また、ヘルプ
(ASP.NET Web サービスアプリケーション「HelloWorld」へのアクセス)では,

procedure TWinForm1.Button1_Click(sender: System.Object; e: System.EventArgs);
begin
new ws := WebService1();
button1.Text := ws.HelloWorld();
end;

のように書かれているのですが,このようにコーディングしてもエラーがでてし
まいます。
これは、ヘルプの間違いなのでしょうか。

以上、よろしくお願いします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-08-25 08:17
諸農です。

引用:

のように書かれているのですが,このようにコーディングしてもエラーがでてし
まいます。
これは、ヘルプの間違いなのでしょうか。



HELP間違っていますね(^^;
サービス追加の手順も変ですし、英語直訳が残っていますし。

コード:
uses
  localhost.Service1; //プロキシクラスのユニットを追加する

procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs);
var
  Service11:Service1;
begin
  Service11 := Service1.Create();
  label1.Text := Service11.HelloWorld;
end;



サービス側は、VS2003のサンプルメソッドを使っています。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
ケイ
会議室デビュー日: 2004/08/25
投稿数: 3
投稿日時: 2004-08-25 19:15
ご返事ありがとうございます。

引用:


コード:
uses
  localhost.Service1; //プロキシクラスのユニットを追加する

procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs);
var
  Service11:Service1;
begin
  Service11 := Service1.Create();
  label1.Text := Service11.HelloWorld;
end;



サービス側は、VS2003のサンプルメソッドを使っています。




上のコードの通り、コーディングし、VS2003で作成したサービスをWindowsアプリケーションから使用できるようになったのですが、Delphi8で作成したサービスをWindowsアプリケーションから使用できるようになりません。
「uses」でlocalhost.WebService1と宣言しているのに、

var
ws:WebService1;

と記述しても、
[エラー]未定義の識別子:'WebService1'とでて、エラーになってしまいます。

これは、Delphi8のバグである「ワーカープロセスにアタッチできない」というエラーに関係があるのでしょうか。
Delphi8でサービスを作成したとき、ビルド後「実行」→「デバッグなしで実行」を選択して実行したのですが、これとは関係があるのでしょうか。

以上、よろしくおねがいします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-08-25 23:35
諸農です。

引用:

「uses」でlocalhost.WebService1と宣言しているのに、

var
ws:WebService1;

と記述しても、
[エラー]未定義の識別子:'WebService1'とでて、エラーになってしまいます。



そりゃそうでしょう(^^;
Delphi言語(ObjectPascal)は初めてですか?
Delphiのクラス名は基本的には「T」で始まります。。
コード:
var
  sv1:TWebService1;
begin
  sv1 := TWebService1.Create;
  label1.Text := sv1.HelloWorld;
end;



引用:

これは、Delphi8のバグである「ワーカープロセスにアタッチできない」というエラーに関係があるのでしょうか。



それは疑い過ぎと言うものですよぉ(-_-;)

引用:

Delphi8でサービスを作成したとき、ビルド後「実行」→「デバッグなしで実行」を選択して実行したのですが、これとは関係があるのでしょうか。



そのレベルでおかしくなるようでしたら、
どんなソフトもデプロイできなくなりますって。。(^^;


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
ケイ
会議室デビュー日: 2004/08/25
投稿数: 3
投稿日時: 2004-08-26 02:58
ご返信ありがとうございます

引用:

Delphi言語(ObjectPascal)は初めてですか?
Delphiのクラス名は基本的には「T」で始まります。。
コード:
var
  sv1:TWebService1;
begin
  sv1 := TWebService1.Create;
  label1.Text := sv1.HelloWorld;
end;





上のように「T」をつけたらできました。
Delphiは、初めてではないのですが、Delphi8で
大きく変わったため、忘れてました^_^;

いろいろありがとうございました。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-08-26 10:21
諸農です。

かなり引っかかってます。

引用:

Delphiは、初めてではないのですが、Delphi8で
大きく変わったため、忘れてました^_^;



今回のコンパイルエラーレベルを
「Delphi8が以前に比べて大きく変わった」と言うことを理由に
回避できないというのはどうかと思います。

ましてや今回のエラーレベルであれば、Delph8になってから
変更された文法的な部分にもまったく関係ないですし。
基本的なデバッグ(というかそれ以前)技術の問題じゃないで
しょうか?

Delphiに限らず、例えば、VS2003/C#で

aRRaylIst myList = new ArrayList();

なんて書いて、このエラーの理由がわからない
と言うのと同じレベルだと思います。

確かにDelphi8になってから使い勝手が悪くなった
部分もありますが、このレベルのエラーに対する
調査作業であれば、Delphi8であっても当然ながら
すぐに解決できます。

Delphi8の悪いイメージだけにフォーカスを当てる
ようなな発言はいかがなものかと思います。

もちろん、Delphiやプログラミングそのものが初め
ての方ならすぐに解決できなくても仕方ないとは思
いますが。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
1

スキルアップ/キャリアアップ(JOB@IT)