home *** CD-ROM | disk | FTP | other *** search
- #ifdef COMP_BCB
- // BORLAND C++ BUILDER INCLUDES
- #include <condefs.h>
- #else
- #define USELIB( arg )
- #endif
-
-
- //---------------------------------------------------------------------------
- // CUSTOM DATABASE HEADER
- #include "business.h"
- //---------------------------------------------------------------------------
- #include <stdio.h>
- //---------------------------------------------------------------------------
- // BORLAND C++ BUILDER DIRECTIVES
- USELIB("..\..\..\lib\win32\bcb\ojust.lib");
-
- //---------------------------------------------------------------------------
- int main(int argc, char* argv[])
- {
- int invoices = 1;
- int products = 0;
-
- if( argc > 1 )
- // GET CUSTOMERS
- invoices = atoi( argv[1] );
-
- if( argc > 2 )
- // GET PRODUCTS
- products = atoi( argv[2] );
-
- // START TRY/CATCH BLOCK FOR EXCEPTIONS CATCHING
- try
- {
- d_Database db;
- d_Transaction tx;
-
- // OPEN DATABASE
- db.open( "database/business" );
-
- // START TRANSACTION
- tx.begin();
-
- d_Ref<Invoice> objInvoice;
- d_Extent<Customer> customers( &db );
- char query[100];
- d_Ref<Product> objProduct;
- int i, k;
-
- // CREATE <INVOICES> INVOICE OBJECTS
- for( i = 0; i < invoices; ++i )
- {
- // CREATE NEW PERSISTENT OBJECT INTO DATABASE PREVOIUSLY OPEN
- objInvoice = new( &db, "Invoice" ) Invoice;
-
- // FILL OBJECT
- objInvoice->number = i;
-
- // SEARCH CUSTOMER WITH ID == INVOICE ID
- sprintf( query, "Customer.code = %d", i );
- objInvoice->ownCustomer = customers.select_element( query );
-
- if( objInvoice->ownCustomer.is_null() )
- {
- cout << endl << "Customer " << i << " not found!" << endl;
- tx.abort();
- break;
- }
-
- // CREATE <PRODUCTS> PRODUCT OBJECTS
- for( k = 0; k < products; ++k )
- {
- // CREATE NEW PERSISTENT OBJECT INTO DATABASE PREVOIUSLY OPEN
- objProduct = new( &db, "Product" ) Product;
-
- // FILL OBJECT
- objProduct->name = "PC Completo serie A";
- objProduct->price = k + 1400000;
-
- objInvoice->products.insert_element( objProduct );
- }
- }
-
- // COMMIT TRANSACTION
- tx.commit();
- }
- catch( d_Error &e )
- {
- // DATABASE ERROR
- cout << "d_Error " << e.what() << endl;
- }
- catch( ... )
- {
- // APPLICATION ERROR
- cout << "ERRORE" << endl;
- }
-
- return 0;
- }
-
-
-
-