firebird'i flash diskten çalıştırmak.

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

firebird'i flash diskten çalıştırmak.

Mesaj gönderen y.kulac »

s.a.
firebird veritabanı ile yapılmış bir program flash diskte çalışabilir mi?.
yani veritabanı ve exe dosyası flash diskte olacak. veriler direk flash diske işlenecek. bunu yapamak için tabiki önce bilgisayara firebird kurulacak.
ibdatabase bileşeninne veritanabının yolunu sabit disk olunca gösterebiliyoruz. ama flash diske sabit bir yol veremeyiz. çünkü flash disk her bilgisayarda aynı sürücü adını almıyor. mesela bende flash diskin sürücü adı H, başka bir bilgisayarda ise adı F, G olabiliyor.

veritabanını exenini yanında buluna bir klasörde tutuyorum.

bu işlemi nasıl yapabilirim.

iyi çalışmalar.
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

elbette çalışır. ben çalıştırdım. ancak bu yöntemi hiç tavsiye etmem. flashdisk lerin okuma ve yazma kapasiteleri çok düşüktür. programın açılması + dataya connection ları yapabilmek için flashdisk i bi 3 dkakika beklemeniz gerekebilir...
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

teşekkür ederim.
ama ben yinede bir denemek istiyorum.
ibdatabase'i flash diskteki tabloya nasıl bağlayabilirim?

çünkü direk sürücü adı veremiyorum.

normalde program C dizkinde şu şekilde ve ibdatabase'e
C:\Sitepro\SiteproData\Sitepro.fdb
şeklinde bağlanıyorum. flash diskte te aynı yapı var.

iyi çalışmalar.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Uygulamanız ile veritabanı dosyanız aynı yerdeyse:

Kod: Tümünü seç

ExtractFilePath(Paramstr(0)) + '\' + veritabanı adı 
ile veritabanı yolunu alabilmeniz lazım.
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

bende flash disk için F sürücü harfini verdi

F:\data\data.fdb dediğimde bağlandı. tabi bu türde bir değer vermek yanlış.

Kod: Tümünü seç

extractfilepath(applcation.exename) + 'data\data.fdb';
ile yapmak daha sağlıklı olur.
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

teşekkür ederim.
formun on active olayına şu kodu yazdım.

Kod: Tümünü seç

try
DataModule1.IBDatabase1.DatabaseName:= ExtractFilePath(Paramstr(0)) + '\' + 'SITE.FDB';
DataModule1.IBDatabase1.Connected:=True;    // Database active ediliyor..
DataModule1.IBTransaction1.Active:=True;         //Transaction active ediliyor
except
showmessage('Veritabanına bağlantı sağlanamadı');
end;
açılışta aşağıdaki hatayı veriyor. çünkü datamodule'deki ibdatabase1'in databasename yazan yerini boş bıraktım. aşağıdaki hatayı onun için veriyor.
"database name is missing"

ama tamam deyince program açılıyor ve flash diskteki veritabanına bağlanıyor. ama bağlantı hızı o kadarda düşük değil 2-3 sn içinde bağlanıyor.

iyi çalışmalar dilerim.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

IBDatabase'in AllowStreamedConnected ve Connected propertylerini False yapmanız halinde o hatayı da almazsınız.
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Mesaj gönderen kahraman1285 »

Kod: Tümünü seç

procedure TForm1.Button3Click(Sender: TObject); 

var 
  Drive: Char; 
  DriveLetter: String[4]; 
  Flash_Bellek:string; 
begin 

  for Drive := 'A' to 'Z' do 
  begin 
   DriveLetter := Drive + ':\'; 
   case GetDriveType(PChar(Drive + ':\')) of 
    DRIVE_REMOVABLE: 
    begin 
     if drive='A' then 
     Memo1.Lines.Add(DriveLetter + ' Floppy Drive') 
     else begin 
     Memo1.Lines.Add(DriveLetter + ' Flash Bellek'); 
     Flash_Bellek:=drive; 
     {if drive='B' then 
     Memo1.Lines.Add(DriveLetter + ' Floppy Drive') else Memo1.Lines.Add(DriveLetter + ' Flash Bellek');} 
     end; 
    end; 
    DRIVE_FIXED: 
     Memo1.Lines.Add(DriveLetter + ' Fixed Drive Harddisk') ; 
    DRIVE_REMOTE: 
     Memo1.Lines.Add(DriveLetter + ' Network Drive') ; 
    DRIVE_CDROM: 
     Memo1.Lines.Add(DriveLetter + ' CD-ROM Drive') ; 
    DRIVE_RAMDISK: 
     Memo1.Lines.Add(DriveLetter + ' Ram Disk bu nedir Bilmiyom') ; 
    end; 
  end; 
end; 
bu kodla flash belleği adı flash bellek takılır takılmaz bulunabiliyor işine yararsa kullanabilirsin.
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

teşekkür ederim.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Kod: Tümünü seç

ExtractFilePath(Paramstr(0)) + '\' + veritabanı adı 

Kod: Tümünü seç

extractfilepath(applcation.exename) + 'data\data.fdb';
Bu fonksiyonlarla sürücü isimleri de gelir :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

fduman yazdı:IBDatabase'in AllowStreamedConnected ve Connected propertylerini False yapmanız halinde o hatayı da almazsınız.
söylemiş olduğunuz gibi AllowStreamedConnected ve Connected propertylerini False yaptım lakin aynı mesajı vermeye devam ediyor.

düzeltme :
sorun çözüldü. hatanın nedeni formun onshow olayında bir tabloyu açmaya çalışmam imiş.

iyi çalışmalar.
mrtblt
Üye
Mesajlar: 222
Kayıt: 02 Tem 2007 05:13

Mesaj gönderen mrtblt »

Benim konuyla alakali fakat daha baska bir sorum olacak.
Firebird kurulmamis bir makinadan flash disk ile fdb veritabani kullanan bir uygulama calistirabilirmiyiz. Yani mesela bir executable dosya varmidir firebird sunucusunu karsi bilgisayarda kurulmamis olsa bile calistirabilecek. Eger bu mumkunse flash diskte ayrica hangi dosyalar bulunmalidir.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
fb nin embed sürümünü kullanabilirsiniz.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla