MSSQL veritabanını sorgulamak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

MSSQL veritabanını sorgulamak

Mesaj gönderen izmirlikemal »

Merhabalar
Internetde yaptığım araştırmalar sonunda MSSQL veritabanında Delphi aracılığı ve kodlama ile Sehirlerimiz.mdf adında bir dosya oluşturdum.
Yanlışlıkla aynı isimde bir dosya oluşturmaya çalıştığımda bu Sehirlerimiz.mdf uzantılı dosya kayıtlı başka bir isimle veritabanı oluşturun mesajını almak istiyorum. Yardımlarınızı bekliyorum.Herkese iyi çalışmalar, hayırlı ve bol bereketli bir Ramazan ayı diliyorum.
Bilgi:
Delphi 10.2 Tokyo
Windows 10 Home
MSSQL Server Management Studio V. 17.7
kullanıyorum.
ihalilcoban
Üye
Mesajlar: 121
Kayıt: 10 Ara 2015 10:39

Re: MSSQL veritabanını sorgulamak

Mesaj gönderen ihalilcoban »

fileexists ile dosya var mı yok mu kontrol edebilirsin. MSSQL bilmem ama firebird de şu yolu izliyorum.

Kod: Tümünü seç

if fileexists(ExtractFilePath(Application.ExeName)+'DATA\'+Firma_Kodu_Edit.Text+'_'+Donemi_Combo.Text+'.FDB')  then
 	Begin///Aynı Firma ve Çalışma Dönemi Dosyası Varsa Uyarı ver
	Application.MessageBox('Bu Firma Adı ve Çalışma Döneminde Data Dosyası Bulundu. Aynı Firma Adı ve Çalışma Döneminde Data 	Oluşturulamaz!','Uyarı Mesajı',mb_ok+MB_ICONWARNING);
	Exit;
	End;
Exe ile aynı dizinde bulunan DATA klasörünü bu şekilde kontrol ediyorum. Aynı isimde data varsa uyarı verdiriyorum. Umarım işine yarar.
izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

Re: MSSQL veritabanını sorgulamak

Mesaj gönderen izmirlikemal »

Data Klasörünün adresi "C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA"
kodların buraya ulaşması için ne yapmamız gerekiyor?
Data klaörünün bulunduğu adrese ulaşamadığım için kodların çalışıp çalışmadığını kontroledemedim(sizin verdiğiniz kodları denedim. Olumsuz);
Yinede iligine teşekkür ederim ihalilcoban arkadaşım.
ihalilcoban
Üye
Mesajlar: 121
Kayıt: 10 Ara 2015 10:39

Re: MSSQL veritabanını sorgulamak

Mesaj gönderen ihalilcoban »

Kod: Tümünü seç

if fileexists('C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\Sehirlerimiz.mdf') Then
Begin
---------
End;
bu kod zaten belirtilen adrese bakar dosya var mı yok mu diye. Ekstra bir şey yapmaya gerek yok. Gözden kaçırdığınız bir şeyler olabilir.
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: MSSQL veritabanını sorgulamak

Mesaj gönderen ertank »

Merhaba,

SQL Server database sistemi verileri birden fazla fiziki dosya üzerine saklayabilir. SQL Management Studio içindeki gözüken database adı (sanal database adı) ve dosya sistemindeki adı (fiziki database dosyası(ları)) farklı olabilir.

İlgili database'e bağlantı kurduktan sonra aşağıdaki SQL komutu çalıştırılır ise database'in hangi fiziki disk dosyalarını kullandığını öğrenebilirsiniz.

Kod: Tümünü seç

SELECT file_id, name as "sanal_database_adi", physical_name as "fiziki_database_dosyasi"
from sys.database_files
Bununla birlikte bir database'in sistemde mevcut olup olmadığını anlamak için öncelikle "master" database'e bağlantı kurup aşağıdaki SQL komutunu çalıştırabilirsiniz.

Kod: Tümünü seç

SELECT DB_ID('sehirlerimiz')
Yukarıdaki SQL komutu cevap olarak NULL dışında bir değer döndürüyor ise ilgili database sistemde zaten mevcuttur.
Cevapla