Odbc kullanmadan Ms-sql 'e bağlanma Çözüldü

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
lom
Üye
Mesajlar: 135
Kayıt: 25 Nis 2006 02:37

Odbc kullanmadan Ms-sql 'e bağlanma Çözüldü

Mesaj gönderen lom »

s.a Kolay gelsin arkadaşlar. uzun zamandır yapmaya çalıştığım bi durum vardı. biden fazla makinelerin MS-Sql 2000 kurulu makinaya bağlanmasını sağlamak. Bunu sonunda başardım ODBC kullanarak. Ancak daha sonra şöle bişe düşündüm. İlerde herhangi bi pc'ye format atıldığında benim program çalışmayacaktır, ancak tekrar odbc bağlantısı yapmamız gerekecektir. programımın kendi diziinine bi txt dosyası yapıp ana makinanın adını veya ipsini yazarak bağlantı yapabilirmiyim acaba ? Yardımcı olursanız sevinirim. Kola gelsin.
En son lom tarafından 15 Ara 2008 10:20 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
lom
Üye
Mesajlar: 135
Kayıt: 25 Nis 2006 02:37

Re: Odbc kullanmadan Ms-sql 'e bağlanma

Mesaj gönderen lom »

s.a
Forumda biraz araştırdımda bunu da yapmış oldum sayenizde arkadaşlar. buraya da yazayım en azından benim gibi yapmaya çalışanlar için detaylı bilgi olur :)
Öncelikle projemin bulunduğu klasöre ayarlar.ini dosyası oluşturdum. Projemde de Uses kısmına INIFILES ekledim.
Projemin çalışacağı serveri ini dosyasına kaydettim şu şekilde :

Kod: Tümünü seç

[CONFIG]
DatabaseServer=192.168.1.5

Kod: Tümünü seç

procedure TDM.DataModuleCreate(Sender: TObject);
var
  a:Tinifile;
  constr:string;
begin
        a := tinifile.Create('D:\OTOMASYON\' + 'ayarlar.ini');
        constr := 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;';
        constr := constr + 'PWD=*********;' ;  
        constr := constr + 'Initial Catalog=MANDIRA;';
        constr := constr + 'Data Source=' + a.ReadString('CONFIG', 'DatabaseServer', '');
        BAGLANTI.ConnectionString := constr;
        BAGLANTI.connected := true;
end;
bu ayarları yaptıktan sora progam her açıldığında kullanıcı şifresini istiyodu. Onu da AdoConnection nesnesinin Login Prompt özelliğini false yaparak çözdüm. Daha sora programım çalıştı. Ancak bu seferde tarih formatlarında hata verdi:

Kod: Tümünü seç

the conversion of a char data type to a datetime data type resulted in an out-of range datetime value
bu sorunumuda şu şekilde çözdüm (sabanakman hocamın cevabı ile):

Kod: Tümünü seç

procedure TDM.BAGLANTIAfterConnect(Sender: TObject);
begin
  if Sender is TADOConnection then
   TADOConnection(Sender).Execute('set dateformat dmy');
end;
Bu şekilde projem ODBC bağlantısı olmadan çalıştı. Herkese teşekkürler kolay gelsin.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Odbc kullanmadan Ms-sql 'e bağlanma Çözüldü

Mesaj gönderen conari »

Kod: Tümünü seç

a := tinifile.Create('D:\OTOMASYON\' + 'ayarlar.ini');
application.exename
yani exenin bulunduğu yere taşısan ve ordan okusan daha iyi.

Ben bu ayarlarla uğraşmadan Serverı kullanıcıya seçtiriyorum, Ayarlar Kısmında.
Vt bağlan kısmında da hangisine bağlanmak ister ise onu seçtiriyorum.
Tabi hem servera hem vt ye bağlanmak için ikisininde user ve şifresini bilmesi gerekiyor.
:mrgreen:
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
lom
Üye
Mesajlar: 135
Kayıt: 25 Nis 2006 02:37

Re: Odbc kullanmadan Ms-sql 'e bağlanma Çözüldü

Mesaj gönderen lom »

İlk başta o şekilde denemiştimde Undeclared identifier hatası aldım hocam. Sebebi nedir ?

Kod: Tümünü seç

a := tinifile.Create(ExtractFilePath(Application.EXEName) + 'ayarlar.ini');
Cevapla