Product Documentation

dbExpress Driver (dBX)

Previous Topic

Next Topic

Manage

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;

TOCIndex