>>Hi,
>>
>>I need to change the following SQL Insert such that if the cursor cViewName does not have a column FIELD1 (or any other), this column IS NOT included in the expression. Here is an example:
>>
>>
>>INSERT INTO (cViewName) (FIELD1, FIELD2, FIELD3) VALUES ( "", "", 0.00 )
>>
>>
>>I know I can do it with an IF ENDIF condition but I wonder if it can be done in one line.
>
>Hmm, you might be able to do something such as what JR suggests but it wouldn't be my first choice. SCATTER/GATHER can be elegant in a few situations but it has a couple of issues:
>
>- you can inadvertently step on existing memvar values unless you carefully manage their names
>- technique is not translatable or applicable to backends other than VFP native tables
>
>For the sake of future maintenance (including by yourself!) what I'd do:
>
>- If you just have 2 possible INSERT statements, run the correct one via IF...ENDIF as you suggest
>
>- If you have a few of them, use DO CASE...
>
>- If you have more than a few, or you feel the need to be generic, build your INSERT statement on the fly as Naomi suggests
JR's suggestion was overkill, IMHO. I ended up having just one IF ... ENDIF. Thank you for your input.
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham