Basit SQL İşlemleri, Kayıt ve Listeleme Örnekleri

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

Basit SQL İşlemleri, Kayıt ve Listeleme Örnekleri

Mesaj gönderen akdatilla »

Merhaba Arkadaşlar
Bir arkadaşım sql ile kaydetme ve listeleme ile ilgili bir örnek form rica etti.
Forumda aramış, ancak bulamamış. Bende arayıp bulamayanlar için basit bir form hazırladım.

Program mdb veritabanı kullanıyor, dosya adı :dbornek.mdb.
rehber adında bir tablo üzerinde işlem yapıyor.
Alanları
Alan Adı Açıklaması Alan Tipi
adi Kişi Adı ve Soyadı Text/Varchar
tel Telefon numarası Text/varchar
dtarih Doğum Tarihi datetime

program dosyaları:
SQLIslemleri.dpr

Kod: Tümünü seç

program SQLIslemleri;

uses
  Forms,
  SQLIslemU in 'SQLIslemU.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
SQLIslemU.pas

Kod: Tümünü seç

unit SQLIslemU;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    KytAdi: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    KytTel: TEdit;
    Label3: TLabel;
    KytDTarih: TDateTimePicker;
    KayitBtn: TButton;
    GroupBox2: TGroupBox;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    LstAdi: TEdit;
    LstTel: TEdit;
    LstDTarih: TDateTimePicker;
    ListeBtn: TButton;
    dbcon: TADOConnection;
    KayitQuery: TADOQuery;
    ListeQuery: TADOQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    LstDTarihCheck: TCheckBox;
    procedure KayitBtnClick(Sender: TObject);
    procedure ListeBtnClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
const
     DataBaseAdi='dbornek.mdb';
procedure TForm1.FormCreate(Sender: TObject);
begin
     dbcon.close;
     dbcon.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'+
     'User ID=Admin;Data Source='+DataBaseAdi+
     ';Mode=Share Deny None;Jet OLEDB:Database Password="";';
     try
        dbcon.Connected:=True;
        ///bağlantı kurulduktan sonra listeleme yapılıyor
           ListeBtnClick(nil);
     except
        ShowMessage('Veritabanı bağlantısı yapılamadı.');
     end;
end;

procedure TForm1.KayitBtnClick(Sender: TObject);
begin
     /////kayıt işlemi
       KayitQuery.Close;
       KayitQuery.SQL.Text:='Insert Into rehber (adi,tel,dtarihi) values '+
       '("'+KytAdi.Text+'","'+KytTel.Text+'",'+inttostr(round(KytDTarih.Date))+')';
           ////aşağıdaki işlemi msacces text bilgileri
             ////belirtmek için " tırnak değil ' kullandığı için yapıyoruz
           StringReplace(KayitQuery.SQL.Text,'"',#39,[rfReplaceAll]);
           //////

       ///hata olma olasılığını göz önünde bulundurarak query nesnesini çalıştırıyorum.
       try
          KayitQuery.ExecSQL;
       except //hata olması durumunda mesaj veriyorum
          ShowMessage('Kayıt yapılamadı. Lütfen girişlerde tırnak işareti kullanmayınız.');
       end;
     ////////////////////////


     //////Liste Yenileme işlemi
       ListeQuery.Close;
       ListeQuery.Open;
     ////////////////////
end;

procedure TForm1.ListeBtnClick(Sender: TObject);
Var
   sq:String; //sql kodunu tutacak değişken
begin
     ///aşağıdaki kod rehberdeki tum kayıtları listeleyecek şekilde ayarlanıyor.
        sq:='select * from rehber where 1=1';

     ////aşağıdaki kodlar filtreleme kutularında bulunan bilgilere göre sql kodunu ayarlıyor
        /// eğer filtre kutusu boşsa sql kodu değiştirilmiyor.
        if LstAdi.Text<>'' then
           sq:=sq+' and adi like "%'+LstAdi.Text+'%"';
        if LstTel.Text<>'' then
           sq:=sq+' and tel like "%'+LstTel.Text+'%"';
        if LstDTarihCheck.Checked then  ///doğum tarihi kutusunu boş bırakmak gibi bir seçeneğim
           ///olmadığı için ekstra bir checkbox kullandım
           sq:=sq+' and dtarihi='+inttostr(Round(LstDTarih.Date));
     //////////////////////


     sq:=sq+' order by adi';//son olarak listnin adi alanına göre sıralanmasını sağlıyorum.
     ListeQuery.Close;
     ListeQuery.SQL.Text:=sq;

     ///hata olma olasılığını göz önünde bulundurarak query nesnesini açıyorum
     try
        ListeQuery.Open;
     except  //hata oluşursa...
        ShowMessage('Listeleme yapılamadı. Lütfen filteleme kutularında tırnak işareti kullanmayınız.');
        ///bir hata olduğu için listeyi boş bir şekilde  ekrana veriyorum.
           ListeQuery.Close;
           ListeQuery.SQL.Text:='select * from rehber where 1=0';
           ListeQuery.Open;
        /////////////////
     end;
end;

end.
SQLIslemU.dfm

Kod: Tümünü seç

object Form1: TForm1
  Left = 0
  Top = 0
  Caption = #214'rnek SQL '#304'slemleri'
  ClientHeight = 427
  ClientWidth = 538
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object GroupBox1: TGroupBox
    Left = 8
    Top = 8
    Width = 521
    Height = 97
    Caption = 'Kay'#305't'
    TabOrder = 0
    object Label1: TLabel
      Left = 16
      Top = 27
      Width = 28
      Height = 13
      Caption = 'Ad'#305'n'#305'z'
    end
    object Label2: TLabel
      Left = 173
      Top = 27
      Width = 14
      Height = 13
      Caption = 'Tel'
    end
    object Label3: TLabel
      Left = 312
      Top = 27
      Width = 62
      Height = 13
      Caption = 'Do'#287'um Tarihi'
    end
    object KytAdi: TEdit
      Left = 16
      Top = 40
      Width = 121
      Height = 21
      TabOrder = 0
    end
    object KytTel: TEdit
      Left = 165
      Top = 40
      Width = 121
      Height = 21
      TabOrder = 1
    end
    object KytDTarih: TDateTimePicker
      Left = 312
      Top = 40
      Width = 121
      Height = 21
      Date = 40744.401117245370000000
      Time = 40744.401117245370000000
      TabOrder = 2
    end
    object KayitBtn: TButton
      Left = 358
      Top = 67
      Width = 75
      Height = 25
      Caption = 'Kaydet'
      TabOrder = 3
      OnClick = KayitBtnClick
    end
  end
  object GroupBox2: TGroupBox
    Left = 8
    Top = 106
    Width = 521
    Height = 97
    Caption = 'Liste '#304#231'in Filtre'
    TabOrder = 1
    object Label4: TLabel
      Left = 16
      Top = 27
      Width = 28
      Height = 13
      Caption = 'Ad'#305'n'#305'z'
    end
    object Label5: TLabel
      Left = 173
      Top = 27
      Width = 14
      Height = 13
      Caption = 'Tel'
    end
    object Label6: TLabel
      Left = 312
      Top = 27
      Width = 62
      Height = 13
      Caption = 'Do'#287'um Tarihi'
    end
    object LstDTarihCheck: TCheckBox
      Left = 380
      Top = 24
      Width = 44
      Height = 17
      Alignment = taLeftJustify
      Caption = 'Kullan'
      TabOrder = 4
    end
    object LstAdi: TEdit
      Left = 16
      Top = 40
      Width = 121
      Height = 21
      TabOrder = 0
    end
    object LstTel: TEdit
      Left = 165
      Top = 40
      Width = 121
      Height = 21
      TabOrder = 1
    end
    object LstDTarih: TDateTimePicker
      Left = 312
      Top = 40
      Width = 121
      Height = 21
      Date = 40744.401117245370000000
      Time = 40744.401117245370000000
      TabOrder = 2
    end
    object ListeBtn: TButton
      Left = 358
      Top = 67
      Width = 75
      Height = 25
      Caption = 'Listele'
      TabOrder = 3
      OnClick = ListeBtnClick
    end
  end
  object DBGrid1: TDBGrid
    Left = 8
    Top = 216
    Width = 521
    Height = 201
    DataSource = DataSource1
    TabOrder = 2
    TitleFont.Charset = DEFAULT_CHARSET
    TitleFont.Color = clWindowText
    TitleFont.Height = -11
    TitleFont.Name = 'Tahoma'
    TitleFont.Style = []
    Columns = <
      item
        Expanded = False
        FieldName = 'adi'
        Title.Caption = 'Ad'#305' Soyad'#305
        Width = 127
        Visible = True
      end
      item
        Expanded = False
        FieldName = 'tel'
        Title.Caption = 'Telefon No'
        Width = 210
        Visible = True
      end
      item
        Expanded = False
        FieldName = 'dtarihi'
        Title.Caption = 'Do'#287'um Tarihi'
        Visible = True
      end>
  end
  object dbcon: TADOConnection
    LoginPrompt = False
    Mode = cmShareDenyNone
    Provider = 'Microsoft.Jet.OLEDB.4.0'
    Left = 472
    Top = 48
  end
  object KayitQuery: TADOQuery
    Connection = dbcon
    Parameters = <>
    Left = 472
    Top = 80
  end
  object ListeQuery: TADOQuery
    Connection = dbcon
    CursorType = ctStatic
    Parameters = <>
    SQL.Strings = (
      'select * from rehber')
    Left = 472
    Top = 112
  end
  object DataSource1: TDataSource
    DataSet = ListeQuery
    Left = 472
    Top = 144
  end
end
Dosya ekleri
BasicSQL.rar
Basit SQL İşlemleri
(13.54 KiB) 207 kere indirildi
Cevapla