Data Seçimi !!

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Data Seçimi !!

Mesaj gönderen ozcank »

Arkadaşlar şöyle birşey yapmak istiyorum yardım ederseniz çok sevinirim;

DATA2004 / DATA2005 dizinlerimin içerisnde program db ve px leri var ve ben hem DATA2004 / DATA2005 de çalışmak istiyorum programın giriş kısmından bu data seçimini yaptırabilirmiyim? Birde BDE de ki path i program içerisinden değiştirmek istiyorum? Yardımcı olursanız sevinirim.
ylmz
Üye
Mesajlar: 110
Kayıt: 18 Mar 2005 02:32
Konum: Antalya

Mesaj gönderen ylmz »

merhaba,

eğer soruyu doğru anladıysam, birden fazla veritabanının olmasını istiyorsun ve programa ilk girişte kullanıcıya hangi veritabanı ile çalışmasını sorup ona göre veritabanına bağlanmak isttiyorsun.eğer doğru anladıysam aklıma gelen ilk çözüm,

ilk önce genel bir veritabanı yaratıp kullanıcının yeni veritabanı yaratmalarını sağlayabilirsin.ve genel veritabanına bu yeni veritabanının ismi, şirket ismi yada faaliyet yılı gibi gerekli bilgileri yazarsın.program ilk açılışta genel veritabanına bağlanarak kullanıcıya hangi veritabanında çalışmak istediğini sorarak, ikinci connect ile kullanıcının istediği veritabanına bağlanabilirsin.kolay gelsin.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Paradoks kullandığım zamanlarda aşağıdaki yapıyı kullanıyordum. Veritabanı dosyaların (paradoks için tablo dosyaları diyelim) .EXE nin olduğu dizin olarak kullanıyordum. Sen de en alttaki procedure de olduğu gibi aynı (yada her ne ise) dizin altındaki klasörleri tarayıp/buldurup istediğin klasörü COmboBox dan seçebilirsin.

Kod: Tümünü seç

procedure TDM.DMCreate(Sender: TObject);
var
  AppDir: string;
begin
  AppDir := ExtractFilePath(Application.ExeName);

  if Database1.Connected then
    Database1.Connected := False;
  if Session1.Active then
    Session1.Active := False;
  Session1.NetFileDir := AppDir;
  Session1.Active := True;

  Database1.Params.Clear;
  Database1.Params.Add('PATH=' + AppDir);
  try
    Database1.Connected := True;
  except
    Application.MessageBox('Veritabanı açılamadı.!.', 'Uyarı', mb_IconStop + mb_Ok);
    Application.Terminate; //Halt;
  end;

  Table1.Open;
// diğer işlemler
//  ....
end;

Kod: Tümünü seç

procedure Tfrm_AdresKayit.AltDizinleriGetir;
var
  Dosyalar: TSearchRec;
  Result, oldInd: integer;
begin
  Result := FindFirst('*.*', faDirectory, Dosyalar);
  oldInd := CB_RaporDos.ItemIndex;
  CB_RaporDos.Clear;
  while Result = 0 do
  begin
    CB_RaporDos.Items.Add(Dosyalar.Name);
    Result := FindNext(Dosyalar);
  end;
  FindClose(Dosyalar);
  if oldInd > -1 then
    CB_RaporDos.ItemIndex := oldInd;  // bir önceki oturumda çalışılan yıl.
end;
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
Tdatabase bileşeni kullanın.
tablolarınızı bu bileşene bağlayın.
tdatabase in parms[0] ına kullanıcıya seçtirdiğiniz dizini atayın.
Bu şekilde yapabilirsiniz.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Arkadaşlar peki ben yenibir dizin açtırıp içerisine sadece DB ve PX leri kopyalatabilirmiyim tabi verileri sıfırlayarak, yeni şirket olacağı için boş atmam gerekiyor.Kod olarak yardım ederseniz sevinirim?
Cevapla