Merhabalar Yapmış olduğum bir programı müşterilere dağıtacağım herkeste sunucu adı farklı olduğu için program içerisinden seçim yaptırtmak istiyorum hangi sunucuyu yada kullanıcıyı istiyorlarsa o nu seçsinler istiyorum ama o sunucu isimlerini delphi de gride yada herhangi bir yere çeken kodu bulamadım yardımcı olan arkadaşlara şimdiden çok teşekkür ederim.... Sorumla ilgili ekte resim vardır.
mesela ben butona tıkladığımda
resime göre
gridin 1. satırına GOKHAN
gridin 2. satırına GOKHAN\SQLEXPRESS
gridin 3. satırına KADIR-PC
gridin 4. satırına KADIR-PC\SQLEXPRESS
gridin 5. satırına PC1
gridin 6. satırına PC1\SQLEXPRESS
gridin 7. satırına SOZER
gridin 8. satırına YASEMİN\SQLEXPRESS Yazacak
başka bir pc ye gittiğimde de yine butona tıklayacağım hangi sunucular varsa onu seçeceğim....
//ADOQuery1.SQL.Text:='select * from sys.servers'; şöyle bir kod buldum ama bu benim işime yaramadı çünkü sadece serveri veriyor tek kayıt veriyor o yüzden olmadı...
Sunucu adını seçin veya girin
Sunucu adını seçin veya girin
- Dosya ekleri
-
- 123.jpg (9.16 KiB) 2909 kere görüntülendi
Vurulup Tertemiz Alnından uzanmış Yatıyor
Bir Hilal Uğruna Ya Rab, Ne Güneşler Batıyor!
Bir Hilal Uğruna Ya Rab, Ne Güneşler Batıyor!
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Sunucu adını seçin veya girin
Sıklıkla bu listeye yetkiye, duvara takılarak sağlıklı tam liste getiremediği olmaktadır.
Kod: Tümünü seç
uses ADOInt, OleDB, DB, ActiveX, ComObj, ADODB;
procedure ListAvailableSQLServers(const Names : TStrings);
var
RSCon: ADORecordsetConstruction;
Rowset: IRowset;
SourcesRowset: ISourcesRowset;
SourcesRecordset: _Recordset;
SourcesName, SourcesType: TField;
function PtCreateADOObject(const ClassID: TGUID): IUnknown;
var
Status: HResult;
FPUControlWord: Word;
begin
asm
FNSTCW FPUControlWord
end;
Status := CoCreateInstance(CLASS_Recordset,nil,CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER,IUnknown,Result);
asm
FNCLEX
FLDCW FPUControlWord
end;
OleCheck(Status);
end;
begin
SourcesRecordset := PtCreateADOObject(CLASS_Recordset) as _Recordset;
RSCon := SourcesRecordset as ADORecordsetConstruction;
SourcesRowset := CreateComObject(ProgIDToClassID('SQLOLEDB Enumerator')) as ISourcesRowset;
OleCheck(SourcesRowset.GetSourcesRowset(nil, IRowset, 0, nil, IUnknown(Rowset)));
RSCon.Rowset := RowSet;
with TADODataSet.Create(nil) do try
Recordset := SourcesRecordset;
SourcesName := FieldByName('SOURCES_NAME'); { do not localize }
SourcesType := FieldByName('SOURCES_TYPE'); { do not localize }
Names.BeginUpdate;
Names.Clear;
try
while not Eof do begin
if (SourcesType.AsInteger = DBSOURCETYPE_DATASOURCE) and (SourcesName.AsString <> '') then Names.Add(SourcesName.AsString);
Next;
end;
finally
Names.EndUpdate;
end;
finally
Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListAvailableSQLServers(ListBox1.Items);
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Sunucu adını seçin veya girin
Şaban bey'in söylediğine ilave olarak; resim'de bizimle paylaştığınız ekranın aynısını çıkartmak istiyorsanız eğer; ADODB.pas içindeki PromptDataSource metodunu da kullanabilirsiniz.
Re: Sunucu adını seçin veya girin
Aşağıdaki linkteki programı kullanıyorum ben. istediğin serveri bularak uygun connection strng oluşturuyor. Sonra bunu alarak ini veya başka bir text dosyaya koyup programımda okutuyorum. Biraz sorunlu çalışsa da iş görüyor.
http://www.itstools.biz.tr/prindir/SQLS ... erator.rar
http://www.itstools.biz.tr/prindir/SQLS ... erator.rar
Re: Sunucu adını seçin veya girin
saban akman hocamın vermiş olduğu kodlar bende bire bir çalıştı fakat thelvaci ve varyemez arkadaşlarıma da çok teşekkür ediyorum onlardan herhangi bir sonuç çıkaramadım varyemez hocam sizin proje nedendir bilinmez bende hep hata verdi hiç çalışmadı onun kaynak kodları da sizdemi kaynak kodlarından da bir sonuç çıkarılabilir gibi geliyor bana.
Vurulup Tertemiz Alnından uzanmış Yatıyor
Bir Hilal Uğruna Ya Rab, Ne Güneşler Batıyor!
Bir Hilal Uğruna Ya Rab, Ne Güneşler Batıyor!
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Sunucu adını seçin veya girin
Tuğrul Hocanın anlatmak istediği, hazır windows kütüphanelerinin kullanılması ile alakalı. Sanırım koda dökemediniz. Bence incelenmesinde kesinlikle fayda var .
1-)
veya
2-)Kolay gelsin.
1-)
Kod: Tümünü seç
uses ADODB;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ADOConnection1.ConnectionString:=PromptDataSource(Handle, ADOConnection1.ConnectionString);
end;
2-)
Kod: Tümünü seç
uses ADOCOnEd;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
EditConnectionString(ADOConnection1);
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
- bulutsuzluk_35
- Üye
- Mesajlar: 124
- Kayıt: 06 Eki 2007 04:14
- Konum: İzmir-Ankara-İstanbul-Antalya
- İletişim:
Re: Sunucu adını seçin veya girin
Kod: Tümünü seç
try
try
inc(Bilgi);
except
sabir;
end;
finally
inc(Mutluluk);
end;