Program içerisinden BDE Config değiştirime

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Program içerisinden BDE Config değiştirime

Mesaj gönderen vkamadan »

Merhaba;
Benim yapmak istediğim açıkça şu;
BDE deki, Configuration Sekmesindeki, Drivers/Native/Paradox 'un
NET DIR yada herhangi başka bir özelliğini nasıl programdan değiştirebilirim.
Teşekkürler.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

Kod: Tümünü seç

     Session.GetAliasParams('senin aliasın adı',List);

     {Create Directory for Pdoxusrs.net file:}
     S := sAliasPath + 'NET';
     if not DirectoryExists(s) then
        MkDir(S);
     Session.NetFileDir := S;
bu 16 bit bde için. şimdikinde değişmiş olabilir. fikir için verdim.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Bunu daha önce de yazmıştım sanırım.

Kod: Tümünü seç

procedure TDM.DMCreate(Sender: TObject);
var
  Buf : array[0..256] of char;
begin
  Screen.Cursor := crHourglass;
  AppDir := ExtractFilePath(Application.ExeName);
  Database1.Connected := False;
  Database1.Params.Clear;
  Database1.Params.Add('PATH=' + AppDir);

  if Session.Active then
    Session.Close;
  Session.NetFileDir := AppDir;
  GetTempPath(255, Buf);
  Session.PrivateDir := Buf;
  Database1.Connected := True;
.....
Bu kod yardımcı olur sanırım...
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba ilginize teşekkürler
ama zannedersem yanlış anlaşılma söz konusu,
Benim yapmak istediğim aşağıdaki şekilde görünün Parametreyi değiştirme Alias tanımlama yada değiştirme deil,

Resim

NET DIR Parametressini değiştirmek istiyorum

Teşekküler.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

http://www.techtricks.com/paradox/ibdialect.php


bu interbase ayarları için. paradoxuda oradan değiştirebilirsiniz.
My Computer\HKEY_LOCAL_MACHINE\
SOFTWARE\Borland\Database Engine\
Settings\DRIVERS\INTRBASE\DB OPEN
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Hayır maalesef Registry de istediim değer tutulmuyor bu veriler IDAPI.CFG de BDE içinde tutuluyor.
Saolun.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Programdan alias create etme ile ilgili bir procedure kullanmıştım ben. Bundan yardım alarak yapabilirsiniz sanırım.

Kod: Tümünü seç

procedure createalias(alias, dbname, server, driver: string); 
var 
  List: TStringList; 
begin 
  List := TStringList.Create; 
  with List do 
  begin 
    Clear; 
    Add('DATABASE NAME='+dbname); 
    Add('SERVER NAME='+server); 
    Add('USER NAME=MYNAME'); 
    Add('OPEN MODE=READ/WRITE'); 
    Add('SCHEMA CACHE SIZE=8'); 
    Add('BLOB EDIT LOGGING='); 
    Add('LANGDRIVER='); 
    Add('SQLQRYMODE='); 
    Add('SQLPASSTHRU MODE=SHARED AUTOCOMMIT'); 
    Add('DATE MODE=0'); 
    Add('SCHEMA CACHE TIME=-1'); 
    Add('MAX QUERY TIME=300'); 
    Add('MAX ROWS=-1'); 
    Add('BATCH COUNT=200'); 
    Add('ENABLE SCHEMA CACHE=FALSE'); 
    Add('SCHEMA CACHE DIR='); 
    Add('HOST NAME='); 
    Add('APPLICATION NAME='); 
    Add('NATIONAL LANG NAME='); 
    Add('ENABLE BCD=FALSE'); 
    Add('TDS PACKET SIZE=4096'); 
    Add('BLOBS TO CACHE=64'); 
    Add('BLOB SIZE=32'); 
    Add('PASSWORD='); 
  end; 
  if session.isalias(alias) then 
    Session.ModifyAlias(alias, List) 
  else 
  Session.addAlias(alias, driver, List); 
  Session.SaveConfigFile; 
  List.Free; 
end; 
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Ben soruyu doğru anlamışım da siz sanırım kodu çözemediniz :?:

Sizin istediğinic C:\ yerine, ExtractFilePath(Application.ExeName) yani exe nin bulunduğu yolu atamışım.. Tabi bu programı her çalıştırdığın olacak bir olay. Kalıcı olarak kaydedilmesini istiyorsan ben de daha önce kod içinden alias oluşturmakta kullandığım @naile nin yazdığı yöntemden yararlanmalısın.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba,
Gerçekten açıklayıcı yazmaya çalıştım ama anlatmada başarılı olamadım,
yukarıdanda gördüğünüz gibi benim alias larla işim yok.
Sisteme Yüklü olan Paradox sürücüsünün özelliklerini değiştirmek. Bu özellik
Borland Shared\BDE deki IDAPI.CFG de tutuluyor, peki bu dosyanın içeriğini nasıl değiştirebilirim yani normal TEXT editör açıyor ve anlamlı gösteriyor fakat TStringList lere LoadFromFile metoduyla içeriği çekemiyorum.
yani butür dosyalrda nasıl işlem yaparım ondan bahsedersenizde ben çözerim olayı.
Teşekkürler.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Evet, ya sen anlatamıyorsun ya biz anlamıyoruz fakat birden fazla kişi yanlış anlamış olamaz! Cevaplardan sorunun cevabını çıkarabilmen lazım.
Ya da ne yapmak, nerde kullanmak istediğini biraz daha detaylı anlatırsan çözüme daha kolay ulaşırsın. :idea:

Ayrıca en son açıklaman ilk başta sorduğun soru pek fazla uyuştuğu söylenemez. Hem IDAPI.CFG dosyası mevzu bahsı geçen ayarları tutarken ayrıca bunların registery tarafı da var..
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Sayın rşimşek ilginizden dolayı teşekkür ederim,
Tane tane açıklayayım,
Asıl yapmak istediğim olay şu
Mevcut Paradox un NET FILE özelliğini değiştireceğim c:\ yi z:\ yapacağım örneğin,
ve
SYSTEM / INIT altındaki LOCAL SHARE yi False TRUE yapacağım bulara BDE Consolundan Configuration sekmesi altından erişilebiliyor. Registery de yer almıyor bahsettiğim ayarlar.
IDAPI32.CFG ve IDAPI.CFG içindeler.
Benim bunları delphi içinden değiştirmem gerekiyor.
Aliaslarla iligili değil yapmak istediğim.
Yardımlarınızdan dolayı ve ilginizden dolayı teşekkürler.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

vkamadan yazdı:Mevcut Paradox un NET FILE özelliğini değiştireceğim c:\ yi z:\ yapacağım örneğin,
farkettiysen ilk cevapta bu kısmın çözümü vardı..
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Çok özür dilerim dikkat etmemişim. :(
Peki LOCAL SHARE yi nasıl True yada False yapabiliriz.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Local Share Açık mı/ Kapalı mı?

Kod: Tümünü seç

Uses  DBTables;

// Function returns TRUE or FALSE depending on the.
// current state of the BDE "LOCAL SHARE" setting.

  function BDELocalShareSetting : Boolean;
  var
    LocalShare : String;
    SessionParams : TStringList;
	
  begin
    SessionParams := TStringList.Create;
    SessionParams.Clear;

    DBTables.Session.GetConfigParams('\SYSTEM\INIT', EmptyStr, SessionParams);
    LocalShare := UpperCase(Trim(SessionParams.Values['LOCAL SHARE']));

    SessionParams.Free;

    Result := (LocalShare = 'TRUE');
  end;  
Local Share'i TRUE yapan kod

Kod: Tümünü seç

Uses  Registry;

// Function sets the "LOCAL SHARE" registry setting
// to TRUE in the BDE (32-bit BDE only).
procedure UpdateLocalShare;
var
  Reg : TRegistry;
const
  BDE_LOCAL_SHARE_KEY = '\Software\Borland\Database Engine\Settings\SYSTEM\INIT';
begin
  Reg := TRegistry.Create;
  With Reg Do
    begin
      Access := KEY_READ or KEY_WRITE;
      RootKey := HKEY_LOCAL_MACHINE;

      { Write the BDE keys }
      OpenKey(BDE_LOCAL_SHARE_KEY, True);
      WriteString('LOCAL SHARE', 'TRUE');
    end;
  Reg.Free;
end; 
kolay gelsin.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Çok Teşekkür ederim.
Çalışmalrınızda Başarılar.
Volkan KAMADAN
www.polisoft.com.tr
Cevapla