Mega Code Archive

 
Categories / Delphi / Ide Indy
 

Network konfigürasyonunun uygun biçimde ayarlanması

//Network konfigürasyonunun uygun biçimde ayarlanması //...::::::( KORSAN )::::::...\\ //Normalde paradox, dbase gibi veritabanları ilk geliştirildiklerinden //itibaren network üzerinden çalışması için planlanmışlardır. Buna rağmen //eğer burada anlatacaklarımız konusunda bilginiz yoksa, bu veritabanlarını //Delphi ile kullandığınızda programlarınızın network üzerinden çalışmıyor //olması hiç de şaşırtıcı olmaz. Bunun sebebi network üzerinden çalışırken, //hangi kullanıcının o an ne yaptığı, hangi kayıdı değiştirmekte olduğu gibi //konularda network üzerinden çalışan veritabanı uygulamaları arasında //koordinasyonu sağlayan "netfile" dosyasının konfigürasyonunu yapmamış //olmanızdandır. //Delphi veritabanı uygulamanızı çalıştırdığında bir tek veritabanınız //olsa dahi default olarak bir TSession ve TDatabase nesnesi oluşturur. //TSession, veritabanının o an kullandığı Database'lerin kontrolünden //sorumludur. Bu database'ler bir BDE Alias'ı, hard diskinizde bir dizin //olabilir. TDatabase nesnesi işte bu dizin ve aliasların kontrolünden //sorumludur. Ama bizim burada kullanacağımız nesne TSession. Default olarak //oluşturulan TSession nesnesinin adı Session dır. //Başlangıç olarak programınızı network üzerinde bir yere kurduğunuzu //düşünelim. Bütün kullanıcılar herhangi bir makina üzerinden programın //exe'si ni çalıştırabilirler. Fakat eğer siz aksini belirtmezseniz daha //önce bahsettiğimiz network kontrol dosyası normalde C harddiskinin ana //dizininde oluşturulur. Oysa ki network üzerinde veritabanınızı kullanan //bütün programların aynı dosyayı kullanması gerekir. //Bunun için programınızı kurduğunuz F:\PROGRAM dizini altında NETWORK adlı //yeni bir dizin oluşturun ve programınızın ana formunun oncreate olayı //içerisinde aşağıdaki gibi network kontrol dosyasının yerini belirtin. //Diğer dizin ise kullanıcının harddiskinde geçici dosyalarını koymak için //kullanacağı private directory'dir. Bunun kullanıcın kendi harddiski içinde //olması hem performansı arttırır, hem de network üzerinde kullanıcılar //arasında doğabilecek karışıklığı önler. procedure TformMain.FormCreate(Sender: TObject); var Buf : array[0..256] of char; T : TSearchRec; begin Session.NetFileDir := ExtractFilePath(Application.ExeName) + 'network\'; GetTempPath(255, Buf); Session.PrivateDir := Buf; Session.Open; end; //Eğer aynı makina üzerinde programınızın veya aynı veritabanını kullanan //programların aynı anda sorunsuz açılabilmesini istiyorsanız private //dizinini windows'un template dizini altında her program için ayrı ayrı //oluşturacağınız ve program bitiminde sileceğiniz dizinler olarak //belirtmeniz yararlı olabilir.