Merhaba arkadaşlar
Delphi ile web servis yazan var mı?
Servis içerisinde SQL bağlantısını nasıl yapıyorsunuz?
İyi Çalışmalar
Web Servis ADO Bağlantısı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 216
- Kayıt: 10 Ara 2013 03:50
Re: Web Servis ADO Bağlantısı
Ben bir tane yazmıştım. Aşağıdaki örnekte, servisinin bir fonksiyonu çağırıldığında nasıl database'e bağlanılacağını ve sorgu yapılacağını anlatmaya çalıştım. Umarım işini görür.
Servisin adı "mysapws", aşağıdaki örneği ona göre çözümlersin.
Servisin adı "mysapws", aşağıdaki örneği ona göre çözümlersin.
Kod: Tümünü seç
Tmysapws = class(TInvokableClass, Imysapws)
private
AdoDB: TADOConnection;
Query: TADOQuery;
...
function ConnectDatabase: Boolean;
...
public
function GetData(prm1, prm2, prm3 ... ): TMyData; stdcall; //dışarıya yayınladığım fonksiyon bu olsun
...
end;
implementation
function Tmysapws.ConnectDatabase: Boolean;
begin
if AdoDB = nil then AdoDB := TADOConnection.Create(nil);
if Query = nil then Query := TADOQuery.Create(nil);
Result := AdoDB.Connected;
if Result then Exit;
AdoDB.ConnectionString := 'Provider=SQLOLEDB.1;Persist Security Info=True;Data Source=SUNUCU;Initial Catalog=VERITABANI;User ID=KULLANICI;Password=PAROLA';
try
Query.Connection := AdoDB;
if not AdoDB.Connected then AdoDb.Connected := True;
Result := AdoDB.Connected;
except
end;
end;
procedure TMySapws.GetData(prm1, prm2, prm3 ... ): TMyData; stdcall;
begin
...
if not ConnectDatabase then Exit;
try
Query.SQL.Text := 'select * from table where .... ';
Query.Active := True;
// gerisi standart rutinler, query ile veri işleme kodları vs.
...
except
end;
...
end;
Re: Web Servis ADO Bağlantısı
Servisin uses kısmına ComObj, System.Variants, ADO gibi eklemeler yaptığımda ISS web servisi çalıştırmıyor. Servis içerisinde dosya (INI) açma, connection işlemleri için özel bir ayar mı lazım?
-
- Üye
- Mesajlar: 216
- Kayıt: 10 Ara 2013 03:50
Re: Web Servis ADO Bağlantısı
IIS yönetiminden Application Pools altındaki DefaultAppPool'un (servis hangisini kullanıyorsa) gelişmiş ayarlarındaki "Enable 32-bit applications" seçenğini True yap.
Re: Web Servis ADO Bağlantısı
Enable 32-bit applications=true şeklindeydi. Kod içerisinde toplama yapan bir fonksiyon var. Herhangi bir ekleme yapmadan bu şekilde çalışıyor. Ama uses kısmına birşeyler ekleyip web servisi çağırdığımda DesaultAppPool duruyor.