EASY is a programming language used by TdbEngine.
It is a scripting language which merges elements of CeeLanguage, BasicLanguage and PascalLanguage, with main intense on CGI output creation and of course database querying. It is less powerful as any of these languages but still allows complex database applications to be realized with it.
Code-Examples
PROCEDURE saveMarks(db : INTEGER; cDest : STRING) : INTEGER VAR hdl : INTEGER VAR aMarks : TBITS[] InitArray?(aMarks[FileSize?(db)]) GetMarks?(db, aMarks) IF hdl:=F_Create(cDest)>0 THEN F_Write(hdl,aMarks); F_Close(hdl) END RETURN NBits(aMarks) ENDPROCThis code snippet is a very simple example for a quite complex issue: Storing a selection result (= a bit mask) in a binary file for later re-use.
PROCEDURE HandleSearch VAR user_selection : STRING VAR db, zeile : INTEGER VAR Formatstring : STRING Subst('#action#',ParamStr?(0)) user_selection:=CGIGetParam('selection') Subst('#selection#',user_selection,1) SetPara?('ec 1') IF db:=OpenDB('database/address.dat')=0 THEN Subst('#hits#','Database NOT found') ELSE IF FindAndMark?(db,user_selection)=0 THEN Subst('#hits#','No matches') ELSE Formatstring:='#Name# #Firstname# #PLZ# #Ort#<br>' SortMark?(db,'Name,Firstname') zeile:=FirstMark?(db) WHILE zeile DO ReadRec?(db,zeile) Subst('#hits#',Formatstring+'#hits#') Subst('#Name#',db,'Name',1) Subst('#Firstname#',db,'Firstname',1) Subst('#ZIP#',db,'ZIP',1) Subst('#City#',db,'City',1) zeile:=NextMark?(db,zeile) END Subst('#hits#','') END CloseDB(db) END ENDPROC PROCEDURE Main CGIWriteLn('content-type: text/html') CGIWriteLn('') LoadTemplate?('templates/addresssearch.html') HandleSearch CGIWriteTemplate ENDPROCThis is a simple example of a query on a database for certain addresses matching a user input as for example 'Name LIKE "Mill*"' '
A complete list of all functions and language specifiers can be read here: http://www.tdbengine.org/programm/o.prg?pos=9&lan=en