setup yaptm c'ye kurdm ama program d' deki db leri kullanıo

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
AliErdem
Üye
Mesajlar: 157
Kayıt: 16 Nis 2006 02:57

setup yaptm c'ye kurdm ama program d' deki db leri kullanıo

Mesaj gönderen AliErdem »

setup ile c:\program files\Kutuphane diye dizin belirledim ve kurdum ama programın içerisinde txt adresleri (d:\proje\kutup\db\...) falan var başka bir bilgisayara kurduğumda da çalışmayacak çünkü exe dosyası programı hazırladığım dizin içinde (d:\..) değişiklik yapıo ordaki bilgileri kullanıyor bunun için programı kuracağım dizine göremi ayarlamam gerekecek yoksa installshield le halledebilirmiyim

teşekkürler şimdiden
poshet303
Üye
Mesajlar: 235
Kayıt: 26 Eki 2005 01:15

Mesaj gönderen poshet303 »

dosya yollarını dinamik yönetmek zorundasın programı kuran adamın D sürücüsü olmayadabilir. En güzeli programın kurulduğu klasörü temel alan bir klasör ve dosya yapısı tasarlayıp program içinden dinamik olarak yönetmek.

Tabi şimdi sorulacak nasıl yapacaz diye. Aramak lazım, araştırmak lazım çok konuşulmuş konulardandır.
Kullanıcı avatarı
AliErdem
Üye
Mesajlar: 157
Kayıt: 16 Nis 2006 02:57

Mesaj gönderen AliErdem »

tamam ben programı c ye göre de yazarım hadi adamın c sürücü dolu d ye yüklemek isterse ne yapacaz c:\kutu.... adresini d:\kutu... yaparsa gene yaptıklarım boşa gider yani demek istediğim yüklendiği her dizinde çalışmasını nasıl sağlayabilirim
cemarik
Üye
Mesajlar: 45
Kayıt: 30 Ağu 2003 11:05
Konum: İzmir

Mesaj gönderen cemarik »

@poshet303 'in söylediği gibi dinamik olarak ulkaşmak zorundasın kullanıcı dosyalarını nerde tutacaksa ordan okusun bitsin işte. istersen biraz araştır ![/quote]
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

Bence bu dinamik path olayını araştırmalısın.Ama sana şöyle bir kısa tavsiye verebilirim.

Diyelimki karşı pcde kullanıcı
programı nereye kurmak isterse oraya kursun.İster D ye ister C ye istese de K ya krsun.Hatta isterse windowsun içine istersede system32 ye kursun.Bütün dosya yollarını, veritabanı yollarını exene göre ayarlarsan kurulum nereye yapılırsa yapılsın yol sorunun olmaz.

Mesela databasein exenin yanında bulunan data adlı klasörün içinde MyData.mdb isimli bir database olsun.
Şimdi bu database yolunu yazarken gerçek pathiyle yazarsan

Kod: Tümünü seç

 ‘C:\Projelerim\Proje1\data\MyData.mdb ‘
şeklinde yazarsın.

Ama bunu dinamik olarak yazarsan şöyle yazarsın.(ki doğrusuda budur.)

Kod: Tümünü seç

 ExtractFilePath(application.ExeName)+’data\MyData.mdb’ 
şeklinde yazarsın.

Yani bu durumda nereye kurulum yapılırsa yapılsın exe database dosyasını kendi yanında bulunan data klasörü içinde arayacaktır.


Ayrıca diğer txt veya dat uzantılı metin dosyalarına da aynı yöntemle path verebilirsin.
Mesela programla ilgili bazı ayarları tuttuğun dosyalar olsun.Bunlar txt uzantılı olsun.
Exenin yanında Ayarlar klasörü içinde sakladığını varsayalım.Ve bu txt uzantılı dosyalardan biride Goruntu.txt olsun.(Görüntü ayarlarını tuttuğun).

Dinamik path:

Kod: Tümünü seç

 ExtractFilePath(application.ExeName)+’Ayarlar\Goruntu.txt’ 
şeklinde olacaktır.

Bundan sonra senin kurulum yaparken yani setup projesini ayarlarken proje1 klasörü içinde ne varsa birbirleri arasındaki path ilişkisini bozmadan aynı ağaç yapısı içinde karşı bilgisayara kurulmasını sağlamaktır.Ama c yada d ye kurulması yada başka bir yere kurulması önemli değildir.

Setup yapılması ile ilgili aşağıdaki linkten faydalanabilirsiniz.

viewtopic.php?t=12392&start=30

Kolay Gelsin.
Kullanıcı avatarı
AliErdem
Üye
Mesajlar: 157
Kayıt: 16 Nis 2006 02:57

Mesaj gönderen AliErdem »

teşekkürler newmamber bayagı faydalı oldu anlattıkların mega upload a attığın dosyayı çekemedim çünkü mahkeme kararı ile siteye erişim engellenmiş :D herhalde path leri dinamik yaptıktan sonra installshield işimi görür (inşallah) :) saol tekrar
Kullanıcı avatarı
AliErdem
Üye
Mesajlar: 157
Kayıt: 16 Nis 2006 02:57

Mesaj gönderen AliErdem »

bişey daha o zaman alias kullanmıyacakmıyım ?
poshet303
Üye
Mesajlar: 235
Kayıt: 26 Eki 2005 01:15

Mesaj gönderen poshet303 »

Programlamaya ilk bşladığım yıllar (o zamanlar gençtik tabi :) ) gerek kitaplarda yazan gerekse de hocalarımızın söylediği Alias kullanımının kolaylıklar sağladığı kullanılmasının çok yerinde olacağı şeklindeydi. Bende kullanıyordum ve bir sürü sorun yaşıyordum. Sonra DOS pascal da kullandığım ParamStr, ParamCount fonksiyonları ile bu işi dinamik niye yapmıyorum dedim. Neden yapmadığımı bilmiyorum yanlış bilgilendirilmiş olabiliriz. (Delphi de Application.exename de benzer bir işlevi yerine getiriyor)

Ben alias kullanmıyorum. Programımın olduğu klasörü kopyaladığım zaman herde çalışıyor. Ve hatta masaüstü uygulamalarda embeded firebird ile en küçük bir ayar gerektirmeden kopyalama vasıtası ile programı kurmuş oluyorum. Sonderece portable.

Belki kullanmayı tercih edenlerde vardır. Herkezin bir tekniği var.


sayın @AliErdem viewtopic.php?t=15035&highlight=paramstr burada benzer bir soru sormuşsunuz. Konu aslında gayet güzel örnek kodla açıklanmış. Verilen cevapları biraz daha iyi incelemeli.
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Bir tavsiye de benden.
Tüm dosyalarını programın çalıştığı klasörün içinde bir klasör oluşturarup içine koy. Örneğin VeriTabanı klasörü.
Bu dosyalara erişmek için Veritabani\Bilgiler.txt gibi adresler kullan.
Alias da kullanabilirsin.
Fakat InstallShield'de setup'ı hazırlarken, alias'ın yoluna VeriTabani yaz.
Son olarak da Kısayolları oluştururken WorkingDirectory'i INSTALLDIR seç.
Ben böyle yapıyorum, şimdiye kadar -Türkçe karakter hariç- sorun çıkmadı.
Alias kullanmayıp DataBaseName'e VeriTabani\ yazsan da olur.
Fakat WorkingDirectory'i unutmamak şartıyla.

Kolay gelsin.
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

Bence alias kullanmana gerek yok.
Ayrıca

http://www.hemenpaylas.com/download/585 ... i.rar.html

bu link çalışıyor.Setup ile ilgili sorularına cevap olabilecek nitelikte.

Kolay gelsin.
Kullanıcı avatarı
AliErdem
Üye
Mesajlar: 157
Kayıt: 16 Nis 2006 02:57

Mesaj gönderen AliErdem »

workingdirectory nerde mustafa yav installshield in içinde yok bde kurulumda da yok yanlış yerde mi arıyorum ki ?
PeeRLeeSS
Üye
Mesajlar: 16
Kayıt: 12 Nis 2006 08:35

Mesaj gönderen PeeRLeeSS »

ben Database Desktop ile olusturduktan sonra programın klasörünü içine DATA diye klasör oluşturuyorum BDE administrator u hiç kullanmıyorum zaten gerekte yok :D DATA nın içine kaydediyorum yaptığım Database leri sonra veri tabanını tanıtırken data base name'ini /DATA yapıyorum activ ediyorum oradan görüyor :D ama önce datasource'lerini tanıtmak gerek ... sonra /DATA icine alın...
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

AliErdem yazdı:workingdirectory nerde mustafa yav installshield in içinde yok bde kurulumda da yok yanlış yerde mi arıyorum ki ?
Ali abi özür diliyorum cevap gecikti biraz;
Kısayolları oluştururken, program yolunu, simgesini filan seçtiğimiz yerde.
Cevapla