[Bruce Eckel]
I'm trying to write a ZSQL method that will do a general update to a record. I started out attempting to do what I thought was the 'normal' thing:
update Table set name1='value1', name2='value2', name3='value3' [...] where id='idvalue';
I wanted to use dtml to automatically build a statement that would only assign values if new values existed. The problem with this is the commas: you have to have commas between the assignments, but you can have a comma after the last assignment. And I couldn't figure out how to conditionally insert the commas.
Just for fun I came up with this approach. The key is to have a dictionary that returns a comma when you pass it a "1". It's a lot cleaner than all that conditional logic. This has been tested and works. The example displays the string "A,B,C". <dtml-let yesno="{0:'',1:','}"> <dtml-let L="['A','B','C']"> <dtml-let num="_.len(L)-1"> <dtml-in L> <dtml-var "_['sequence-item']+yesno[_['sequence-index']<num]"> </dtml-in> </dtml-let> </dtml-let> </dtml-let> Cheers, Tom P