Hi.
Marcelo's approach is the most common and you will probably enjoy using ARC. As an alternative, here is some code to create the DD rather than by using Arc. One of the advantages of creating the DD with code is that you can actually deliver you app and let it create the DD as well as tables, indexes, triggers, RI rules, etc.. from an installation program. Such app could be tailored to create, as well as maintain, any DD object ( such as tables, triggers, indexes, RI Rules, Functions, stored procedures...) as needed. Here is the code to create the DD using ACE functions fro x/harbour:
Code: Select all
#include "ads.ch"
//------------------------------------------------------------------------------
METHOD createNewDD() CLASS MpAdmin
if !AdsConnect60( ::xRDDPath, ::nAdsServerType, "ADSSYS" )
ADSDDCREATE( ::xRddPath,, "mp9 system data dictionary" )
Endif
AdsDDSetDatabaseProperty( ADS_DD_ENABLE_INTERNET, .t. )
AdsDDSetDatabaseProperty( ADS_DD_INTERNET_SECURITY_LEVEL, ADS_DD_LEVEL_2 )
//Adssys is the administrator user.
AdsDDCreateUser( , "AdsSys", "mp9", "System Administrator" )
//create a few default users -perhaps?
AdsDDCreateUser( , "x12", "mp9", "x12 document users" )
AdsDDCreateUser( , "MpRecs9", "mp9", "Admissions and Records users" )
AdsDDCreateUser( , "Mpbill9", "mp9", "Billing users" )
AdsDDCreateUser( , "TriageUser", "Triage9", "Triage App users" )
AdsDDCreateUser( , "MpPharm9", "mp9", "Nutritional dept users" )
AdsDDCreateUser( , "mpdiet9", "mp9", "Nutritional dept users" )
AdsDDCreateUser( , "MpLab9", "mp9", "Billing users" )
AdsDDCreateUser( , "MpOrders9", "mp9", "Floor Orders users" )
AdsDDCreateUser( , "hl7service", "hl7", "HL7 charges over tcp server service" )
AdsDDCreateUser( , "adtservice", "adt", "ADT over tcp client service" )
AdsDDCreateUser( , "cashier", "mp9", "MpCashier App users" )
AdsDDCreateUser( , "AutoReg_User", "mp9", "ER Patient Autoregister App Users" )
//set adssys password
AdsDDSetDatabaseProperty( ADS_DD_ADMIN_PASSWORD, "mp9" )
AdsDDSetDatabaseProperty( ADS_DD_LOG_IN_REQUIRED, .t. ) // this disables anonymous connections
// set ADS_DD_VERIFY_ACCESS_RIGHTS to .f. to allow all users to
// have all access rights. Set to .t. to enforce group and user rights, thus
//incrementing the level of security -(I recommend it).
AdsDDSetDatabaseProperty( ADS_DD_VERIFY_ACCESS_RIGHTS, .T. )
Return Nil
It might also be a good idea to create the tables with code and to include them in the dd. You can do this using the create table sql statement. It is all very well documented on the help files.
Hope that helps,
Reinaldo.