Mssql veritabanı adını parametre olarak girmek

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

Mssql veritabanı adını parametre olarak girmek

Mesaj gönderen izmirlikemal » 09 Nis 2018 05:08

Merhaba
Var Query:TAdoQuery; Datasrc:TDataSource;
begin
Query := TADOQuery.Create(nil);
DataSrc := TDataSource.Create(Self);
DataSrc.DataSet := Query;
Query.Close;
try
Query.Connection:=ADOConnection1;
Query.SQL.Text:='SELECT * FROM MA';
Query.open;
finally
end;
end;
-------------------
Yukarıda kodlarda bulunan "MA" veritabanındaki Table adını parametre girerek kullanmak istiyorum.
Bunu yapmak istememin sebebi ise aynı kodları kullanarak farklı veritabanlarına başlanmak ve buralardan veri çekmek istiyorum.
Veritabanı adını(Table adı) dışardan parametre kullanarak girebilirmiyim.
Örneğin MA yerine "Kuslar" veya "otlar" veya "personel" aynı Query de kullanabilirmiyim.

mkysoft
Kıdemli Üye
Mesajlar: 2934
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: Mssql veritabanı adını parametre olarak girmek

Mesaj gönderen mkysoft » 09 Nis 2018 07:05

SQL komutu metin olarak girildiği için tabiki yapabilirsiniz.
Benim tavsiye bağlantı bilgisinde yönetmeniz. ADOConnection1 üzerine girdiğini bağlantı bilgisinde varsayılan veri tabanı bulunuyor.

izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

Re: Mssql veritabanı adını parametre olarak girmek

Mesaj gönderen izmirlikemal » 10 Nis 2018 01:16

Sayın mkysoft
Bu konuyla ilgili kısa bir kod dizisi paylaşmanız mümkün mü?

mkysoft
Kıdemli Üye
Mesajlar: 2934
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: Mssql veritabanı adını parametre olarak girmek

Mesaj gönderen mkysoft » 10 Nis 2018 07:44

Daha çok akış ile ilgili olduğundan kod paylaşamayacağım. ADOConnection1 üzerindeki connectionstring özelliğini nerede atıyorsunuz? Kodu yazarken mi atadınız? Bu connectionstring içinde db adı da bulunur. Sorgularda db adı vermezseniz burada belirttiğiniz db kullanılır. Aktif olan db'yi USE mydb; sql komutu ile çalışma anında değiştirebilirsiniz.
Uygulamanızda aynı veri yapısına sahip farklı müşterileri/yıllar yönetecekseniz uygulamanın açılışında connectionstring değerin değiştirmenizi tavsiye etmeye çalışmıştım.

Cevapla