{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; { windows dizinini almak için }
T : TSearchRec;
begin
Session.NetFileDir := ExtractFilePath(Application.ExeName) +
'network\';
GetTempPath(255, Buf); { windows'un template dizinini öğren }
Session.PrivateDir := Buf; { private dizin olarak onu belirle }
Session.Open; { session'umuzu ve ayarlarımızı aktif hale getir }
end;