Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Conditional Insert
Message
De
28/10/2015 19:13:41
 
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Windows 10
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Divers
Thread ID:
01626580
Message ID:
01626593
Vues:
58
>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
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform