smack_dead Posted March 27, 2014 Report Share Posted March 27, 2014 (edited) Boa, tarde estou a ter um problema com a pôs importação do WSDL do meu web server. Isto é, depois de importar e adicionar ao delphi o meu ficheiro IWEBSERVER, ele não deixa correr porque diz que tem este erro --> [error=delphi] undeclared identifier Tproducts Edited May 14, 2014 by smack_dead Link to comment Share on other sites More sharing options...
nunopicado Posted March 27, 2014 Report Share Posted March 27, 2014 Só por esse trecho não dá para ver grande coisa... Podes disponibilizar o WSDL? 1 Report "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
smack_dead Posted March 27, 2014 Author Report Share Posted March 27, 2014 sim // ************************************************************************ // // The types declared in this file were generated from data read from the // WSDL File described below: // WSDL : C:\Users\JOAO\Desktop\projeto final cliente\Iwebserver.xml // >Import : C:\Users\JOAO\Desktop\projeto final cliente\Iwebserver.xml>0 // Version : 1.0 // (27/03/2014 15:22:48 - - $Rev: 16699 $) // ************************************************************************ // unit Iwebserver1; interface uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns; type // ************************************************************************ // // The following types, referred to in the WSDL document are not being represented // in this file. They are either aliases[@] of other types represented or were referred // to but never[!] declared in the document. The types from the latter category // typically map to predefined/known XML or Borland types; however, they could also // indicate incorrect WSDL documents that failed to declare or import a schema type. // ************************************************************************ // // !:Tproduct - "urn:"[Gbl] // !:Tgroup - "urn:"[Gbl] // !:string - "http://www.w3.org/2001/XMLSchema"[] // !:Tcustomer - "urn:"[] // !:int - "http://www.w3.org/2001/XMLSchema"[] Tproducts = array of Tproduct; { "urn:webserverIntf"[GblCplx] } Tgroups = array of Tgroup; { "urn:webserverIntf"[GblCplx] } // ************************************************************************ // // Namespace : urn:webserverIntf-Iwebserver // soapAction: urn:webserverIntf-Iwebserver#%operationName% // transport : http://schemas.xmlsoap.org/soap/http // style : rpc // binding : Iwebserverbinding // service : Iwebserverservice // port : IwebserverPort // URL : http://localhost/Delphi2014WS/Webserver.exe/soap/Iwebserver // ************************************************************************ // Iwebserver = interface(IInvokable) ['{047F9BD0-8D6D-21B2-8F0C-70D22600B787}'] function GetProducts: Tproducts; stdcall; function Login(const AUserName: string; const APassword: string): Tcustomer; stdcall; function GetGroups: Tgroups; stdcall; function GetCountries(const countryCode: string; const countryName: string): string; stdcall; function SetOrder: Integer; stdcall; function SetDeliveryAddress: Integer; stdcall; end; function GetIwebserver(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): Iwebserver; implementation uses SysUtils; function GetIwebserver(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): Iwebserver; const defWSDL = 'C:\Users\JOAO\Desktop\projeto final cliente\Iwebserver.xml'; defURL = 'http://localhost/Delphi2014WS/Webserver.exe/soap/Iwebserver'; defSvc = 'Iwebserverservice'; defPrt = 'IwebserverPort'; var RIO: THTTPRIO; begin Result := nil; if (Addr = '') then begin if UseWSDL then Addr := defWSDL else Addr := defURL; end; if HTTPRIO = nil then RIO := THTTPRIO.Create(nil) else RIO := HTTPRIO; try Result := (RIO as Iwebserver); if UseWSDL then begin RIO.WSDLLocation := Addr; RIO.Service := defSvc; RIO.Port := defPrt; end else RIO.URL := Addr; finally if (Result = nil) and (HTTPRIO = nil) then RIO.Free; end; end; initialization InvRegistry.RegisterInterface(TypeInfo(Iwebserver), 'urn:webserverIntf-Iwebserver', ''); InvRegistry.RegisterDefaultSOAPAction(TypeInfo(Iwebserver), 'urn:webserverIntf-Iwebserver#%operationName%'); RemClassRegistry.RegisterXSInfo(TypeInfo(Tproducts), 'urn:webserverIntf', 'Tproducts'); RemClassRegistry.RegisterXSInfo(TypeInfo(Tgroups), 'urn:webserverIntf', 'Tgroups'); end. Link to comment Share on other sites More sharing options...
nunopicado Posted March 27, 2014 Report Share Posted March 27, 2014 O erro que há é mesmo TProducts, ou TProduct (singular)? "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
smack_dead Posted March 27, 2014 Author Report Share Posted March 27, 2014 pois nao sei se tem a ver com as struct dos TProducts, ou TProduct Link to comment Share on other sites More sharing options...
nunopicado Posted March 27, 2014 Report Share Posted March 27, 2014 O moço, deixa lá as struct e os records em paz e sossego. O WSDL é gerado, e usa à partida uma classe TProduct e um array TProducts. Qual é o erro que te dá? TProduct ou TProducts? "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
smack_dead Posted March 27, 2014 Author Report Share Posted March 27, 2014 (edited) os dois ... e por ele ser gerado e que acho que tem a ver com o web server Edited March 27, 2014 by smack_dead Link to comment Share on other sites More sharing options...
nunopicado Posted March 27, 2014 Report Share Posted March 27, 2014 Dá erro nos dois? Verifica se tens a unit do WSDL a ser chamada na unit que te dá erro... 1 Report "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
smack_dead Posted March 27, 2014 Author Report Share Posted March 27, 2014 sim tenho... Link to comment Share on other sites More sharing options...
CrominhO Posted March 27, 2014 Report Share Posted March 27, 2014 sim tenho... e não te dá erro no Tgroups ?? 1 Report As mentes humanas são realmente um local estranho! Link to comment Share on other sites More sharing options...
smack_dead Posted March 28, 2014 Author Report Share Posted March 28, 2014 não... será que é por eu ter declarado o meu Tgroups na interface do web server? Link to comment Share on other sites More sharing options...
smack_dead Posted March 31, 2014 Author Report Share Posted March 31, 2014 *será que é por eu declarar mal as funções no programa??? Link to comment Share on other sites More sharing options...
nunopicado Posted March 31, 2014 Report Share Posted March 31, 2014 E eu continuo a dizer que o uso dos records só te está a atrapalhar. Desta feita, estás a usar nomes para os teus records que são usados também pelo WSDL. Basta a ordem em que eles aparecem não estar certa, já baralha tudo. "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
smack_dead Posted March 31, 2014 Author Report Share Posted March 31, 2014 então se me estão a atrapalhar como e que poderia fazer? porque eu preciso da estrutura deles... Link to comment Share on other sites More sharing options...
nunopicado Posted March 31, 2014 Report Share Posted March 31, 2014 Isso é o que já tenho perguntado, e ainda não respondeste: Precisas da estrutura deles para quê? Foi o professor que mandou lá por? É que tirando essa razão, não vejo mais nenhuma para eles lá estarem. A própria base de dados SQL já tem essa estrutura. "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
smack_dead Posted March 31, 2014 Author Report Share Posted March 31, 2014 sim, disse que eu iria precisar :S Link to comment Share on other sites More sharing options...
nunopicado Posted March 31, 2014 Report Share Posted March 31, 2014 Que irias precisar, ou que TINHAS de usar? "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
smack_dead Posted March 31, 2014 Author Report Share Posted March 31, 2014 que tinha de usar...pq iria precisar... achas que não as posso declarar no interface??? e que na implementação já cheguei a por la as records e davam erro tmb Link to comment Share on other sites More sharing options...
nunopicado Posted March 31, 2014 Report Share Posted March 31, 2014 Acho que o professor devia explicar porque raio quer isso... mas pronto! - Muda o nome dos teus records, de modo a não conflituarem com nenhum objecto do WSDL - Verifica se a unit gerada pelo WSDL está na secção uses dos restantes ficheiros. 1 Report "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
smack_dead Posted March 31, 2014 Author Report Share Posted March 31, 2014 ok o segundo ponto já esta feito vou experimentar o 1.. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now