Главная страница
    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.47 MB
Время: 0.038 c
2-1217799907
demon
2008-08-04 01:45
2008.09.14
RegisterClass и RegisterClassEx в чем разница?


3-1206022526
patrick1968
2008-03-20 17:15
2008.09.14
BatchMove из Oracle


15-1216726494
Zhekson
2008-07-22 15:34
2008.09.14
qtintf70.dll - кто-нибудь знает, что это за бибилиотека ?


15-1215553340
Маэстро
2008-07-09 01:42
2008.09.14
Вопрос....


15-1216634664
TUser
2008-07-21 14:04
2008.09.14
Сколько ватт БП и дополнительных вентилияторов





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