EnglishРусский  

   ..

   ged.g

   gedbase.g

   geddemo.g

The project is closed! You can look at a new scripting language. It is available on GitHub.
Also, try our open source cross-platform automation software.

Ads

Installer and installation software
Commercial and Freeware installers.

source\lib\ged\ged.g
  1 /******************************************************************************
  2 *
  3 * Copyright (C) 2009, The Gentee Group. All rights reserved. 
  4 * This file is part of the Gentee open source project - http://www.gentee.com. 
  5 * 
  6 * THIS FILE IS PROVIDED UNDER THE TERMS OF THE GENTEE LICENSE ("AGREEMENT"). 
  7 * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE CONSTITUTES RECIPIENTS 
  8 * ACCEPTANCE OF THE AGREEMENT.
  9 *
 10 * Author: Alexey Krivonogov ( gentee )
 11 *
 12 ******************************************************************************/
 13 
 14 define
 15 {
 16    // Type of fields
 17    FT_BYTE   = 1   // byte
 18    FT_UBYTE  = 2   // unsigned byte
 19    FT_SHORT  = 3   // short
 20    FT_USHORT = 4   // unsigned short
 21    FT_INT    = 5   // int
 22    FT_UINT   = 6   // unsigned int
 23    FT_LONG   = 7   // long
 24    FT_ULONG  = 8   // unsigned long
 25    FT_FLOAT  = 9   // float
 26    FT_DOUBLE = 10   // double
 27    FT_STR    = 11   // ANSI string ( 1-255 )
 28    FT_USTR   = 12   // Unicode string ( 1-255 )
 29 
 30 // Flags for _gedfield.param
 31    FTF_AUTO   = 0x10000000   // Auto-increment (for FT_BYTE - FT_LONG)
 32 
 33    SF_END   =  0   // Finish of commands
 34    SF_ALL   =  1   // All records (exclude deleted)
 35    SF_EQ    =  2   // field == ival
 36    SF_LESS  =  3   // field < ival
 37    SF_GREAT =  4   // field > ival
 38 
 39    SF_NOT   =  0x10000000  // Not flag for commands
 40    SF_OR    =  0x20000000  // OR to the next command, by default AND
 41 
 42 // Index flags
 43    IF_DESC   = 0x10000000  // Descend order
 44    IF_END    = 0xFFFF      // End of the index list
 45 
 46 // Error codes
 47    GDE_OK     = 0   // No error
 48    GDE_GEDEXIST
 49    GDE_OPENFILE     // Cannot open file - filename in ged->dbfile
 50    GDE_WRITEFILE    // Cannot write file - filename in ged->dbfile
 51    GDE_FORMAT       // Format of database files is wrong
 52    GDE_READFILE     // Cannot read file - filename in ged->dbfile
 53 }
 54 
 55 // Database header
 56 type gedhead
 57 {
 58    uint     ext       // GED string
 59    ubyte    size      // Sizeof of the header structure
 60    uint     oversize  // Size of all header information
 61    ushort   numfields // Amount of columns
 62    ushort   autoid;    // The number of autoincrement field from 1
 63 }
 64 
 65 // Field init
 66 type gedfieldinit
 67 {
 68    uint   ftype
 69    uint   name
 70 } 
 71 
 72 // Database column info
 73 type gedfield
 74 {
 75    uint    ftype
 76    uint    name
 77    uint    width
 78    uint    offset
 79 }  
 80 
 81 type gedfields <inherit=arr index=gedfieldinit> 
 82 {
 83 }
 84 
 85 type ged 
 86 {
 87    uint         filename       // Name of database file
 88    uint         call           // gentee_call notify function
 89    uint         nfyparam       // The first parameter of gentee_call
 90    uint         error          // Error code
 91    uint         autoid         // The latest auto id for open 
 92                                // for create == autoincrement field from 1
 93 
 94    uint         head      // Database header
 95    uint         fields    // Pointer to columns info
 96    uint         db        // Pointer to the first record
 97    uint         handle    // Handle of the ged file
 98    uint         fsize     // The size of the field
 99    uint         reccount  // The count of records
100    uint         reccur    // The current record
101    uint         recptr    // The pointer to the record
102    uint         gm
103 }
104 
105 type gedsel
106 {
107    uint         pdb       // Database
108    uint         reccount  // The count of records
109    uint         reccur    // The current record from 1 
110    uint         sm
111 }
112 
113 import "ged.dll"<exe>
114 {
115    uint ged_append( ged, uint )
116    uint ged_close( ged )
117    uint ged_create( ged, uint )
118    uint ged_eof( ged )
119    uint ged_field( ged, uint )
120    uint ged_fieldptr( ged, uint, uint )
121    uint ged_findfield( ged, uint )
122    uint ged_getuint( ged, uint, uint )
123    long ged_getlong( ged, uint, uint )
124    float  ged_getfloat( ged, uint, uint )
125    double ged_getdouble( ged, uint, uint )
126    uint ged_goto( ged, uint )
127    uint ged_isdel( ged )
128    uint ged_open( ged )
129    uint ged_recno( ged )
130    
131    uint ges_select( gedsel, ged, uint, uint )
132    uint ges_close( gedsel )
133    uint ges_goto( gedsel, uint )
134    uint ges_recno( gedsel )
135    uint ges_eof( gedsel )
136    uint ges_reverse( gedsel )
137    uint ges_updateindex( gedsel )
138    uint ges_update( gedsel )
139 
140 /*   
141    uint ged_goto( uint, uint )
142    uint ged_records( uint )*/
143 }
144 
145 include 
146 {
147    "gedbase.g"
148    "gedfield.g"
149    "gedrecord.g"
150    "gedselect.g"
151 }
152