Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.09.14;
Скачать: CL | DM;

Вниз

Работа с веб-сервисом.   Найти похожие ветки 

 
Kolan ©   (2008-07-29 17:21) [0]

Здравствуйте,
 Пробую воспользоватьс веб-сервисом RSDN (http://www.rsdn.ru/ws/janusAT.asmx?WSDL).

С помощью BDS 2006 создал Web service -> WSDL Inporter. Все сгенерировалось. Интерфейс такой:
 JanusATSoap = interface(IInvokable)
 ["{F931A43E-480A-68B9-5A5F-E770117BFE0C}"]
   function  GetTopicByMessage(const topicRequest: TopicRequest): TopicResponse; stdcall;
   function  GetNewData(const changeRequest: ChangeRequest): ChangeResponse; stdcall;
   function  GetForumList(const forumRequest: ForumRequest): ForumResponse; stdcall;
   function  GetNewUsers(const userRequest: UserRequest): UserResponse; stdcall;
   procedure PostChange(const postRequest: PostRequest); stdcall;
   function  PostChangeCommit: PostResponse; stdcall;
   procedure Check; stdcall;
 end;


Теперь патаюсь что-нить вызвать.

procedure TForm1.BitBtn1Click(Sender: TObject);
var
 R: UserRequest;
 A: UserResponse;
 I: Integer;
 P: PostResponse;
begin
 R := UserRequest.Create;
 try
   R.userName := UserNameEdit.Text;
   R.password := PasswordEdit.Text;
   R.maxOutput := 1;
   A := GetJanusATSoap.GetNewUsers(R);
   for I := Low(A.users) to High(A.users) do
     Memo1.Lines.Add(A.users[I].userName);
 finally
   R.Free;
 end;
end;


На что получаю ошибку:
Object reference not set to an instance of an object

Что я делаю не так?

ЗЫ
 Вызов Check; срабатывает.


 
Kolan ©   (2008-07-29 17:27) [1]

Использующиеся классы:
 UserRequest = class(TRemotable)
 private
   FuserName: WideString;
   Fpassword: WideString;
   FlastRowVersion: TByteDynArray;
   FmaxOutput: Integer;
 published
   property userName: WideString read FuserName write FuserName;
   property password: WideString read Fpassword write Fpassword;
   property lastRowVersion: TByteDynArray read FlastRowVersion write FlastRowVersion;
   property maxOutput: Integer read FmaxOutput write FmaxOutput;
 end;

 UserResponse = class(TRemotable)
 private
   FlastRowVersion: TByteDynArray;
   Fusers: ArrayOfJanusUserInfo;
 public
   destructor Destroy; override;
 published
   property lastRowVersion: TByteDynArray read FlastRowVersion write FlastRowVersion;
   property users: ArrayOfJanusUserInfo read Fusers write Fusers;
 end;

 PostResponse = class(TRemotable)
 private
   FcommitedIds: ArrayOfInt;
   Fexceptions: ArrayOfPostExceptionInfo;
   FcommitedRatingIds: ArrayOfInt;
   FratingExceptions: ArrayOfRatingExceptionInfo;
   FcommitedModerateIds: ArrayOfInt;
   FmoderateExceptions: ArrayOfModerateExceptionInfo;
 public
   destructor Destroy; override;
 published
   property commitedIds: ArrayOfInt read FcommitedIds write FcommitedIds;
   property exceptions: ArrayOfPostExceptionInfo read Fexceptions write Fexceptions;
   property commitedRatingIds: ArrayOfInt read FcommitedRatingIds write FcommitedRatingIds;
   property ratingExceptions: ArrayOfRatingExceptionInfo read FratingExceptions write FratingExceptions;
   property commitedModerateIds: ArrayOfInt read FcommitedModerateIds write FcommitedModerateIds;
   property moderateExceptions: ArrayOfModerateExceptionInfo read FmoderateExceptions write FmoderateExceptions;
 end;


 
Alucard   (2008-07-30 00:14) [2]

Проблема может быть в использовании WideString. Не могу сказать о BDS2006, но в более ранних версиях она была. Проверьте работоспособность методов, обходящихся без WideString, а также присутствие обработки этого типа в исходном коде VCL.


 
Kolan ©   (2008-07-30 11:54) [3]

> Проверьте работоспособность методов, обходящихся без WideString

Check не ругается, но он без параметров.


> также присутствие обработки этого типа в исходном коде VCL

Как это сделать? И что подразумевается под VCL, сгенерированный код? Или вы предлагаете смотреть генофонд? Что там искать?


 
Kolan ©   (2008-08-02 16:39) [4]

up



Страницы: 1 вся ветка

Текущий архив: 2008.09.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
2-1217517420
self.name
2008-07-31 19:17
2008.09.14
insert в TFileStream


2-1217780383
q911
2008-08-03 20:19
2008.09.14
Браузер на Delphi


15-1216062490
kaif
2008-07-14 23:08
2008.09.14
Тест на логику обыденного мышления для форумчан


15-1216906570
Jeer
2008-07-24 17:36
2008.09.14
Третий Всероссийский Слет Сисадминов


3-1205766628
dest81
2008-03-17 18:10
2008.09.14
dbgrideh и фильтрация