-
- Preview browser
- Page designer
- DQL editor
- Application wide settings
- Security settings
- Page caching module
- Modules
- Snippets
- Actions
- Context editor
- Task editor
- Scheduler editor
- Search engine editor
- Web server console
- Site layout editor
- Template editor
- Robots editor
- Style definitions
- Database manipulation
- Table designer
- Transfer editor
- Reporter
- Deployment module
- Deployment server settings
- Debugger
- .end
- .form header
- .form trailer
- .items
- assign
- application status
- backup db
- begin transaction
- break
- call menu
- call program
- case
- cluster by
- commit
- connect
- copy all from
- data-entry
- db status
- delete records
- define
- disconnect
- do
- documents
- exec SQL
- else
- end
- enter a record
- error messages off
- error messages on
- exit
- export
- for
- global
- if
- import
- imports
- in
- input using
- install application
- into
- list records
- lock
- lock db
- modify records
- message
- named
- others
- prompt
- query selection
- record entry
- records
- reorganize
- restore db
- rollback
- run procedure
- servers
- temp
- then
- tran off
- tran on
- unclustered
- unlock
- unlock db
- via form
- while
- with
- abs
- acos
- addressof
- ampm
- anylookup
- asin
- atan
- atan2
- ceil
- CHR
- concat
- ConsoleCopy
- ConsoleMemoCopy
- ConsoleShow
- ConsoleWriteToFile
- cos
- cosh
- date
- DatePicker
- day
- DEOS
- DialogOpen
- DialogOpenRelated
- DocumentCloseName
- DoesObjectExist
- ExecDQL
- ExecuteFile
- exp
- FileExecDQL
- firstc
- firstlast
- firstw
- FixedWidth
- floor
- futurevalue
- GetCurrent
- GetVar
- hours
- if
- installment
- jointext
- julian
- lastc
- lastfirst
- lastw
- length
- log
- log10
- lower
- MemoChunk
- MemoCopy
- MemoDecodePair
- MemoExecDQL
- MemoFind
- MemoGetGlobal
- MemoLength
- MemoMemoCopy
- MemoMemoReplace
- MemoReadFromFile
- MemoReplace
- MemoSetGlobal
- MemoStringBetween
- MemoStringFrom
- MemoStringTo
- MemoWordCount
- MemoWriteToFile
- midc
- midw
- minutes
- mod
- month
- OpenForm
- OpenMenu
- OpenProcedure
- OpenReport
- periods
- power
- presentvalue
- proper
- random
- rate
- RefreshForm
- RefreshScreen
- RefreshStatus
- Remote
- Remote authentication
- Remote POP3
- Remote IMAP
- Remote SMTP
- Remote XML
- seconds
- SetColor
- SetCurrent
- SetFocus
- SetLabelText
- SetMemoValue
- SetState
- SetStyle
- SetValue
- SetVar
- sin
- sinh
- spellcurrency
- spelldate
- spellmonth
- spellnumber
- spellweekday
- sqrt
- StringBetween
- StringEscape
- StringFind
- StringFrom
- StringReplace
- StringTo
- tan
- tanh
- textpos
- timeampm
- ToText
- UniqueID
- upper
- Wait
- weekday
- WriteToFile
- year
- yearday
- yearweek
- " (quotation marks)
- () (parentheses)
- + (addition)
- , (comma)
- - (subtraction)
- . (period)
- -- (comment)
- / (division)
- * (multiplication)
- * (asterisk)
- ? (question mark)
- ~ (tilde)
- : (colon)
- := (assignment operator)
- ; (semicolon)
- < (less than)
- <= (less than or equal to)
- = (equals)
- > (greater than)
- >= (greater than or equal to)
- all
- all files
- and
- any
- between
- blank
- count
- count of
- file
- highest of
- in groups
- in groups with group-totals
- in order
- in reverse
- item (Statistical)
- item (Conditional Statistical)
- lock files
- lock nothing
- lock records
- lookup
- lowest of
- max
- mean
- mean of
- min
- not
- number
- numeric string
- or
- pause
- percent
- selected record
- std.dev.
- std.err.
- sum
- sum of
- text
- time
- to
- variance
- window
- Rules for queries
- * (asterisk)
- ? (question mark)
- ~ (tilde)
- and
- or
- not
- ( ) (parentheses)
- Debug querys
- Livetext tags
- xdg3 query
- Sessions
- Pagination
- Free text search
- Intro on fields
- Text
- Hidden
- Date
- Dropdown
- List
- Checkbox
- Radio button
- Text edit
- Redactor (richtext)
- CKEditor
- TinyMCE
- Intro
- hasPrismConnection
- doAction
- doDerivation
- doMenuItem
- doPrismDerivation
- setFormField
- runPrismFunction
- @GetDefinition
- . document
- . listcommands
- . listdocuments
- . listdrives
- . listfiles
- . listfunctions
- . listinternals
- . listoperators
- . listrelated
- . listtables
- . object
- . table
- . testdql
- @SetDefinition
- . document
- . object
- Extra modules intro
- python
- Qt
- wkhtmltopdf
- PySide
- PyXCC
- django
- Apache
- LightTPD
- nginx
- pywin32
- flup
- cssutils
- Pillow
- psutil
- mysqldb
- psycopg2
- pyodbc
- python_dateutil
- requests
- suds-ews
- setuptools
- Whoosh
- wmi
- django-send
- bootstrap
- bootstrapmultiselect
- jquery
- jqueryui
- ckedit
- tinymce
- redactor
- JavaScript EU VAT Number Validation
- feedparser
- beautifulsoup
- appsdir
- six
- pycparser
- pyOpenSSL
- cryptography
- cffi
- enum34
- pyasn1
- idna
- ipaddress
- PyYAML
- coverage
- coveralls
- docopt
- mock
- funcsigs
- pbr
- nose
- paypalrestsdk
- paypal
- libcurl
- 7zipcpp
- cef
- cpp-jwt
ExecDQL
Function::Internal
ExecDQL
ExecDQL("DQL Script","Data-Entry Field1","Data-Entry Field2","Data-Entry Field3","Data-Entry Field3","Export File")
ExecDQL("delete records in MyTable.")
ExecDQL("for My Table with MyField=Data-Entry Field1 ; modify records My Field2=data-entry field2 .",To run a DQL script as a function from anywhere.
DQL is the most useful part of a DE application but it has had its limitations because it has been part of the DQL document (report). With ExecDQL we have liberated it, and you can now call a DQL from anywhere at anytime. It follow normal DQL syntax rules and it will generate an variable length export file if you include a file name as the last parameter (parameter 6).
Because it is a function you have to reference the Data-entry fields (transfered as parameter 2-5) with fixed names i.e Field1, Field2, Field3 and Field4. Other than that it is completely traditional DQL.
The ExecDQL has the GUI context of the document from where it is called, so you can read and manipulate the document from the DQL. This means that ExecDQL is not only a Data manipulating procedure it can also be a GUI manipulating procedure.
If you need more input variables than 4 you can simply pick them out of the Form you are calling the ExecDQL from with GetValue()
To make ExecDQL and other parts of DE8 more effective we have also introduced ESCAPE values in DE8 Strings.
Early in 8.0 we introduced CHR() to make it easier (possible) to use reserved letters in DE derivations and DQL etc. However it is a little awkward when you have to use ConCat() to joint things together for instance in a ExecDQL etc.
Ex.
ExecDQL(concat("message ", chr(34), "Hello world!",chr(34)," window.","","","","","")So now you can simply do this with the escape charcter for ".
Ex.
ExecDQL("Message /'Hello World!/' window .")The observant reader also see that we don't add all the "" at the end of the function. This is news in 8.2 too. We have introduced variable number of parameters to make the functions more user friendly.
Up to now you had to be exact with your parameters and that could be a chore when the only thing you wanted was to execute a small line of commands with no export, and no input.
You will still have to follow the numbers so if you want to include an export file for ExecDQL you will need to include 4 empty "" as parameters before the export file name, but if you only need two data-entry parameters you can now simply add the two and skip the 3 last parameters.
Parameters
DQL: (String)
Here you can write a DQL direct into the execdql. The length of the dql follow the same rules as any string added to input. It will be auto escaped if you not use any of the spesial formatting It can do anything a DQL can do and has the same format as any other DQL You can also add a field name read the information from a text or memo field. If you add raw: in the start of the text it will not be auto escaped. Iff you add file:filename it will read the dql from disk. If you add lable:lablename it will read it from a label. If you add @dqlname it will read the dql from $$DQLStore$$ table using DQLName field to lookup the script. If you use #number it will use DQLId to look up a numbered dql. The DQL will be stored in DQLScript field in the table. Same rules applied to Body execpt that is read from DQLBody field.
Data-Entry Field1: (String)
This is the parameter that you can reference inside the DQL script as Data-Entry field1.
Data-Entry Field2: (String)
This is the parameter that you can reference inside the DQL script as Data-Entry field2.
Data-Entry Field3: (String)
This is the parameter that you can reference inside the DQL script as Data-Entry field3.
Data-Entry Field4: (String)
This is the parameter that you can reference inside the DQL script as Data-Entry field4.
Export File: (String)
Body:
Here you can add a body format to generate output from the dql. It can take all the same input types as the DQL
ExecDQL was designed to cover two major flaws in the DQL hierarchy of DFW. Manipulation and export so if you add a file name her and a list records in the DQL it will create a CSV file with column headers where the columns are in the order you put them in the list records.
PS! It is extremely quick.
Returns/Result
Nothing
The setting for execdql @name and #id
DqlBodyField Gives the name of the memo field that is used for dql body in execdql using either @name or #id for looking it up. Default is "DQLScript". DqlCodeField Gives the name of the memo field that is used for dql code in execdql using either @name or #id for looking it up. Default is "DQLBody". DqlIDField Gives the name of the field that is used to lookup #id in execdql. The field have to be a numeric field. Default is "DQLId". DqlNameField Gives the field name used to lookup the @name used in execdql. The field have to be a text field. Default is "DQLName". DqlTableName Gives the execdql table name for @name and #number calling execdql. Default is "$$DQLStore$$". All of this has to be set in the [EXECDQL] section unless used in server as you can have one for each prefix set and set it direct into this section instead.