home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 10 / ioProg_10.iso / soft / optima / samples.z / Paradox.wxf < prev    next >
Encoding:
Text File  |  1996-06-10  |  7.8 KB  |  350 lines

  1. Save Format v1.3
  2. @begin Form "WinParadox5"
  3.  Exported 0;
  4.  
  5.  @begin Object "WDialog"
  6.   WSCaption 1;
  7.   WSSizeable 1;
  8.   WSDlgBorder 1;
  9.   WSSysMenu 1;
  10.   WSSystemMenu 1;
  11.   WSMinimizeBox 1;
  12.   WSMaximizeBox 1;
  13.   WSGroup 1;
  14.   WSTabStop 1;
  15.   WSResizeBorder 1;
  16.   WSVisible 1;
  17.   FormPositionType "Centered";
  18.   FormAbsTop "135";
  19.   FormAbsLeft "251";
  20.   FDXStructName "WinParadox6FDXStruct";
  21.   Font "8.MS Sans Serif";
  22.   Text "Borland Paradox 5.0 Example";
  23.   @begin Event "Create"
  24.    GencodeSrcLine 220;
  25.    FunctionName "WinParadox5::WinParadox5_Create";
  26.   @end;
  27.   @begin UserFunction "WinParadox5()"
  28.    Compiler 1;
  29.    GencodeSrcLine 235;
  30.    FunctionName "WinParadox5::WinParadox5()";
  31.   @end;
  32.   @begin UserFunction "~WinParadox5()"
  33.    Compiler 1;
  34.    GencodeSrcLine 239;
  35.    FunctionName "WinParadox5::~WinParadox5()";
  36.   @end;
  37.   @begin UserFunction "Process( WWindow *parent )"
  38.    GencodeSrcLine 243;
  39.    FunctionName "WinParadox5::Process( WWindow *parent )";
  40.   @end;
  41.   @begin UserFunction "Prototype for Process( WWindow *parent )"
  42.    Private 1;
  43.    GencodeSrcLine 65;
  44.    FunctionName "WinParadox5::Prototype for Process( WWindow *parent )";
  45.   @end;
  46.   ResID 106;
  47.   DesignName WinParadox5;
  48.   TabIndex 0;
  49.   DesignRect 251,137,219,92;
  50.  @end;
  51.  
  52.  @begin Object "WQuery"
  53.   BindLimit "0";
  54.   ConcurrencyLevel "WQCLLock";
  55.   CursorType "WQCTDynamic";
  56.   SQL "select * from paradox5.db\r\norder by Employee for update of *";
  57.   Transaction "WinParadox5::transaction_paradox5";
  58.   AutoOpen "0";
  59.   ResID 101;
  60.   DesignName query_paradox5;
  61.   TabIndex 0;
  62.   DesignRect 8,51,19,17;
  63.  @end;
  64.  
  65.  @begin Object "WTransaction"
  66.   DataSource "Paradox 5.0 Optima Example";
  67.   AutoConnect "0";
  68.   ResID 102;
  69.   DesignName transaction_paradox5;
  70.   TabIndex 1;
  71.   DesignRect 28,51,19,17;
  72.  @end;
  73.  
  74.  @begin Object "WTextBox"
  75.   WTextBoxAutoHScroll 1;
  76.   WSBorder 1;
  77.   WSChild 1;
  78.   WSExClientEdge 1;
  79.   WSVisible 1;
  80.   DataColumns "Employee";
  81.   DataSource "WinParadox5::query_paradox5";
  82.   FDXFieldName "textb_1_data";
  83.   FDXFieldType "WString";
  84.   ResizePercentages "[ 0 0 100 0 ]";
  85.   ResID 103;
  86.   DesignName textb_1;
  87.   TabIndex 2;
  88.   DesignRect 58,6,145,12;
  89.  @end;
  90.  
  91.  @begin Object "WTextBox"
  92.   WTextBoxAutoHScroll 1;
  93.   WSBorder 1;
  94.   WSChild 1;
  95.   WSExClientEdge 1;
  96.   WSVisible 1;
  97.   DataColumns "StartDate";
  98.   DataSource "WinParadox5::query_paradox5";
  99.   FDXFieldName "textb_2_data";
  100.   FDXFieldType "WString";
  101.   ResizePercentages "[ 0 0 100 0 ]";
  102.   ResID 104;
  103.   DesignName textb_2;
  104.   TabIndex 3;
  105.   DesignRect 58,21,145,12;
  106.  @end;
  107.  
  108.  @begin Object "WTextBox"
  109.   WTextBoxAutoHScroll 1;
  110.   WSBorder 1;
  111.   WSChild 1;
  112.   WSExClientEdge 1;
  113.   WSVisible 1;
  114.   DataColumns "Salary";
  115.   DataSource "WinParadox5::query_paradox5";
  116.   FDXFieldName "textb_3_data";
  117.   FDXFieldType "WString";
  118.   ResizePercentages "[ 0 0 100 0 ]";
  119.   ResID 105;
  120.   DesignName textb_3;
  121.   TabIndex 4;
  122.   DesignRect 58,36,145,12;
  123.  @end;
  124.  
  125.  @begin Object "WLabel"
  126.   WSSLeftNoWordWrap 1;
  127.   WSSNotify 1;
  128.   WCCSNoResize 1;
  129.   WCCSNoParentAlign 1;
  130.   WSChild 1;
  131.   WSVisible 1;
  132.   AutoSize "1";
  133.   Text "Employee:";
  134.   ResID 106;
  135.   DesignName label_1;
  136.   TabIndex 5;
  137.   DesignRect 8,6,33,8;
  138.  @end;
  139.  
  140.  @begin Object "WLabel"
  141.   WSSLeftNoWordWrap 1;
  142.   WSSNotify 1;
  143.   WCCSNoResize 1;
  144.   WCCSNoParentAlign 1;
  145.   WSChild 1;
  146.   WSVisible 1;
  147.   AutoSize "1";
  148.   Text "Start date:";
  149.   ResID 107;
  150.   DesignName label_2;
  151.   TabIndex 6;
  152.   DesignRect 8,21,30,8;
  153.  @end;
  154.  
  155.  @begin Object "WLabel"
  156.   WSSLeftNoWordWrap 1;
  157.   WSSNotify 1;
  158.   WCCSNoResize 1;
  159.   WCCSNoParentAlign 1;
  160.   WSChild 1;
  161.   WSVisible 1;
  162.   AutoSize "1";
  163.   Text "Salary:";
  164.   ResID 108;
  165.   DesignName label_3;
  166.   TabIndex 7;
  167.   DesignRect 8,36,21,8;
  168.  @end;
  169.  
  170.  @begin Object "WDataNavigator"
  171.   WSChild 1;
  172.   WSMaximizeBox 1;
  173.   WSTabStop 1;
  174.   WSVisible 1;
  175.   BOFAction "WDNActionMoveFirst";
  176.   DataSource "WinParadox5::query_paradox5";
  177.   EOFAction "WDNActionMoveLast";
  178.   ShowAdd "1";
  179.   ShowCancel "1";
  180.   ShowDelete "1";
  181.   ShowEdit "1";
  182.   ShowMoveFirst "1";
  183.   ShowMoveLast "1";
  184.   ShowMoveNext "1";
  185.   ShowMovePrevious "1";
  186.   ShowRefresh "1";
  187.   ShowTooltips "1";
  188.   ShowUpdate "1";
  189.   ResID 109;
  190.   DesignName datanavigator_1;
  191.   TabIndex 8;
  192.   DesignRect 58,56,147,12;
  193.  @end;
  194.  
  195.  @begin HPPPrefixBlock
  196. @begin-code HPPPrefix
  197.  
  198. // Declarations added here will be included at the top of the .HPP file
  199.  
  200. @end-code;
  201.   GencodeSrcLine 13;
  202.  @end;
  203.  
  204.  @begin CPPPrefixBlock
  205. @begin-code CPPPrefix
  206.  
  207. // Code added here will be included at the top of the .CPP file
  208.  
  209. //  Include definitions for resources.
  210. #include "WRes.h"
  211. #include "odbcadm.hpp"
  212. #include "applic.hpp"
  213.  
  214. static WChar *Driver_keys[]={
  215.     WTEXT( "Description" ), WTEXT( "" ),
  216.     WTEXT( "CreateType" ), WTEXT( "" ),
  217.     WTEXT( "FileOpenCache" ), WTEXT( "0" ),
  218.     WTEXT( "NetDir" ), WTEXT( "" ),
  219.     WTEXT( "IntlSort" ), WTEXT( "0" ),
  220.     NULL
  221. };
  222.  
  223. static WChar Driver[]=
  224.     WTEXT( "INTERSOLV OEM 2.12 32-BIT ParadoxFile (*.db)" );
  225.     
  226. static WChar Datasource[]= WTEXT( "Paradox 5.0 Optima Example" );
  227.  
  228. @end-code;
  229.   GencodeSrcLine 10;
  230.  @end;
  231.  
  232.  @begin ClassContentsBlock
  233. @begin-code ClassContents
  234.  
  235.     public:
  236.         // add your public instance data here
  237.     private:
  238.         // add your private instance data here
  239.         WString                 _dbpath;
  240.     protected:
  241.         // add your protected instance data here
  242.  
  243. @end-code;
  244.   GencodeSrcLine 58;
  245.  @end;
  246.  
  247. @begin-code GeneratedClassContents
  248.  
  249.         WinParadox5();
  250.         ~WinParadox5();
  251.  
  252. @end-code;
  253.  
  254. @begin-code Code "WinParadox5::WinParadox5()"
  255.  
  256. WinParadox5::WinParadox5()
  257. {
  258.     
  259. }
  260.  
  261. @end-code;
  262.  
  263. @begin-code Code "WinParadox5::~WinParadox5()"
  264.  
  265. WinParadox5::~WinParadox5()
  266. {
  267.     
  268. }
  269.  
  270. @end-code;
  271.  
  272. @begin-code Code "WinParadox5::Process( WWindow *parent )"
  273.  
  274. WBool WinParadox5::Process( WWindow *parent )
  275. {
  276.     WString             driver_dll;
  277.     WStringArray        keys;
  278.     int                 i;
  279.     WString             db_file;
  280.     WFilePath           path;
  281.     WString             dir;
  282.     
  283.     if( !ODBCAdmin::DriverExists( Driver, driver_dll ) ) {
  284.         WMessageBox::Messagef( parent, WMBLevelError, WMBButtonOk, "Driver Error",
  285.                 "The ODBC Driver '%s' is not installed. Data source cannot "
  286.                 "be created.", Driver );
  287.         return( FALSE );
  288.     }
  289.     
  290.     for( i = 0; Driver_keys[i] != NULL; ++i );
  291.     keys.SetCount( i + 4 );
  292.     for( i = 0; Driver_keys[i] != NULL; ++i ) {
  293.         keys[i] = Driver_keys[i];
  294.     }
  295.     keys[i] = WTEXT( "Driver" );
  296.     keys[i + 1] = driver_dll;
  297.     keys[i + 2] = WTEXT( "Database" );
  298.     db_file = Application->GetProgramPath();
  299.     path = db_file;
  300.     dir = path.GetDirectory();
  301.     dir.Concat( "\\.." );
  302.     path.SetFileName( "" );
  303.     path.SetDirectory( dir );
  304.     path.CleanDirectory();
  305.     keys[i + 3] = path;
  306.     _dbpath = path;
  307.  
  308.     if( !ODBCAdmin::AddDataSource( Datasource, Driver, keys ) ) {
  309.         WMessageBox::Messagef( parent, WMBLevelError, WMBButtonOk, "Data source Error",
  310.                 "The ODBC Datasource '%s' could not be installed", Datasource );
  311.         return( FALSE );
  312.     }
  313.  
  314.     Create( parent );
  315.     
  316.     return( TRUE );
  317.     
  318.     
  319. }
  320.  
  321. @end-code;
  322.  
  323. @begin-code Code "WinParadox5::Prototype for Process( WWindow *parent )"
  324.  
  325.     public:
  326.         WBool Process( WWindow *parent );
  327.  
  328. @end-code;
  329.  
  330. @begin-code Code "WinParadox5::WinParadox5_Create"
  331.  
  332. WBool WinParadox5::WinParadox5_Create(
  333.     WObject *               source,
  334.     WCreateEventData *      event )
  335. {
  336.     WString                 connect_parms;
  337.     
  338.     connect_parms.Sprintf( "database=%s", _dbpath.GetText() );
  339.     transaction_paradox5->SetConnectParams( connect_parms );
  340.     transaction_paradox5->Connect();
  341.     query_paradox5->SetUpdatePolicy(WQUPCursor);
  342.     query_paradox5->Open();
  343.     query_paradox5->MoveFirst();
  344.     
  345.     return FALSE;
  346. }
  347.  
  348. @end-code;
  349. @end;
  350.