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.
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.
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