Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Thought process
Message
 
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Titre:
Thought process
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Windows 10
Database:
MS SQL Server
Divers
Thread ID:
01658136
Message ID:
01658136
Vues:
116
Hi everybody,

I need a bit of help to figure out how to change my old application.

I have a few questions.

First problem is, as always, trying to figure out a good name for a property. We changed our database structure. I want this application to work with both databases (old and new), so first I need a property that will tell me what kind of DB it is. Here is my current code
if '[4.6.50' $  oAppObj.DbVersion
I think having some boolean property will be better than repeat this condition in various methods - but I am stuck on naming the property :(

The second problem is much more complex.

In the original DB structure we stored address and email and phone information directly in the table (say, guests, accounts, vendors, etc.)

In the new DB we switched to use Contacts table (Addresses, Emails, PhoneNumbers + linking tables).

It presents me now with the problem for that particular application which is called import. The idea is to have an Excel file with information populated and the way I processed it was opening SQL tables into local dbfs, making them updateable and then insert data, etc.

Say, this is how my vendors table was originally populated:
insert into i_vendor (full_name, Contact, address, address2, ;
		City, State, Zip, E_mail,  area_code, Phone, ;
		check_bx1, check_bx2, check_bx3, check_bx4, check_bx5, ;
		number_1, number_2, number_3, number_4, number_5, ;
		text_1, text_2, text_3, text_4, text_5, ;
		date_1, datetime_1, memo_1, operator, salespoint, date_time, ExternalID) ;
		values (csrVendors.full_name, csrVendors.Contact, csrVendors.address, csrVendors.address2, ;
		csrVendors.City, csrVendors.State, csrVendors.Zip, csrVendors.Email, csrVendors.area_code, csrVendors.Phone, ;
		inlist(proper(csrVendors.check_bx1),'Yes','1','True','T'), ;
		inlist(proper(csrVendors.check_bx2),'Yes','1','True','T'), ;
		inlist(proper(csrVendors.check_bx3),'Yes','1','True','T'), ;
		inlist(proper(csrVendors.check_bx4),'Yes','1','True','T'), ;
		inlist(proper(csrVendors.check_bx5),'Yes','1','True','T'), ;
		csrVendors.number_1, csrVendors.number_2, csrVendors.number_3, csrVendors.number_4, csrVendors.number_5, ;
		csrVendors.text_1, csrVendors.text_2, csrVendors.text_3, csrVendors.text_4, csrVendors.text_5, ;
		csrVendors.date_1, csrVendors.datetime_1, csrVendors.memo_1, oAppObj.OpCode, ;
		oAppObj.salespoint, datetime(), csrVendors.ExternalID)

	thisform.nInserted = thisform.nInserted + 1
Now I need to insert into multiple tables, but how would I get the autoincremented Ids without actually saving the info first? Should I probably generate SQL script here instead?

Appreciate some helpful ideas in advance.
If it's not broken, fix it until it is.


My Blog
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform