Главная страница
    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.043 c
2-1217528751
deras
2008-07-31 22:25
2008.09.14
Как (какой прогой) читать архив форумов?


3-1205563988
Виталий Панасенко(дом)
2008-03-15 09:53
2008.09.14
FR 3.2/End-User отчет/передача параметра подключения


15-1216888228
Denis__
2008-07-24 12:30
2008.09.14
логика?


4-1196680450
clickmaker
2007-12-03 14:14
2008.09.14
BackupWrite меняет размер файла?


3-1205910143
scorpio_md
2008-03-19 10:02
2008.09.14
Объединение 2 таблиц





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский