Delphi 7web servis

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
emozguner
Üye
Mesajlar: 11
Kayıt: 05 Oca 2008 12:30
Konum: Kocaeli

Delphi 7web servis

Mesaj gönderen emozguner »

merhaba arakdaslar bir problemle karsı karsıyayım umarım yardım edersiniz.
localde .net ile olsuturdugum web servise delphi 7 ile nasıl baglanabilirim. forumda arama yaptım ama genelde delphi ile olusturulmus wsdl lere baglanma ile ornekler gordum. acaba bu islemi yani delphi ile
http://localhost/abc/abc.asmx sayfasına delphideki 3 editdeki degerleri nasıl gonderebilirim. yardımcı olursanız sevinirim iyi aksamlar
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

.netteki hazırladığınız dil WSDL oluşturma yeteneği yokmu ?

eğer sadece bir web adresteki forma delphiden veri gömmek istiyorsanız Mrmarman tarafından hazırlanmış oldukça doyurucu bir makale forumda mevcut.

eğer nasıl bir WSDL dosyası oluştururum diyorsanız eclipse in bu özelliği var.

http://wiki.eclipse.org/index.php/Intro ... SDL_Editor

http://www.eclipse.org

bedava bir editördür.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Mesaj gönderen csunguray »

Belirtmiş olduğunuz web servisi adresini web tarayınıza yazdığınızda karşınıza web servisi ile ilgili tanımlar gelecektir. Oradan wsdl dosyasını elde edebilirsiniz. 2. adımda wsdl importer (File > New > Other > WebServices > WSDL Importer) kullanarak bu wsdl dosyasını kullanarak bu web servisindeki tanımlamaları bir delphi uniti haline getirin. Sonra da örneklerden yararlanarak bu unit' nasıl kullanacağınızı inceleyin.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
emozguner
Üye
Mesajlar: 11
Kayıt: 05 Oca 2008 12:30
Konum: Kocaeli

Mesaj gönderen emozguner »

cook tesekkur ederim sorunmu cozdunuz tesekkur ederim iyi calısmalar
emozguner
Üye
Mesajlar: 11
Kayıt: 05 Oca 2008 12:30
Konum: Kocaeli

Mesaj gönderen emozguner »

ben sormakdan sıkıldım siz cevap vermekden sıkılmadınız ama napayım arkadaslar delphi ile internet uygulamalarına pek fazla aşina değilim herneyse sorunu bir kısmını cevap veren arkadas sayesinde cozdum.. wsdl yi programa gosterdim.. ve sole birsey elde ettim

Kod: Tümünü seç

// ************************************************************************ //
// The types declared in this file were generated from data read from the
// WSDL File described below:
// WSDL     : C:\Documents and Settings\albert\Belgelerim\Yeni Klasör\Service.wsdl
// Encoding : utf-8
// Version  : 1.0
// (23.01.2008 12:12:25 - 1.33.2.5)
// ************************************************************************ //

unit Service;

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.
  // ************************************************************************ //
  // !:string          - "http://www.w3.org/2001/XMLSchema"
  // !:int             - "http://www.w3.org/2001/XMLSchema"



  // ************************************************************************ //
  // Namespace : http://tempuri.org/
  // soapAction: http://tempuri.org/Kullanici_Kontrol
  // transport : http://schemas.xmlsoap.org/soap/http
  // binding   : ServiceSoap
  // service   : Service
  // port      : ServiceSoap
  // URL       : http://192.168.2.3/ArtBecerikli_Service/Service.asmx
  // ************************************************************************ //
  ServiceSoap = interface(IInvokable)
  ['{77573149-9C57-FA51-F11F-EFD527C91BD9}']
    function  Kullanici_Kontrol(const SERIAL_NUMBER: WideString; const EXE_NAME: WideString; const KULLANICI_ADI: WideString; const KULLANICI_SOYADI: WideString; const FIRMA_ADI: WideString; const TELEFON: WideString; const EMAIL: WideString): Integer; stdcall;
  end;

function GetServiceSoap(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): ServiceSoap;


implementation

function GetServiceSoap(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): ServiceSoap;
const
  defWSDL = 'C:\Documents and Settings\albert\Belgelerim\Yeni Klasör\Service.wsdl';
  defURL  = 'http://192.168.2.3/ArtBecerikli_Service/Service.asmx';
  defSvc  = 'Service';
  defPrt  = 'ServiceSoap';
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 ServiceSoap);
    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(ServiceSoap), 'http://tempuri.org/', 'utf-8');
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(ServiceSoap), 'http://tempuri.org/Kullanici_Kontrol');

end. 
sonra formuma bir adet HTTPPRIO koydum bununda wsdl service ve port ayarlarını yaptım. sonra form1 de bir butoon koyup icine su kodu yazdım

Kod: Tümünü seç

 sonuc:= (HTTPRIO1 as ServiceSoap).Kullanici_Kontrol('SERIAL_NUMBER','EXE_NAME','KULLANICI_ADI','KULLANICI_SOYADI','FIRMA_ADI','TELEFON','EMAIL');
 showmessage(inttostr(sonuc));
ve final hersey okey sonra programı calıstırdım butona bastım sonra gonderdigim ip deki database baktım database de gelen kayıtın countu artıyor yani 250 kere gonder dedginizde bilgi gidiyor gosteriyor database ama 250 kayıtda bos gidiyorr.. ayrıca sonuc degeri de 0 (yani kayıt olmustur donuyor)burda bir mantık mı eksik arkdaslar cevap veririseniz cook ama cook sevinirim...
allah sizden razı olsun selametle
emozguner
Üye
Mesajlar: 11
Kayıt: 05 Oca 2008 12:30
Konum: Kocaeli

Mesaj gönderen emozguner »

problem cozulmustur arkadaslr
Murat Dicle hocamın cok onceden yazdıgı bir kod sayesinde olay cozuldu. localde eger calsıtıryorsanız
initialaztion kısmına

Kod: Tümünü seç

InvRegistry.RegisterInvokeOptions(TypeInfo(ServiceSoap), ioDocument);
ekledignizde program degerleri yolluyorr herkese tesekkurler
Cevapla