Advanced Topics
Now that you have gotten a basic single form and database table package running in single user mode, it is worth thinking about where to go from here. There are a couple of steps that come next:
Loading other forms
Changing to a multi-user system
Loading other forms turns out to be fairly easy. The basic call is
appw.openformdirect("myform.sxf")
. The framework takes care of the
rest. It is a good idea to open all the required database tables during initialization of the
application and ensure they are part of the appwindow object.
Changing to a multi-user system is a bit more complicated. First the database tables need
to be opened and shared using a PPCS server. A sample server is included with Superbase NG. It
is located in the SIMPOL\Utilities\simpolserver
directory. Also in that directory is a file called readme.txt
. That file
discusses everything necessary to share the database files via PPCS. Once the files are
shared, the remaining change that is required is to open them using a PPCS data source.
if bUSEPPCS me.ppcs =@ ppcstype1.new(udpport=.nul, error=e) if me.ppcs =@= .nul wxmessagedialog(appw.w, "Error starting PPCS", sAPPMSGTITLE, \ "ok", "error") else src =@ me.opendatasource("ppcstype1", "127.0.0.1:4000", appw, \ error=e) if src =@= .nul wxmessagedialog(appw.w, "Error opening the PPCS server", \ sAPPMSGTITLE, "ok", "error") end if end if else src =@ me.opendatasource("sbme1", "address.sbm", appw, error=e) if src =@= .nul wxmessagedialog(appw.w, "Error opening the address.sbm file", \ sAPPMSGTITLE, "ok", "error") end if end if if src !@= .nul t =@ appw.opendatatable(src, "Address", error=e) if t =@= .nul wxmessagedialog(appw.w, "Error opening the 'Address' table", \ sAPPMSGTITLE, "ok", "error") else me.address =@ t ok = .true end if end if
The above program listing assumes that a boolean constant
called bUSEPPCS
has been defined earlier in the program. That is all that is
required to switch the program to run as a multiple user system, other than a fully licensed
database engine, though the 3-user license that is provided with Superbase NG for testing should
be sufficient while doing development.