msde 1433 port kontrol

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
skyking
Üye
Mesajlar: 136
Kayıt: 09 Kas 2005 12:52
Konum: Antalya

msde 1433 port kontrol

Mesaj gönderen skyking »

slm arkadaslar
msde 1433 port kontrol etmek istiyorum ado baglanıyor ama scan port programında 1433-1434 gozukmuyor taratıgım zaman bunu kendi local bilgisayarımda yapıyorum sizce sorun nedir

bunu yapmamın acamacı open yada exec komutlarında once mssql servirin acık yada kapalı oldugumu (coklu kullanıcılı bir sistem olarak dusunun) eger port acık değilse 1 dak. geriye sayan bir form cıkarıp
baglantı saglanana kadar tekrarlaması sure bitiminde baglantıyı denemesi
Kullanıcı avatarı
dynamo
Üye
Mesajlar: 96
Kayıt: 21 Haz 2005 02:05
Konum: istanbul

Mesaj gönderen dynamo »

logo bunu yapmış.server bağlantısı kesilir/servis durmuşsa,herhangi bir formu açmaya çalıştığında bir mesaj penceresinde senin ifade ettiğin gibi "1 dak. geriye sayan bir form cıkarıp baglantı saglanana kadar tekrarlaması sure bitiminde baglantıyı denemesi" yapıyor. bağlantı sağladığında programı kapatmadan kaldığın yerden devam ediyorsun.

Resim

ben de benzeri işlem için

Kod: Tümünü seç

procedure TfrmSatis.SpeedButton1Click(Sender: TObject);
begin
    if not frmGiris.ADOConnection1.Connected then begin
      ShowMessage('bağlantı kesildi');
      //---------------
      //--------------
   end;
    frmListe.ShowModal;

end;
yapmaya çalıştım,fakat program "if not frmGiris.ADOConnection1.Connected then begin" ifadesini görmüyor,sistem hep kendi "Bağlantı başarısız oldu" mesajını veriyor,servere bağlantı sağlayıp/servis çalıştırsan bile program,bir işlem yaptığında "Bağlantı başarısız oldu" mesajını vermeye devam ediyor.illaki programı kapatıp yeniden giriş yapmak gerekiyor.


ben henüz çözemedim.senin çözüm için bir önerin var mı?

kolay gelsin.
Kullanıcı avatarı
skyking
Üye
Mesajlar: 136
Kayıt: 09 Kas 2005 12:52
Konum: Antalya

Mesaj gönderen skyking »

Kod: Tümünü seç

adoquery.close; 
adoquery.sql.text:='select ...';
try
adoquery.open;
except
if not frmGiris.ADOConnection1.Connected then begin 
      ShowMessage('bağlantı kesildi'); 
   end; 
   if  frmListe.ShowModal=mrok then
//   frmliste formda baglantı varmı yokmu diye kontrol ediyorsun eger 
//yoksa  mrcancel diyorsun eger varsa mr ok diyorsun bagalntının olum //olmadıgınıda 
//ADOConnection1.Connected:=false ; 
//ADOConnection1.Connected:=true yapıp saglayabilirsin 
   adoquery.open;
end;
En son skyking tarafından 09 Nis 2007 07:25 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: msde 1433 port kontrol

Mesaj gönderen Lost Soul »

skyking yazdı:slm arkadaslar
msde 1433 port kontrol etmek istiyorum ado baglanıyor ama scan port programında 1433-1434 gozukmuyor taratıgım zaman bunu kendi local bilgisayarımda yapıyorum sizce sorun nedir

bunu yapmamın acamacı open yada exec komutlarında once mssql servirin acık yada kapalı oldugumu (coklu kullanıcılı bir sistem olarak dusunun) eger port acık değilse 1 dak. geriye sayan bir form cıkarıp
baglantı saglanana kadar tekrarlaması sure bitiminde baglantıyı denemesi
Kendine ait bir form dizayn et
Bir timer iki button ve bir label koy.
formu shoowmodal ile çağır.
ve çağırırken timeri aktif et.
Timera active olduğu zaman
Timer da 1 nolu buttonun etiketini birerbirer geriye çağıran fonksiyon olsun ve eğer sıfır ise buttonu click etsin.

button clicke de bağlanması için gerekli kodları yaz.

Kod olarak yazmıyorum. Büyük ihtimalle mantığını bildikten sonra kod da yazarsın. iyi çalışmalar.
Kullanıcı avatarı
skyking
Üye
Mesajlar: 136
Kayıt: 09 Kas 2005 12:52
Konum: Antalya

Re: msde 1433 port kontrol

Mesaj gönderen skyking »

Lost Soul yazdı:
skyking yazdı:slm arkadaslar
msde 1433 port kontrol etmek istiyorum ado baglanıyor ama scan port programında 1433-1434 gozukmuyor taratıgım zaman bunu kendi local bilgisayarımda yapıyorum sizce sorun nedir

bunu yapmamın acamacı open yada exec komutlarında once mssql servirin acık yada kapalı oldugumu (coklu kullanıcılı bir sistem olarak dusunun) eger port acık değilse 1 dak. geriye sayan bir form cıkarıp
baglantı saglanana kadar tekrarlaması sure bitiminde baglantıyı denemesi
Kendine ait bir form dizayn et
Bir timer iki button ve bir label koy.
formu shoowmodal ile çağır.
ve çağırırken timeri aktif et.
Timera active olduğu zaman
Timer da 1 nolu buttonun etiketini birerbirer geriye çağıran fonksiyon olsun ve eğer sıfır ise buttonu click etsin.

button clicke de bağlanması için gerekli kodları yaz.

Kod olarak yazmıyorum. Büyük ihtimalle mantığını bildikten sonra kod da yazarsın. iyi çalışmalar.
sorun bunlar değil hocam sorunun kaynagını sormustum ama vazgeçtim

2. mesajımda yazdım zaten çözümü
Kullanıcı avatarı
dynamo
Üye
Mesajlar: 96
Kayıt: 21 Haz 2005 02:05
Konum: istanbul

Mesaj gönderen dynamo »

port tan sql server bulma işlemini yapamadım.fakat bu şekilde kontrol edebiliyorum:

sorguyu try-except içinde çalıştırıyorum.hata varsa yani servere bağlanamıyorsa "ADOConnection1.Errors.Count " daima 0 dan büyük bir değer dönderecektir.bu durumda form2 yi açıyorum.resimde logo'nun aynısı.

Kod: Tümünü seç

 
procedure TForm1.Button3Click(Sender: TObject);
begin
   ADOQuery1.close;
   ADOQuery1.sql.text:='select * from BOLUM';
   try
      ADOQuery1.Open;
   except
      if (ADOConnection1.Errors.Count > 0) then
         form2.ShowModal;
   end;
end;
form2'de Listbox1 in itemsinde 10,9,8,7,6,5,4,3,2,1,0 sayıları var.Timer1 ile sayıları BitBtn1 in Caption'da gösteriyorum.counter değişkeni sıfırlayarak her seferinde bağlantıyı tekrarlıyorum.

Kod: Tümünü seç

 public
    { Public declarations }
    counter:integer;
  end;

Kod: Tümünü seç


procedure TForm2.FormShow(Sender: TObject);
var i:integer;
begin
   for i:=10 downto 0 do
      ListBox1.Items.Add(IntToStr(i));
   Timer1.Enabled:=false;
   ListBox1.Visible:=false;
   //counter:=0;
   Timer1.Interval:=750;
   Timer1.Enabled:=true;
   Label1.Caption:='Veritabanı sunucusu ile bağlantı kurulamıyor...';
   Label2.Caption:='Seçiminizi yapınız...';
   Label3.Caption:='';
end;

procedure TForm2.Timer1Timer(Sender: TObject);
begin
   Label3.Caption:='';
   BitBtn1.Caption:='Tekrar Bağlan = '+ListBox1.Items.Strings[counter];
   inc(counter);
   if counter=ListBox1.Items.Count then begin
      form1.ADOConnection1.Connected:=false;
      form1.ADOConnection1.ConnectionString:='';
      try
         form1.ADOConnection1.Connected:=true;
         Close;
      except
         Label3.Caption:='Bağlanmaya Çalışıyor...';
         Label3.Refresh;
         Label3.Repaint;
         counter:=0;
      end;
   end;

end;



procedure TForm2.BitBtn2Click(Sender: TObject);
begin
   Close;
end;

procedure TForm2.BitBtn1Click(Sender: TObject);
begin

   form1.ADOConnection1.Connected:=false;
   form1.ADOConnection1.ConnectionString:='';
   try
      form1.ADOConnection1.Connected:=true;
      Close;
   except
      Label3.Caption:='Bağlanmaya Çalışıyor...';
      Label3.Refresh;
      Label3.Repaint;
      counter:=0;
   end;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   Timer1.Enabled:=false;
end;
belki sen,daha pratik bir yol bulabilirsin.

kolay gelsin;
Cevapla