To replace records in a database, put a [Replace] context into a template (alternately, you may use the Replace command from a URL or a FORM). Whenever WebDNA encounters a Replace, it immediately searches for the specified records in the database, and replaces those records' fields with the named field values inside the Replace.
Example (normally you would put the following text into a .tpl file on your server and use a web browser to link to it):
The database "SomeDatabase.db" opens and all records whose name field is "Grant" are found. The field names "name" is set to "John," "address" is set to "1492 Somewhere Lane," "zip" is set to "90000," and "date" is set to the current date. Notice that any WebDNA [xxx] tags inside the context are first substituted for their real values before being written to the database. The name of the database itself may also be an [xxx] tag, as in "[Replace db=[FormVarable]]".
Any field names not existing in the database are ignored, and if you leave some existing field names out of the replace context, they will remain unchanged in the database. Certain letters are illegal, such as <tab> or <carriage return>, so they are converted to <soft tab> and <soft return> before being added to the database. Some computers use the two-character sequence <carriage return><line feed> to indicate a single end of line, which is automatically converted to a single <soft return> character before being added to the database. These 'soft' characters are automatically converted back to 'hard' versions (the originals) whenever you retrieve fields from a search of the database.
You may specify an absolute or relative path to the database file, as in "/WebCatalog/GeneralStore/SomeDatabase.db" or "../SomeDatabase.db".
Parameter | Description |
---|---|
db |
path to database file, relative to this template. |
table |
New for WebDNA 5.x In place of a db file, you can specify a named reference to a WebDNA table object. |
SearchParameters |
Search information describing which records should be found and replaced. Can be any complex search criteria, works exactly like Search command or [Search] context. |
Append |
(Optional) "T" if you want a new record to be added to the end of the database in the case where no records were found to be replaced. Any fields you do not specify are left blank in the new record. |
autonumber |
(Optional) Instructs WebDNA to automatically generate the 'next highest number' value for the given fieldname. |
You can use the 'AUTONUMBER=' parameter with the [append]
or [replace] context to instruct WebDNA to automatically generate the 'next
highest number' value for the given fieldname. This is useful for 'ID' type
fields, where unique values are required.
Here is a demonstration of the AUTONUMBER feature using a WebDNA TABLE (of course
this will work on database files as well).
Example WebDNA code:
[table name=table_1&fields=ID,NAME,EMAIL][/table][append table=table_1&AUTONUMBER=ID]NAME=Scott&EMAIL=scott@here.com[/append]
[append table=table_1&AUTONUMBER=ID]NAME=Lee&EMAIL=lee@there.com[/append]
[append table=table_1&AUTONUMBER=ID]NAME=OMNI&EMAIL=omni@everywhere.com[/append]
[delete table=table_1&eqIDdata=2]
[append table=table_1&AUTONUMBER=ID]NAME=Lee&EMAIL=lee@there.com[/append]
[search table=table_1&neIDdata=[blank]]
[founditems]
[ID] - [NAME] - [EMAIL][/founditems]
[/search]
Results:
1 - Scott - scott@here.com
3 - OMNI - omni@everywhere.com
4 - Lee - lee@there.com
You can see that WebDNA automatically generated the ID value by calculating
the 'next largest value', given the existing ID values in the table.