Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Conditional Insert
Message
From
28/10/2015 19:13:41
 
General information
Forum:
Visual FoxPro
Category:
Other
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows 10
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Miscellaneous
Thread ID:
01626580
Message ID:
01626593
Views:
57
>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
Regards. Al

"Violence is the last refuge of the incompetent." -- Isaac Asimov
"Never let your sense of morals prevent you from doing what is right." -- Isaac Asimov

Neither a despot, nor a doormat, be

Every app wants to be a database app when it grows up
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform