Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.09.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.093 c
15-1216664244
ob_kun
2008-07-21 22:17
2008.09.14
Интересно


15-1215880737
No_Dead
2008-07-12 20:38
2008.09.14
от нечего делать — задумался (IT и автомобили)


2-1217607306
woma
2008-08-01 20:15
2008.09.14
TList или Array


15-1216815562
oldman
2008-07-23 16:19
2008.09.14
А у меня завтра дочери исполняется шесть лет!


15-1216894108
Кактус
2008-07-24 14:08
2008.09.14
SQL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский