Keresés
Hírlevél
 
Kiemelt témák
»Hogy viszonyul ehhez a család?
»Legjobb metodika emberi relációk tárolására
»A programozó hibája, hogy törik a programját?
»Jogosultság kezelés mezőszinten
Állás/munka
»Wordpress szakértőt keresünk
»Kamu álláshirdetők listája
»Front-end fejlesztő / Sitebuilder
»DataStore Developer
»PHP programozó, webfejlesztő munkát keres
» több téma
Tudástár
Oldalon keresés 8x írja ki az eredményt
?XML-ből sok szövegmező
?Input mezőből visszakapott adat probléma
TinyMCE és az ékezetek
?Rengeteg hasonló kép betöltése gyorsan (PHP)
Ékezetes kar. nem minden táblában jól
?Shelltreeview gond
Grafikon rajzolás probléma
?Onclick= php függvény
?Egyenes megrajzolása
?Access-ből adott xml fájl kinyerése
Listázás időpont szerint
Exportálás változó könyvtárba
*Link eredményének kiolvasása
Imagemapre képet
» több téma
Társalgó
»A programozásból jól meg lehet élni?
»MFC tanulás
»Könyvet adok-veszek
»Hogy viszonyul ehhez a család?
»Nintendo wii
»Letölthető az új Rad Studio XE és Delphi XE
»Weblap véleményezés
»Játékmotor elmélet
»Informatikai bulvárlap
»Delphi-ről C++-ra váltás
» több téma
ASP  |  C#  |  C++  |  CSS  |  Delphi  |  Flash  |  HTML  |  Java  |  JavaScript  |  Pascal  |  Perl  |  PHP  |  Python  |  Visual Basic  |  Visual C++  |    »    

Tudástár

»

Delphi SOAP + IBQuery komponens hiba

»

Delphi SOAP + IBQuery komponens hiba

nyitotta: kiss.tomi, idő: 2010.03.11., moderátor: netangel
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben Nyomtatható verzió

Kategóriák:Programozási nyelvek » Delphi
Adatbázisok » Interbase
Internet » Szerverek, webszerverek

Ez a téma lezárásra került a moderátor által. A lezárás oka: Végtelen örömmel töltene el bennünket, ha nem "rondítanál" bele más - pláne már lezárt - témájába, hanem új témát nyitnál a saját problémádnak.
Sorrend:
Időzóna:
Blokkméret:
Írtam egy webservice-t Delphi 2009-ben, ami eddig tökéletesen működött a Web App Debugger használatával, de miután átírtam CGI exe-re vagy ISAPI dll-re, a Webmodule-on lévő IBQuery komponens access violation hibával elszáll mikor meghívok egy függvényt wsdl linken keresztül.

Kipróbáltam, ha csak pl egy összeadást csináltatok azt szépen megcsinálja és vissza is adja az eredményt a kliensnek, de adatbázisból kellene dolgoznom és nem értem, hogy mi a baj, hiszen a Web App Debugger-rel működött.

Feltettem az Eurekalog log fájl ide, hátha abból lát valaki valamit: log fájl

Amit én kitudtam belőle bogarászni, mintha ez lenne a hiba, de lehet hogy tévedek és nem értem mi köze van a Query komponenshez: OPToSOAPDomConv.TOPToSoapDomConvert.ProcessFault
Kipróbáltam DBExpress-el is, ugyanaz a hiba.
WSDL-t be tudod importálni a kliensbe?
A query-t hova raktad, data modulra?

Ha mutatsz valami kódot akkor többet tudunk segíteni...
Szia!

A wsdl link működik a böngészőben, látszanak a függvények is és a kliens-el tudok lekérdezést is csinálni, de csak olyan függvényt tudok meghívni a szerveren ami nem használ komponenst.

A Query komponenst a webmodule-ra raktam, és úgy nézem az lehet a baj, hogy ezeket nem éri el az implementációs részben lévő függvény valamiért.

Próbáltam sima datamodule-t is létrehozni és arra pakolni komponenseket, de azzal meg lefagy az egész szerver.

Az implementációs részben így szerepel egy query hívása:

function TWebShop.stock(cikksz: integer): integer;
begin
.
.
Webmodule.IBQuery.SQL.Add('SELECT * FROM...');
.
.
end
Ez így még mindignem túl sok...
Szerintem próbáld meg, hogy a csinálsz egy SOAP servert (ne sima webservert) és ahhoz tudsz SOAP server data modul-t hozzáadni, amire rá tudod pakolni az adatbázis komponenseket. A kódod maradhat ugyan az...így működnie kell...(nekem legalábbis működik...)
A feltett EurekaLog az a kliensé, nem sokra megyünk vele, mert a hiba szerver oldalon lép fel és a kliens ezt jelzi felénk. (OPToSOAPDomConv.TOPToSoapDomConvert.ProcessFault)
Szerver oldali EurekaLog kellene.
Mellesleg a TWebShop meg van kreálva? AV tipikusan akkor jön, mikor még meg nem kreált, vagy már felszabadított objektumra hivatkozol. (Vagy tömböt címzel félre, de nem hinném hogy most ez áll fent.)
Ja még valami: az adatbázis elérés jól van megadva? Gondolom a WAD-ot a fejlesztő gépeden futtattad, a CGI/ISAPI viszont egy szerveren fut(persze ez lehet ua. a gép is, akkor nem szóltam), vagyis más az adatbázis elérési útvonala...
Kipróbáltam, amit írtál, teljesen új lappal indítottam. Létrehoztam egy ISAPI SOAP webservice-t majd egy SOAP Datamodult hozááadtam. A datamodulra rápakoltam az adatbázis komponenseket, de az implementációs .pas fájl-ból sehogy sem tudok rá hivatkozni. A webmodule-on lévőkre tudok simán, de ugye akkor jön az access violation hiba.

Részletesebben: A webmodule neve Webmodule2, az implementációs fájl WebShopImpl.pas, a datamodule neve Data.
A WebShopImpl uses részében ott van a UnitData (datamodule) és a UnitMain (webmodule).

Van 1-1 Query mindkét modulon, és ezeket a hivatkozásokat próbáltam a WebShopImpl-ből:

- Webmodule2.IBQuery - Ezt így látja de access violation amikor meghívom
- Data.IBQuery - Undeclared identifier 'Data'
- TData.IBQuery - Method identifier expected

Localhoston tesztelem, az adatbázishoz kapcsolódás rendben van.

A TWebShop szerintem megvan kreálva:
InvRegistry.RegisterInvokableClass(TWebShop);
InvRegistry.RegisterInterface(TypeInfo(IWebShop));

Felraktam a teljes forrást is, hátha az segít:
http://djnice.uw.hu/WebShop.zip (ebben még nincs a SOAP datamodulos rész benne)
Amikor új servert csinálsz ne válaszd az automatikus interface létrehozást! Add hozzá a soap data modult, rá a komponenseket és a függvényeidet...
Megpróbáltam, ezzel az a baj, hogyha nem csinálok interface-t, akkor a wsdl linken nem jelennek meg a hívható függvényeim.
Na megtaláltam, az interface rész alá nem tettem be a függvényt.
Próbálom a Query-t.
Működik!

Még annyi lenne a kérdésem, hogy az IBDatabase komponensben a kapcsolatot mindenképp aktívra kell állítanom? Mert ahogy nézem, ha a datamodul oncreate eseményében állítom be a paramétereit akkor nem csatlakozik.
Szerintem nem (én ADO-val használom és természetesen csak futásidőben kapcsolódok), viszont lehet, hogy az onCreate túl korai neki. Próbáld meg, hogy az első lekérdezés futtatása előtt állítod aktívra...
Szia nekem is hasonló a problémám mint amiről beszéltetek, csak én nem ib-vel próbálkozom, hanem ado -val. A datamodulomon van egy adoconn. és egy query összekapcsolva local -ba és minden függyvény megjelenik ami kell. Csak a wsdl importer mindig acces violation-t dob ha be akarom importálni a wsdl-t. tudnátok segíteni? vagy mi lehet a baj?
Ez a téma lezárásra került a moderátor által. A lezárás oka: Végtelen örömmel töltene el bennünket, ha nem "rondítanál" bele más - pláne már lezárt - témájába, hanem új témát nyitnál a saját problémádnak.
Belépés
E-mail cím:
Jelszó:

RSS források
-Hírek
-Cikkek
-Fórumok
-Állás/munka
Top pontgyűjtők
»Micu1.030
»Interlock280
»mezofi150
»Pitta_100
»Frostech0100
»szbzs.2100
»Riha60
»Akhiles50
»mrchandra50
»Bakter50
Top wikieditorok
»Sting
»Doi
»FlamingClaw
»Argathron
»Csaboka2
»Vodka
»Joexy
»Ivn
»Balucinho
»Kelemzol
» ugrás a wikire
A nap kifejezései
»Algoritmus
»Hogyan kezdjem el
»Perl
» ugrás a wikire
Hírek
»Megérkezett a PostgreSQL 9.0 kiadásra jelölt változata
»Letölthető az új Rad Studio XE és Delphi XE
»Function-X digitális művészeti találkozó és demoscene party
»Webfejlesztőknek szóló közösségi oldalt indított a Microsoft
»Letölthető a hardvergyorsított Chrome 7 első fejlesztői kiadása
» több hír
PC Fórum hírek
»Itt az első kép az AMD nyolcmagos processzoráról
»"Szuperdizájnos" érintő-egeret mutatott be a Microsoft
»Szabadalmaztatta a számítógép kikapcsolását a Microsoft
»Vírusriadót váltott ki a webezőknél a Google
»Ingyen iWiW-ezhetnek mobiljaikról a T-Mobile-osok
»Automatikusan kiválogatja legfontosabb leveleink a Google
»OOo4Kids - ingyenes Office csomag gyerekeknek
»Új, gyorsabb Core i3 és Pentium processzorokat jelentett be az Intel
Tagi blogok
»PSP
»Első Programozó
»USB
»PHP, mint sablonmotor egyszerűen