Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Pascal / Delphi / Delphi.NET

Cevapla
 
LinkBack Seçenekler
Eski 14/07/2005, 14:59   #1 (permalink)
Cevizci
 
Beholder Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 10/2002
Yer: Balıkesir
Mesaj: 76
Varsayılan 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
Beholder hatta değil   Alıntı Yaparak Yanıtla
Eski 14/07/2005, 16:00   #2 (permalink)
Ryu
 
karflake Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 02/2003
Mesaj: 474
Varsayılan

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
File Type: jpg ado.JPG (14.6 KB, 77 views)
karflake hatta değil   Alıntı Yaparak Yanıtla
Eski 30/11/2006, 18:38   #3 (permalink)
Delphi Student
 
izmir_LEE Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2005
Yer: den Yüksek
Mesaj: 51
Varsayılan

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?
__________________
Bu vatanın ekmeğini yiyip, vatana ihanet edenler
Birgün ekmek yedikleri yerden kurşunu yerler!
izmir_LEE hatta değil   Alıntı Yaparak Yanıtla
Eski 30/11/2006, 19:48   #4 (permalink)
Ryu
 
karflake Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 02/2003
Mesaj: 474
Varsayılan

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...
karflake hatta değil   Alıntı Yaparak Yanıtla
Eski 12/01/2007, 21:57   #5 (permalink)
Ryu
 
karflake Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 02/2003
Mesaj: 474
Varsayılan

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...
karflake hatta değil   Alıntı Yaparak Yanıtla
Eski 12/03/2007, 03:17   #6 (permalink)
Üye
 
Üyelik Tarihi: 03/2007
Mesaj: 5
Varsayılan

karflake arkadaşım tam aradığım yöntem bu. Bu biraz açıp vede bir örnek kodlama yapıp gönderir misin?
efecanerdur hatta değil   Alıntı Yaparak Yanıtla
Eski 12/03/2007, 03:25   #7 (permalink)
Üye
 
Üyelik Tarihi: 03/2007
Mesaj: 5
Varsayılan

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

şu başlığa bir bakarsan çok iyi olur
efecanerdur hatta değil   Alıntı Yaparak Yanıtla
Eski 12/03/2007, 08:05   #8 (permalink)
Ryu
 
karflake Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 02/2003
Mesaj: 474
Varsayılan

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...
karflake hatta değil   Alıntı Yaparak Yanıtla
Eski 30/03/2007, 02:03   #9 (permalink)
Üye
 
Üyelik Tarihi: 03/2007
Mesaj: 1
Varsayılan 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.
CSNV hatta değil   Alıntı Yaparak Yanıtla
Eski 04/04/2007, 11:10   #10 (permalink)
Uye
 
epic Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 03/2004
Mesaj: 677
Varsayılan

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;
epic hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

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

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
Yeni baslayanlar ıcın PHP lınklerı HunTER PHP 50 11/10/2008 19:09
Delphi 7 için Report Componenti ? enoksaparin Pascal / Delphi / Delphi.NET 2 21/02/2007 13:51
Yenİ Baslayanlar Buraya!!! ummaz Genel Programlama 0 20/11/2004 13:09
Yeni sezonda ceviz.net icin yapilabilecekler, yeni projeler v.s. acemi Olumlu Sohbet 11 12/10/2004 20:07


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 14:40.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net