Tarif ettiğin gibi yaptım ama malesef bende olmuyor, sebebini çözemiyorum;
Unit, DFM ve SQL create tablosu için tam kodları aşağıya ekliyorum, eğer inceleme fırsatın olursa bir göz atabilir misin,
Kod: Tümünü seç
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Grids, Vcl.DBGrids, Data.DB, Data.Win.ADODB,
Vcl.ComCtrls;
type
TForm1 = class(TForm)
CON: TADOConnection;
QR: TADOQuery;
DS: TDataSource;
Panel: TPanel;
Memo1: TMemo;
aProgres: TProgressBar;
ED_Aranan: TEdit;
BT_Basla: TButton;
BT_Filtrele: TButton;
BT_GridiGoster: TButton;
DBGrid: TDBGrid;
procedure QRFetchProgress(DataSet: TCustomADODataSet; Progress, MaxProgress: Integer; var EventStatus: TEventStatus);
procedure BT_Klik(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BT_Klik(Sender: TObject);
var
aAranan: String;
begin
if (Sender = BT_Basla) then begin
CON.Open;
QR.Close;
QR.ExecuteOptions := [eoAsyncFetch];
QR.SQL.Clear;
QR.SQL.Text := 'SELECT TOP 100 * FROM dbo.Adres';
QR.Active := TRUE;
end else
if (Sender = BT_Filtrele) then begin
aAranan := Trim(ED_Aranan.Text);
if (aAranan > '') then begin
QR.Filtered := FALSE;
QR.Filter := format( 'TC_No = %s', [QuotedStr('%' + aAranan + '%')] );
QR.Filtered := TRUE;
end;
end else
if (Sender = BT_GridiGoster) then begin
QR.DisableControls;
DBGrid.DataSource := DS;
QR.EnableControls;
end;
end;
procedure TForm1.QRFetchProgress(DataSet: TCustomADODataSet; Progress, MaxProgress: Integer; var EventStatus: TEventStatus);
begin
Memo1.Lines.Add ( DateTimeToStr (Now) );
aProgres.Max := MaxProgress;
aProgres.Position := Progress;
end;
end.
DFM Kodu da şöyle; (ADOCOnnection nesnesinin connection string kısmındaki paraletreleri burada açıklayamayacağım için sildim, siz kendi sunucunuz ile ilgili uygun parametreler verirsiniz)
Kod: Tümünü seç
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 524
ClientWidth = 904
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Panel: TPanel
Left = 0
Top = 0
Width = 904
Height = 28
Align = alTop
TabOrder = 0
object BT_Basla: TButton
AlignWithMargins = True
Left = 4
Top = 4
Width = 53
Height = 20
Align = alLeft
Caption = 'Ba'#351'lat'
TabOrder = 0
OnClick = BT_Klik
end
object ED_Aranan: TEdit
AlignWithMargins = True
Left = 63
Top = 4
Width = 293
Height = 20
Align = alLeft
TabOrder = 1
Text = '42532489984'
ExplicitHeight = 21
end
object BT_Filtrele: TButton
AlignWithMargins = True
Left = 362
Top = 4
Width = 87
Height = 20
Align = alLeft
Caption = 'Filtrele / '#199#246'z'
TabOrder = 2
OnClick = BT_Klik
end
object BT_GridiGoster: TButton
AlignWithMargins = True
Left = 455
Top = 4
Width = 144
Height = 20
Align = alLeft
Caption = 'Disable/Enable Controls'
TabOrder = 3
OnClick = BT_Klik
end
end
object Memo1: TMemo
Left = 702
Top = 28
Width = 202
Height = 496
Align = alRight
TabOrder = 1
end
object aProgres: TProgressBar
Left = 728
Top = 66
Width = 150
Height = 17
TabOrder = 2
end
object DBGrid: TDBGrid
Left = 0
Top = 28
Width = 702
Height = 496
Align = alClient
TabOrder = 3
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = 'Tahoma'
TitleFont.Style = []
end
object CON: TADOConnection
ConnectionString =
'Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=;Initial Catalog=;Data Source='
LoginPrompt = False
Provider = 'SQLOLEDB.1'
Left = 210
Top = 86
end
object DS: TDataSource
DataSet = QR
Left = 270
Top = 86
end
object QR: TADOQuery
Connection = CON
OnFetchProgress = QRFetchProgress
Parameters = <>
Left = 240
Top = 86
end
end
Tablo yapısını SQL Server için şuradan oluşturabilirsin;
Kod: Tümünü seç
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Adres](
[Ref] [int] IDENTITY(1,1) NOT NULL,
[Kaynak_Tablo] [int] NOT NULL,
[Kaynak_Ref] [int] NULL,
[TC_No] [bigint] NULL,
[Kisi] [int] NULL,
[Il] [int] NOT NULL,
[Ilce] [int] NULL,
[Muhtarlik] [int] NULL,
[Cadde] [int] NULL,
[Bina] [varchar](10) NULL,
[Daire] [varchar](10) NULL,
CONSTRAINT [PK__Adres] PRIMARY KEY CLUSTERED ( [Ref] ASC ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
Şu SQL koduyla da örnek veriler ekleyebilirsin;
Kod: Tümünü seç
SET NOCOUNT ON;
SET XACT_ABORT ON;
GO
SET IDENTITY_INSERT [dbo].[Adres] ON;
BEGIN TRANSACTION;
INSERT INTO [dbo].[Adres]([Ref], [Kaynak_Tablo], [Kaynak_Ref], [TC_No], [Kisi], [Il], [Ilce], [Muhtarlik], [Cadde], [Bina], [Daire])
VALUES (1, 1, 1, 54265662398, 43543235, 34, 3426, 23367, 163911, N'125 -2', N'27'),
(2, 1, 2, 28502094730, 43543236, 34, 3426, 23367, 163911, N'125 -2', N'6'),
(3, 1, 3, 28508094512, 43543237, 34, 3426, 23367, 163911, N'125 -2', N'6'),
(4, 1, 4, 19984994878, 43543238, 34, 3426, 23367, 163911, N'125 1', N'25'),
(5, 1, 5, 19466692834, 43543239, 34, 3426, 23367, 163911, N'125 -2', N'24'),
(6, 1, 6, 12593141398, 43543240, 34, 3426, 23367, 163911, N'125 4', N'10'),
(7, 1, 7, 15902031090, 43543241, 34, 3426, 23367, 163911, N'125 -2', N'24'),
(8, 1, 8, 34445182540, 43543242, 34, 3426, 23367, 163911, N'125 1', N'28'),
(9, 1, 9, 18890667364, 43543243, 34, 3426, 23367, 163911, N'121', N'4'),
(10, 1, 10, 48505265500, 43543244, 34, 3426, 23367, 163911, N'125 -2', N'12')
COMMIT;
RAISERROR (N'[dbo].[Adres]: Veriler eklendi...', 10, 1) WITH NOWAIT;
GO
SET IDENTITY_INSERT [dbo].[Adres] OFF;