Manage() provides data management functionality for your application and/or process.
Below is the code for Manage():
procedure TForm1.Manage();
begin
// populate the tables with data
Add_CustomerMaster_Records;
Add_ItemMaster_Records;
Add_Transactions();
// display the orders and their items
Display_CustomerOrders();
Display_OrderItems();
end;
procedure TForm1.Add_CustomerMaster_Records;
const
data : array [1..4] of string = (
'(''1000'', ''92867'', ''CA'', ''1'', ''Bryan Williams'', ''2999 Regency'', ''Orange'')',
'(''1001'', ''61434'', ''CT'', ''1'', ''Michael Jordan'', ''13 Main'', ''Harford'')',
'(''1002'', ''73677'', ''GA'', ''1'', ''Joshua Brown'', ''4356 Cambridge'', ''Atlanta'')',
'(''1003'', ''10034'', ''MO'', ''1'', ''Keyon Dooling'', ''19771 Park Avenue'', ''Columbia'')'
);
nRecords : integer = 4;
var
i : integer;
str : string;
begin
try
SQLConnection1.StartTransaction(td);
for i := 1 to nRecords do
begin
// add one record at time to table
str := 'INSERT INTO custmast VALUES ' + data[i];
SQLConnection1.ExecuteDirect(str);
end;
SQLConnection1.Commit(td);
except on E: Exception do Handle_Exception(E);
end;
end;
procedure TForm1.Add_ItemMaster_Records;
const
data : array [1..4] of string = (
'(''10'', ''19.95'', ''1'', ''Hammer'')',
'( ''3'', ''9.99'', ''2'', ''Wrench'')',
'( ''4'', ''16.59'',''3'', ''Saw'')',
'( ''1'', ''3.98'', ''4'', ''Pliers'')'
);
nRecords : integer = 4;
var
i : integer;
str : string;
begin
try
SQLConnection1.StartTransaction(td);
for i := 1 to nRecords do
begin
// add one record at time to table
str := 'INSERT INTO itemmast VALUES ' + data[i];
SQLConnection1.ExecuteDirect(str);
end;
SQLConnection1.Commit(td);
except on E: Exception do Handle_Exception(E);
end;
end;
procedure TForm1.Add_Transactions;
const
orders : array [1..3, 1..4] of string = (
('09/01/2002', '09/05/2002', '1', '1001'),
('09/02/2002', '09/06/2002', '2', '9999'), // bad customer number
('09/22/2002', '09/26/2002', '3', '1003')
);
items : array [1..6, 1..4] of string = (
('1', '1', '2', '1'),
('1', '2', '1', '2'),
('2', '1', '1', '3'),
('2', '2', '3', '4'),
('3', '1', '2', '3'),
('3', '2', '2', '99') // bad item number
);
nOrders : integer = 3;
nItems : integer = 6;
var
i : integer;
j : integer;
str : string;
begin
j := 1;
// process orders
for i := 1 to nOrders do
begin
try
// start a transaction
SQLConnection1.StartTransaction(td);
str := 'INSERT INTO custordr VALUES (' +
'''' + orders[i,1] + ''', ' +
'''' + orders[i,2] + ''', ' +
'''' + orders[i,3] + ''', ' +
'''' + orders[i,4] + ''')';
// add order record
SQLConnection1.ExecuteDirect(str);
except on E: Exception do Handle_Exception(E);
end;
// process order items
while (CompareStr(items[j,1], orders[i,3]) = 0) do
begin
try
str := 'INSERT INTO ordritem VALUES (' +
items[j,2] + ', ' +
items[j,3] + ', ' +
'''' + items[j,1] + ''', ' +
'''' + items[j,4] + ''')';
// add order item record
SQLConnection1.ExecuteDirect(str);
except on E: Exception do Handle_Exception(E);
end;
// bump to next item
j := j + 1;
// exit the while loop on last item
if (j >= nItems) then
break;
end;
try
// commit the transaction
SQLConnection1.Commit(td);
except on E: Exception do
Handle_Exception(E);
end;
end;
end;
procedure TForm1.Display_CustomerOrders();
begin
ClientDataSet1.Active := false;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('SELECT * FROM custordr');
SQLQuery1.Prepared := true;
SQLQuery1.Open;
ClientDataSet1.Active := true;
end;
procedure TForm1.Display_OrderItems();
begin
ClientDataSet2.Active := false;
SQLQuery2.SQL.Clear;
SQLQuery2.SQL.Add('SELECT * FROM ordritem');
SQLQuery2.Prepared := true;
SQLQuery2.Open;
ClientDataSet2.Active := true;
end;