Project DBAWARE2
Project Structure
DBAWARE2.DPR
program DbAware2;
uses
Forms,
DbAwForm in 'DbAwForm.pas' {DbaForm};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TDbaForm, DbaForm);
Application.Run;
end.
DBAWFORM.PAS
unit DbAwForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, StdCtrls, Mask, DBCtrls, ExtCtrls, Grids, DBGrids, ComCtrls,
ADODB;
type
TDbaForm = class(TForm)
Table1: TADOTable;
DataSource1: TDataSource;
Panel1: TPanel;
Button2: TButton;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
DBRadioGroup1: TDBRadioGroup;
DBCheckBox1: TDBCheckBox;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBComboBox1: TDBComboBox;
DBText1: TDBText;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
ADOConnection: TADOConnection;
ADOCommand: TADOCommand;
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
procedure AddRandomData;
end;
var
DbaForm: TDbaForm;
implementation
{$R *.DFM}
procedure TDbaForm.FormCreate(Sender: TObject);
var
TablesList: TStringList;
begin
// read table names from database
TablesList := TStringList.Create;
try
ADOConnection.GetTableNames (TablesList);
// check if the table already exists
if TablesList.IndexOf (Table1.TableName) < 0 then
// create it
ADOCommand.Execute;
// open the new or existing table
Table1.Open;
finally
TablesList.Free;
end;
end;
procedure TDbaForm.Button2Click(Sender: TObject);
begin
AddRandomData;
end;
const
FirstNames : array [1..10] of string =
('John', 'Paul', 'Mark', 'Joseph', 'Bill',
'Peter', 'Tim', 'Ralph', 'Bob', 'Gary');
LastNames : array [1..10] of string =
('Ford', 'Osborse', 'White', 'MacDonald', 'Lee',
'Young', 'Parker', 'Reed', 'Gates', 'Green');
NoDept = 4;
NoBranch = 30;
NewRecords = 10;
procedure TDbaForm.AddRandomData;
var
I: Integer;
begin
Randomize;
for I := 1 to NewRecords do
Table1.InsertRecord ([
LastNames [Random (High (LastNames)) + 1],
FirstNames [Random (High (FirstNames)) + 1],
Random (NoDept) + 1,
DbComboBox1.Items [Random (NoBranch) + 1],
Boolean (Random (2)),
Date - Random (1000)]);
ShowMessage (IntToStr (NewRecords) + ' added');
end;
end.
DBAWFORM.DFM
object DbaForm: TDbaForm
Left = 196
Top = 109
Width = 489
Height = 289
Caption = 'DbAware2 (MS Access)'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = True
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Panel1: TPanel
Left = 0
Top = 0
Width = 481
Height = 41
Align = alTop
TabOrder = 0
object Button2: TButton
Left = 16
Top = 8
Width = 121
Height = 25
Caption = '&Add Random Data'
TabOrder = 0
OnClick = Button2Click
end
end
object PageControl1: TPageControl
Left = 0
Top = 41
Width = 481
Height = 221
ActivePage = TabSheet1
Align = alClient
TabOrder = 1
object TabSheet1: TTabSheet
Caption = 'Record View'
object DBText1: TDBText
Left = 336
Top = 16
Width = 3
Height = 13
AutoSize = True
DataField = 'HireDate'
DataSource = DataSource1
end
object Label1: TLabel
Left = 280
Top = 16
Width = 46
Height = 13
Caption = 'Hire date:'
end
object Label2: TLabel
Left = 18
Top = 52
Width = 51
Height = 13
Caption = '&Last Name'
FocusControl = DBEdit1
end
object Label3: TLabel
Left = 18
Top = 80
Width = 50
Height = 13
Caption = '&First Name'
FocusControl = DBEdit2
end
object Label4: TLabel
Left = 18
Top = 112
Width = 34
Height = 13
Caption = '&Branch'
FocusControl = DBComboBox1
end
object DBNavigator1: TDBNavigator
Left = 16
Top = 8
Width = 240
Height = 25
DataSource = DataSource1
TabOrder = 0
end
object DBRadioGroup1: TDBRadioGroup
Left = 272
Top = 48
Width = 185
Height = 121
Caption = '&Department'
DataField = 'Department'
DataSource = DataSource1
Items.Strings = (
'Sales'
'Accounting'
'Production'
'Management')
TabOrder = 1
Values.Strings = (
'1'
'2'
'3'
'4')
end
object DBCheckBox1: TDBCheckBox
Left = 80
Top = 144
Width = 81
Height = 17
Caption = '&Senior'
DataField = 'Senior'
DataSource = DataSource1
TabOrder = 2
ValueChecked = 'True'
ValueUnchecked = 'False'
end
object DBEdit1: TDBEdit
Left = 80
Top = 48
Width = 121
Height = 21
DataField = 'LastName'
DataSource = DataSource1
TabOrder = 3
end
object DBEdit2: TDBEdit
Left = 80
Top = 80
Width = 121
Height = 21
DataField = 'FirstName'
DataSource = DataSource1
TabOrder = 4
end
object DBComboBox1: TDBComboBox
Left = 80
Top = 112
Width = 121
Height = 21
DataField = 'Branch'
DataSource = DataSource1
ItemHeight = 13
Items.Strings = (
'Baltimore'
'Berlin'
'Boston'
'Brasilia'
'Cape Town'
'Chicago'
'Dallas'
'Denver'
'Dublin'
'Las Vegas'
'London'
'Los Angeles'
'Louisville'
'Mexico City'
'Miami'
'Minneapolis'
'Moscow'
'New Orleans'
'New York'
'Orlando'
'Rome'
'Salt Lake City'
'San Diego'
'San Francisco'
'San Jose'
'Seattle'
'Singapore'
'Tokio'
'Toronto'
'Vancouver')
Sorted = True
TabOrder = 5
end
end
object TabSheet2: TTabSheet
Caption = 'Grid View'
ImageIndex = 1
object DBGrid1: TDBGrid
Left = 0
Top = 0
Width = 473
Height = 193
Align = alClient
DataSource = DataSource1
TabOrder = 0
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = 'MS Sans Serif'
TitleFont.Style = []
end
end
end
object Table1: TADOTable
Active = True
CacheSize = 50
Connection = ADOConnection
CursorLocation = clUseServer
MaxRecords = 50
TableDirect = True
TableName = 'Workers'
Left = 384
Top = 8
end
object DataSource1: TDataSource
DataSet = Table1
Left = 344
Top = 8
end
object ADOConnection: TADOConnection
Connected = True
ConnectionString =
'Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data ' +
'Source=C:\md5code\Part3\12\data\MdData.mdb;Mode=Share Deny None;' +
'Extended Properties="";Locale Identifier=1033;Jet OLEDB:System d' +
'atabase="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Passwor' +
'd="";Jet OLEDB:Engine Type=4;Jet OLEDB:Database Locking Mode=0;J' +
'et OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transac' +
'tions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create Syst' +
'em Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don' +
'''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replic' +
'a Repair=False;Jet OLEDB:SFP=False'
LoginPrompt = False
Mode = cmShareDenyNone
Provider = 'Microsoft.Jet.OLEDB.4.0'
Left = 424
Top = 8
end
object ADOCommand: TADOCommand
CommandText =
'create table workers ('#13#10' firstname TEXT(30),'#13#10' lastname TEXT(3' +
'0),'#13#10' department INTEGER,'#13#10' branch TEXT (20),'#13#10' senior YESNO,' +
#13#10' hiredate DATETIME);'
Connection = ADOConnection
Parameters = <>
Left = 296
Top = 8
end
end
|