kurulurken sql ayarlarını almak
kurulurken sql ayarlarını almak
selam arkadaşlar benim problemim şu bir delphi'de sözlük programı yazdım kullandığım veritabanı sql 2005 dosya uzantım mdf:şimdi benim istediğim bu programı isteyen herkesin bilgisayarına yüklemek ancak benim bilgisayarımdaki sql kullanıcı adı ve şifresi farklı diğer kuracak arkadaşlarınki farklı olacağından şöyle bir yöntem yapmak istiyorum:
formun create olayına öyle bir kod istiyorumki:
1- kullanıcı programı çalıştırdığında program gidip kullanıcının bilgisayarında sql 2005 varmı yokmu onu sorgulasın
2-sql 2005 varsa onun kullanıcı adını ve makinasının ismini adoconnection'un connectionstring ine otomatik olarak atsın
veya bunun daha kolay bir yolu varmı
yardımcı olursanız sevinirim şimdiden teşekkürler
3-sql 2005 kuruluysa benim mdf dosyamı nasıl attach yapabilirim
formun create olayına öyle bir kod istiyorumki:
1- kullanıcı programı çalıştırdığında program gidip kullanıcının bilgisayarında sql 2005 varmı yokmu onu sorgulasın
2-sql 2005 varsa onun kullanıcı adını ve makinasının ismini adoconnection'un connectionstring ine otomatik olarak atsın
veya bunun daha kolay bir yolu varmı
yardımcı olursanız sevinirim şimdiden teşekkürler
3-sql 2005 kuruluysa benim mdf dosyamı nasıl attach yapabilirim
Re: kurulurken sql ayarlarını almak
Servera Windows hesabı ile erişebilirmisiniz ona tam emin değilim..
attac için
Örnek
SQL Server listesi için
attac için
Örnek
Kod: Tümünü seç
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
Kod: Tümünü seç
procedure ListAvailableSQLServers(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;
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;
Bir kelimenin anlamını öğretsen bile yeter..



- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: kurulurken sql ayarlarını almak
1-
2-SQL kullanıcı ve şifresini bulmanın bir yoluna rastlamadım hiç o yüzden bağlantı yöntemini farklı kullanın. Window NT seçeneği ile veritabana bağlanabilirsiniz. Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=db_adi
3-sp_attach_db 'db_adi', 'c:\yol\db_adi.mdf', 'c:\yol\db_adi.ldf'
fazla cevap göz çıkarmaz
Kod: Tümünü seç
uses Registry;
function SQLServerVersiyonu:String;
begin
Result:='';
with TRegistry.Create do try
RootKey:=HKEY_LOCAL_MACHINE;
if OpenKey('SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion',False) then
Result:=ReadString('CurrentVersion');
finally
Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var S:String; i:Integer;
begin
S:=SQLServerVersiyonu;
i:=Pos('.',S); if i>0 then S:=Copy(S,1,i-1);
if S='8' then Label1.Caption:='SQL Server 2000 yüklü'
else if S='9' then Label1.Caption:='SQL Server 2005 yüklü'
else if S='10' then Label1.Caption:='SQL Server 2008 yüklü'
else Label1.Caption:='SQL Server yüklü değil'
end;
3-sp_attach_db 'db_adi', 'c:\yol\db_adi.mdf', 'c:\yol\db_adi.ldf'
fazla cevap göz çıkarmaz

Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: kurulurken sql ayarlarını almak
selam arkadaşlar dediklerinizi yaptım ancak yinede sql servere ulaşamadım
1- sorumu yazarken sql 2005 management expres
kullandığımı yazmamıştım acaba ondan dolayı olabilirmi
2-Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=db_adi
kodunu yazdığımda program hata veriyor acaba uses satırına eklememiz gereken bir şeyler varmı?
3-uses satırına yazdığımız kütüphaneler .....hangi kod hangi kütüphaneyi istiyor bununla ilgili bir döküman varmı
4-benim yaptığım sözlük arapça türkçe sözlük sql 2008 de arapça desteği(nvarchar) olduğu için mdf dosyasını tercih ettim
ama başka bir bilgisayara kurulum yaparken bu kadar problem yaşıyacağımı tahmin etmiyordum sormak istiyorum acaba daha kolay kurulumu olan ve arapcayı destekleyen delphinin kendi içinde db veritabanları varmı?
not:
birde arkadaşlar:program kodlarını yazarken sonlarına açıklama kısmı ekleyip bu kodla ne yapılmasını açıklama kısmına eklersek bizde en azından neyi niçin yaptığımızı sizin gibi delphiden anlıyan arkadaşların vesilesiyle daha iyi anlamaya çalışırız çünkü bizim delphi bilgimiz yeterli değil ama bu delphi sitesini çok seviyorum şu ana kadar ne öğrendiysem üç aşağı beş yukarı bu siteden öğrendim kitaplarda bile bulamadığımı çoğu zaman bu siteden arkadaşlarla yardımlaşarak buldum
şimdiden tüm delphici arkadaşlarıma teşekkür ederim
1- sorumu yazarken sql 2005 management expres
kullandığımı yazmamıştım acaba ondan dolayı olabilirmi
2-Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=db_adi
kodunu yazdığımda program hata veriyor acaba uses satırına eklememiz gereken bir şeyler varmı?
3-uses satırına yazdığımız kütüphaneler .....hangi kod hangi kütüphaneyi istiyor bununla ilgili bir döküman varmı
4-benim yaptığım sözlük arapça türkçe sözlük sql 2008 de arapça desteği(nvarchar) olduğu için mdf dosyasını tercih ettim
ama başka bir bilgisayara kurulum yaparken bu kadar problem yaşıyacağımı tahmin etmiyordum sormak istiyorum acaba daha kolay kurulumu olan ve arapcayı destekleyen delphinin kendi içinde db veritabanları varmı?
not:
birde arkadaşlar:program kodlarını yazarken sonlarına açıklama kısmı ekleyip bu kodla ne yapılmasını açıklama kısmına eklersek bizde en azından neyi niçin yaptığımızı sizin gibi delphiden anlıyan arkadaşların vesilesiyle daha iyi anlamaya çalışırız çünkü bizim delphi bilgimiz yeterli değil ama bu delphi sitesini çok seviyorum şu ana kadar ne öğrendiysem üç aşağı beş yukarı bu siteden öğrendim kitaplarda bile bulamadığımı çoğu zaman bu siteden arkadaşlarla yardımlaşarak buldum
şimdiden tüm delphici arkadaşlarıma teşekkür ederim

- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: kurulurken sql ayarlarını almak
İyi günler. Verdiğim cevapta altını çizdiğim db_adı değerini kendi veritabanınızın adını yazmanız gerekiyor. Veritabanınız adını bilmediğim için bu ismi kullandım ve dikkati oraya çekmek için altını çizdim. Bunun yerine kendi sözlük veritabanı adnınızı kullanmanız gerekmektedir. Eğer kendi oluşturduğunuz veritabanınızı SQL 2008'de oluşturduysanız bu .mdf dosyasını sadece SQL 2008'de kullanabilirsiniz. 2005 ve 2000 de kullanamazsınız. 2005 .mdf dosyası da 2000 de kullanılamaz. Bunun tersi mümkündür ama, bir aksilik yaşamadan çalıştırılırlar. Yılı yeni olan geçmiş yıllarda kullanılamaz ama eski olan dosya tipi sonraki yıllarda kullanılabilmektedir.
-En başa dönecek olursak SQL Server üzerinde veritabanınızın yüklü olmadığını farz edelim ve veritabanı ismini SOZLUK olduğunu varsayalım. Programınızı çalıştırmanız için ilk iş veritabanınızı SQL'e sp_attach_db ile kaydetmek olacak. Bu işlem için ise SQL Server master veritabanına bağlanmanız gerekmektedir.
-SQL Server master veritabanına "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=" stringi ile master veritabanına bağlanabilirsiniz. Bu arada sql server veritabanınız farklı bir isimle yüklenmişse (bu genelde SQLExpress olabiliyor). Bu durumda da bağlantı stringiniz "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=.\sqlexpress" şeklinde DataSource parametresiyle bu sql sunucusunu doğru olarak vermeniz gerekmektedir.
-SQL Server, master veritabanına bağlandıktan sonra sp_attach_db ile veritabanı dosyanızı SQL'e kaydetmek gerekmektedir.Eğer SOZLUK veritabanı sistemde kayıtlı ise bu kod Database 'SOZLUK' already exists.şeklinde hata verecektir. Bu hata gelirse dert etmeye gerek yok.
-Bu işlemden sonra artık veritabanınız kullanılmaya hazırdır. Yukarıda master veritabanı için kullanılan string değerini SOZLUK veritabanına uyarlayarak "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=SOZLUK;Data Source=" şeklinde kullanabilirsiniz.
SQL Server üzerinde biraz çalışma yaparsanız aslında yapmak istediğiniz işlem çok basit bir işlemdir. ConnectionString'de önemli olan sunucu adınının (DataSource parametresini) doğru verilmesidir. İyi çalışmalar.
-En başa dönecek olursak SQL Server üzerinde veritabanınızın yüklü olmadığını farz edelim ve veritabanı ismini SOZLUK olduğunu varsayalım. Programınızı çalıştırmanız için ilk iş veritabanınızı SQL'e sp_attach_db ile kaydetmek olacak. Bu işlem için ise SQL Server master veritabanına bağlanmanız gerekmektedir.
-SQL Server master veritabanına "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=" stringi ile master veritabanına bağlanabilirsiniz. Bu arada sql server veritabanınız farklı bir isimle yüklenmişse (bu genelde SQLExpress olabiliyor). Bu durumda da bağlantı stringiniz "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=.\sqlexpress" şeklinde DataSource parametresiyle bu sql sunucusunu doğru olarak vermeniz gerekmektedir.
-SQL Server, master veritabanına bağlandıktan sonra sp_attach_db ile veritabanı dosyanızı SQL'e kaydetmek gerekmektedir.
Kod: Tümünü seç
EXEC sp_attach_db @dbname = N'SOZLUK',
@filename1 = N'c:\SozlukProgramYolu\SOZLUK.mdf',
@filename2 = N'c:\SozlukProgramYolu\SOZLUK_log.ldf'
-Bu işlemden sonra artık veritabanınız kullanılmaya hazırdır. Yukarıda master veritabanı için kullanılan string değerini SOZLUK veritabanına uyarlayarak "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=SOZLUK;Data Source=" şeklinde kullanabilirsiniz.
SQL Server üzerinde biraz çalışma yaparsanız aslında yapmak istediğiniz işlem çok basit bir işlemdir. ConnectionString'de önemli olan sunucu adınının (DataSource parametresini) doğru verilmesidir. İyi çalışmalar.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: kurulurken sql ayarlarını almak
şaban kardeşim yardımlarından dolayı öncelikle teşekkür ederim söylediklerinin üzerinde deneme yanılma yaparak en sonunda sql servera ulaştım
sorunsuz bir şekilde çalışıyor ancak attach kısmını yani ....EXEC sp_attach_db @dbname = N'SOZLUK',
@filename1 = N'c:\SozlukProgramYolu\SOZLUK.mdf',
@filename2 = N'c:\SozlukProgramYolu\SOZLUK_log.ldf'...
bu kodları nerede kullanacağımı bilmiyorum bunu sql serverde yazdığımda çalışıyor ve veritabanına sözlük veritabanını ekliyor ama anlıyamadığım bir şey var
ben bu kodu delphide nasıl kullanacağım nereye yazacağım eğer bu bir stored procedure ise bu konuda fazla bir bilgim yok bu stored procedure'ler delphide nasıl çağrılırlar bununla ilgili bir yardımcı olurmusun teşekkürler.
sorunsuz bir şekilde çalışıyor ancak attach kısmını yani ....EXEC sp_attach_db @dbname = N'SOZLUK',
@filename1 = N'c:\SozlukProgramYolu\SOZLUK.mdf',
@filename2 = N'c:\SozlukProgramYolu\SOZLUK_log.ldf'...
bu kodları nerede kullanacağımı bilmiyorum bunu sql serverde yazdığımda çalışıyor ve veritabanına sözlük veritabanını ekliyor ama anlıyamadığım bir şey var
ben bu kodu delphide nasıl kullanacağım nereye yazacağım eğer bu bir stored procedure ise bu konuda fazla bir bilgim yok bu stored procedure'ler delphide nasıl çağrılırlar bununla ilgili bir yardımcı olurmusun teşekkürler.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: kurulurken sql ayarlarını almak
Bunun için 2 yöntem önerebilirim. Veritabanına bağlanmış ADOQuery veya ADOConnection bileşenlerini kullanabilirsiniz. Anahtar nokta veritabanına bağlanmış bileşenler olmalı. Bu veritabanı master veritabanı olabilir. veya diğer yöntem iseşeklinde olabilir.
Kod: Tümünü seç
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('EXEC sp_attach_db N''SOZLUK'', N''c:\SozlukProgramYolu\SOZLUK.mdf'', N''c:\SozlukProgramYolu\SOZLUK_log.ldf''');
ADOQuery1.ExecSQL;
Kod: Tümünü seç
ADOConnection1.Execute('EXEC sp_attach_db N''SOZLUK'', N''c:\SozlukProgramYolu\SOZLUK.mdf'', N''c:\SozlukProgramYolu\SOZLUK_log.ldf''');
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: kurulurken sql ayarlarını almak
selam arkadaşlar problemleri yavaş yavaş çözdüm sayenizde forma 1 edit yerleştirip oraya editin text olayına Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=.\sqlexpress--kodunu yazdım form create olurken adoconnection1stringini editten okuyacak şekilde ayarladım diğer attach problemlerinide
"sabanakman" kardeşimin yukarıda bahsettiği gibi hallettim yani
buraya kadar problemler tamam ancak bu programı diğer bilgisayarlarda denerken şunu farkettim genelde bilgisayarlarda arapça(yani sağdan sola)olan diller yüklü değildir ancak kullanıcı sonradan isterse denetim masasında dil seçeneklerini xp cd'si ile onu bilgisayarına kurar
1-şimdi yapmak istediğim kullanıcı programı çalıştırdığında nasıl bir kod ile arapça dili yüklümü değilmi anlıyalım ve eğer yüklü değilse onu program içerisinden nasıl bir kod ile yüklüyebiliriz
bunu çözebilirsek bir adet sorum daha olacak
yardımcı olacak arkadaşlara şimdiden teşekkür ederim
"sabanakman" kardeşimin yukarıda bahsettiği gibi hallettim yani
buraya kadar problemler tamam ancak bu programı diğer bilgisayarlarda denerken şunu farkettim genelde bilgisayarlarda arapça(yani sağdan sola)olan diller yüklü değildir ancak kullanıcı sonradan isterse denetim masasında dil seçeneklerini xp cd'si ile onu bilgisayarına kurar
1-şimdi yapmak istediğim kullanıcı programı çalıştırdığında nasıl bir kod ile arapça dili yüklümü değilmi anlıyalım ve eğer yüklü değilse onu program içerisinden nasıl bir kod ile yüklüyebiliriz
bunu çözebilirsek bir adet sorum daha olacak
yardımcı olacak arkadaşlara şimdiden teşekkür ederim