Delphi Dünyası Facebook'ta

Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

Gönderen Konu: Bilgisyara MS Sql Server Yüklenip Yüklenmediğini Kontrol Etme  (Okunma sayısı 2747 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı dynamo

  • Delphi 3 Level 4
  • ****
  • İleti: 137
  • Rep: +3/-1
Bilgisyarda sql server kurulu mu, kurulu ise instance name nedir?

yüklü sql server listesi registryde "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" anahtarı altında "InstalledInstances" değerinde tutulmaktadır.sql server 2005'te instance name'ler "SQLEXPRESS" ile başlıyor.



sql server yüklü mü:
 
Kod:  (Unknown Language)
  1. [code]
  2. //uses Registry
  3. function SqlInstalled: boolean;
  4. var path: string;
  5.   reg: TRegistry;
  6. begin
  7.   result := true;
  8.   reg := TRegistry.Create;
  9.   reg.RootKey := HKEY_LOCAL_MACHINE;
  10.   if reg.OpenKey('SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\ClientSetup', false) = false then
  11.     result:=false;
  12.   reg.CloseKey;
  13.   reg.Free;
  14. end;
  15.  
[/code]

yüklü sql server listesi:

Kod:  (Unknown Language)
  1. [code]
  2. //Yuklu olan SQL Server isimleri (instancename)
  3. //uses Registry
  4. procedure SQLInstances(Instances: TStrings);
  5. procedure GetDoubleNullStrings(Buf: Pointer; Strings: TStrings);
  6. var
  7.    P: PChar;
  8. begin
  9.    Strings.Clear;
  10.    P := Buf;
  11.    while P^ <> #0 do
  12.    begin
  13.      Strings.Add(P);
  14.      Inc(P, StrLen(P) + 1);
  15.    end;
  16. end;
  17.  
  18. var
  19.    reg : TRegistry;
  20.    Buf : Pointer;
  21.    BufSize: Integer;
  22. begin
  23.    if Instances = nil then
  24.       Instances := TStringList.Create;
  25.    reg := TRegistry.Create;
  26.    try
  27.       reg.RootKey := HKEY_LOCAL_MACHINE;
  28.       If (reg.OpenKey('\SOFTWARE\Microsoft\Microsoft SQL Server',False)) and (reg.ValueExists('InstalledInstances')) then
  29.       begin
  30.          BufSize := reg.GetDataSize('InstalledInstances');
  31.          GetMem(Buf, BufSize);
  32.          reg.ReadBinaryData('InstalledInstances', Buf^, BufSize);
  33.          try
  34.             GetDoubleNullStrings(Buf, Instances);
  35.          finally
  36.             FreeMem(Buf);
  37.          end;
  38.       end
  39.       else begin//sql server is not installed
  40.  
  41.       end;
  42.    finally
  43.       reg.Free;
  44.    end;
  45. end;
  46.  
  47.  
[/code]

Kod:  (Unknown Language)
  1. [code]
  2. procedure TForm1.Button1Click(Sender: TObject);
  3. begin
  4.    //sql server yuklu mu
  5.    if SqlInstalled then
  6.    begin
  7.       Application.MessageBox('sql server y&#252;kl&#252; .','sql server kontrol',mb_ok+mb_iconinformation) ;
  8.       //yuklu sql server listesi
  9.       ListBox1.Clear;
  10.       SQLInstances(listbox1.items);
  11.    end
  12.    else
  13.      Application.MessageBox('sql server y&#252;kl&#252; de&#287;il.y&#252;klemek istiyor musunuz...?','sql server kontrol',mb_yesno+mb_iconinformation);
  14. end;
  15.  
[/code]

örnek uygulama ekte
« Son Düzenleme: 04 Temmuz 2007 10:34:33 by Fatih »

Çevrimdışı Fatagun

  • Delphi 1 Level 1
  • *
  • İleti: 3
  • Rep: +0/-0
Ynt: Bilgisyara MS Sql Server Yüklenip Yüklenmediğini Kontrol Etme
« Yanıtla #1 : 21 Eylül 2011 23:47:03 »

 Bu örnek sql 2005 de işe yaramıyor..

Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 796
  • Rep: +13/-0
  • Cinsiyet: Bay
  • Delphi Sürümü: e) Hepsi
Ynt: Bilgisyara MS Sql Server Yüklenip Yüklenmediğini Kontrol Etme
« Yanıtla #2 : 22 Eylül 2011 16:25:58 »
Bilgisyarda sql server kurulu mu, kurulu ise instance name nedir?

yüklü sql server listesi registryde "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" anahtarı altında "InstalledInstances" değerinde tutulmaktadır.
Burada bulunan kayıt değeri kaç tane SQL yüklü ise hepsini gösteriyor. Yalnız burada uygulamalarımız 32 bit olduğu için 64 sistemlerde 64 bit bit SQL server yüklü ise onlardan bihaber olacaktır. Bir de 32 bit yüklü sql server listesini Regedit'ten girip göremezsiniz. 32 bit programla bakmanız gerekmektedir.
Şaban Şahin AKMAN

Derin olan kuyu değil kısa olan iptir