+ Cevap Yaz
Toplam 2 sayfadan 1. sayfa
1 2 En SonEn Son
12 sonuçtan 1 ile 10 arası gösteriliyor

Konu: Yeni baslayanlar icin Delphi ve DB

  1. #1
    Cevizci Beholder Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    10/2002
    Yer
    Balıkesir
    Mesaj
    76

    Yeni baslayanlar icin Delphi ve DB

    Merhabalar,

    Acil olarak en azindan Delphi ile kücük DB uygulamarinin nasil yapildigina dair bbilgi toplamam gerekiyor. Forumlar genelde bir fikiri olupta bir yerlerde takilanlar icin uygun, e-book'larda genelde ileri seviye oluyor. Örnegin about.com'da ki tutorial ve örnekler cok hos ama ona benzer baska kaynaklar bulamadim. Örnegin ADOQuery yada ADOConnection nasil kullanilir. Cok cok basit seviyede bir DB'ye nasil veri girilir. ADO ve BDO arasindaki farklar, mysql kullanmak istersek neler yapicaz vb gibi cok temel DB bilgisine ihtiyacim var.

    Bana kaynak tavsiyesi verebilecek yada yol gösterecek olan var mi?

    Not: Almanya'da oldugum icin basili kaynak alamiyorum. E-book yada about.com gibi birseyler cok makbule gececek.

    Simdiden tesekkürler
    MCSE
    MCSA

  2. #2
    Ryu karflake Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    02/2003
    Mesaj
    557

    Ado ve Bde, Delphi'de veritabanlarına ulaşmak için geliştirilmiş iki teknolojidir. Bde artık geliştirilmemektedir. Ayrıca programlarda Bde kullanıldığında programla birlikte dağıtılması gerekir. Bu da kurulum dosyalarının boyutlarının 10 mb'den daha az olmamasına neden olmaktadır.

    Ado ile yapılan programlar ise win98se ve üzeri işletim sistemlerinde çalışabilmektedir. Delphi'den aşağıdaki kayıt desenindeki bir Access veritabanına Ado teknolojisi ile ulaşmak için şu işlemler yapılmalıdır:

    1. Önce form üzerine bir tane AdoConnection bileşeni konulur. Bu bileşen veritabanına fiziksel olarak ulaşmak için gereken ayarları içerir. Bu bileşenin kod yardımıyla ayarlamak için aşağıdaki kodlar ana formun create olayına yazılır(ki bunun faydası, programı klasör bağımlılığından kurtarmaktır):
    Kod:
      //Aşağıdaki komut veritabanının fiziksel yolunu belirtiyor
      adoconnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'+
        'Data Source='+GecerliKlasoruAl+'data.mdb;'+'Mode=Share Deny None;'+
        'Persist Security Info=False';
    
    2. Veritabanına fiziksel olarak ulaşıldıktan sonra tablolara ulaşılması gerekir. Bunun için AdoDataset nesnesi kullanılır. Bu nesnenin CommandText özelliğine gereken SQL cümlesi yazılır:
    Kod:
      //Öncelikle adodateset’lerin connection özellikler ayarlanıyor  
      adodataset2.Connection:=ADOConnection1;
      adodataeset2.commandtext:='select * from kategori order by kategori_adi';
      //Daha sonra adodataset aktif hale getirilir
      adodataset2.Active:=true;
    
    Not: GecerliKlasoruAl, aplication.exename ifadesinden uygulamanın bulunduğu klasörü bulan basit bir fonksiyondur
    Eklenmiş Grafikler

  3. #3
    <? outclude('stres'); ?> izmir_LEE Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    11/2005
    Yer
    =Rumuz-(_LEE)
    Mesaj
    152

    Bu konu üzerinden epey zaman geçmiş ama ben bu konu ile ilgili şunu sormak istiyorum.Bir web sitesinin sql veritabanına delphi ile yazılan programla bağlanmak için ne yapılmalı üstadlar?
    kaşe

  4. #4
    Ryu karflake Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    02/2003
    Mesaj
    557

    Bir zamanlar sitemin ziyaretçi defterini kontrol edebilmek için bir program yazmıştım. Ziyaretçi defterimde id, ad, mail, yazi, tarih, ip alanları vardı. Siteye http://www.siteadi.com/kontrol.asp?kod=123456 gibi bir url ile girildiğinde, veritabanındaki alanları aşağıdaki şekilde, alan adları arasına "|" koyarak web sayfasına yazdırıyordum.
    Kod:
    |5|Ali Can|alican@posta.Com|Siteyi çok beğendim|7/27/2004 4:38:34 PM|192.168.1.254|
    
    Daha sonra bu sayfayı aşağıdaki fonksiyon yardımıyla download ettiyordum.
    Kod:
    //uses'a WinInet ekle
    function TForm1.DosyaIndir(const fileURL, FileName: String): boolean;
    const
      BufferSize = 1024;
    var
      hSession,
      hURL : HInternet;
      Buffer : array[1..BufferSize] of Byte;
      BufferLen : DWORD;
      f : File;
      sAppName : string;
    begin
      Result := False;
      sAppName := ExtractFileName(Application.ExeName);
      hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
      try
        hURL := InternetOpenURL(hSession,
        PChar(fileURL),nil,0,0,0);
        try
          AssignFile(f, FileName);
          Rewrite(f,1);
          repeat
            InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
            BlockWrite(f, Buffer, BufferLen)
          until BufferLen = 0;
          CloseFile(f);
          Result:=True;
        finally
          InternetCloseHandle(hURL)
        end
      finally
        InternetCloseHandle(hSession)
      end
    end;
    
    Download edilen bu sayfayı aşağıdaki kodla "|" işaretine göre alanlara ayırıp istediğim işlemleri yapabiliyordum.
    Kod:
    function TForm1.Parcala(DosyaAdi, Ayrac: String): boolean;
    var
      i:integer;
      kalan,tut:String;
    begin
      result:=false;
      try
        mmoyazi.lines.LoadFromFile(DosyaAdi);
        kalan:=mmoyazi.text; mmoyazi.Clear;
        Delete(kalan,1,Pos('|', kalan));
        While Pos('|', kalan) > 0 do
        begin
          inc(i);
          tut:=(copy(kalan,1,Pos('|', kalan)-1));
          Delete(kalan,1,Pos('|', kalan));
          case i of
            1: YeniSonKayit:=strtoint(tut);
            2: Edtad.Text:=tut;
            3: EdtMail.Text:=tut;
            4: Mmoyazi.Text:=tut;
            5: EdtTarih.Text:=tut;
            6: EdtIP.Text:=tut;
          end;
        end;
        result:=true;
      Except
        ShowMessage('Dosya işlenirken bir hata oluştu!');
      end;
    end;
    
    Bu tip basit bir şey yapacaksınız bu yöntemi kullanabilirsiniz.
    Bu suya yazılan bir yazıdır...

  5. #5
    Ryu karflake Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    02/2003
    Mesaj
    557

    GecerliKlasoruAl fonksiyonu aşağıda yer almaktadır:
    Kod:
    function GecerliKlasoruAl: string;
    begin
      Result := ExtractFilePath(Application.ExeName);
      if Result[Length(Result)] <> '\' then
       Result := Result + '\';
    end;
    
    Bu suya yazılan bir yazıdır...

  6. #6
    Üye
    Üyelik Tarihi
    03/2007
    Mesaj
    5

    karflake arkadaşım tam aradığım yöntem bu. Bu biraz açıp vede bir örnek kodlama yapıp gönderir misin?

  7. #7
    Üye
    Üyelik Tarihi
    03/2007
    Mesaj
    5

    http://forum.ceviz.net/formatli-yazi...517#post278517

    şu başlığa bir bakarsan çok iyi olur

  8. #8
    Ryu karflake Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    02/2003
    Mesaj
    557

    Burada Delphi ile Access veritabanı kullanmayı anlatan bir örnek mevcut.

    Yukarıdaki bu (Yeni baslayanlar icin Delphi ve DB) mesajımda da, | işareti ile ayrılmış metinlerin nasıl ayrıştırılacağı var. Tek yapman gereken kendi programına uyarlamak.
    Bu suya yazılan bir yazıdır...

  9. #9
    Üye
    Üyelik Tarihi
    03/2007
    Mesaj
    1

    Yardım

    Arkadaşlar ben c++ biliyorum gördüğüm kadarıyla delphi ile yakınlar ama ben bi türlü database imin bi sütünunda bulunan değerleri bir combo box a atayamadım nasıl yapabilirim anlatırsanız sevinirim. bu arada bde ile çalışıyorum tablom ise paradox7.

  10. #10
    Uye epic Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    03/2004
    Mesaj
    676

    Delphi'de split adinda bir metodun olmamasi buyuk eksiklik:

    Kod:
    procedure Split(Input: String; const Delimiter: Char; const Strings: TStrings) ;
    begin
       Assert(Assigned(Strings)) ;
    
       Strings.Clear;
       Strings.Delimiter := Delimiter;
       Strings.DelimitedText := Input;
    end;
    
    procedure UseSplit;
    var
      s: TStringList;
    begin
      s := TStringList.Create;
    
      try
        Split(BolunecekMetin, '|', s);
      
        // burada bir seyler yapiliyor...
      finally
        s.Free;
      end;
    end;
    

+ Cevap Yaz

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Benzer Konular

  1. Cevap: 74
    En Son Mesaj: 26/11/2009, 16:15
  2. Delphi 7 için Report Componenti ?
    By enoksaparin in forum Pascal / Delphi / Delphi.NET
    Cevap: 2
    En Son Mesaj: 21/02/2007, 13:51
  3. Yenİ Baslayanlar Buraya!!!
    By ummaz in forum Genel Programlama
    Cevap: 0
    En Son Mesaj: 20/11/2004, 13:09
  4. Cevap: 11
    En Son Mesaj: 12/10/2004, 19:07

Bookmarks

Mesaj Yazma Hakları

  • Yeni mesajgöndermezsiniz
  • Cevap yazamazsınız
  • Dosya ekleyemezsiniz
  • Mesajınızı düzenleyemezsiniz