Program içerisinden BDE Config değiştirime
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Program içerisinden BDE Config değiştirime
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.
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
www.polisoft.com.tr
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;
Bunu daha önce de yazmıştım sanırım.
Bu kod yardımcı olur 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;
.....
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
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,

NET DIR Parametressini değiştirmek istiyorum
Teşekküler.
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,

NET DIR Parametressini değiştirmek istiyorum
Teşekküler.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
http://www.techtricks.com/paradox/ibdialect.php
bu interbase ayarları için. paradoxuda oradan değiştirebilirsiniz.
bu interbase ayarları için. paradoxuda oradan değiştirebilirsiniz.
My Computer\HKEY_LOCAL_MACHINE\
SOFTWARE\Borland\Database Engine\
Settings\DRIVERS\INTRBASE\DB OPEN
Hayır maalesef Registry de istediim değer tutulmuyor bu veriler IDAPI.CFG de BDE içinde tutuluyor.
Saolun.
Saolun.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
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;
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.

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!!
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.
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
www.polisoft.com.tr
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.
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..
Ya da ne yapmak, nerde kullanmak istediğini biraz daha detaylı anlatırsan çözüme daha kolay ulaşırsın.

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!!
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.
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
www.polisoft.com.tr
Çok özür dilerim dikkat etmemişim.
Peki LOCAL SHARE yi nasıl True yada False yapabiliriz.

Peki LOCAL SHARE yi nasıl True yada False yapabiliriz.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Local Share Açık mı/ Kapalı mı?
Local Share'i TRUE yapan kod
kolay gelsin.
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;
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;