Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Buffer Modes
Message
 
À
27/10/1998 15:05:14
Nancy Folsom
Pixel Dust Industries
Washington, États-Unis
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Titre:
Divers
Thread ID:
00151073
Message ID:
00151440
Vues:
36
>Hmmm. I just did a quick select and CURSORSETPROP on the cursor, and I could set it to 1,2,3,4, and 5...

Let me throw in $.02 :) A SELECT statement does *not* create an updateable view. To get an updateable view with a select statement you need something like so:

**********HERE YOU SELECT YOUR FIELDS, ETC.

CREATE SQL VIEW "VUREPEATBILLINGHEADER" ;
AS SELECT Repeatbillingheader.idno, Repeatbillingheader.famseq, Repeatbillingheader.billbyparent, Repeatbillingheader.rbgroup, Repeatbillingheader.billbychild, Repeatbillingheader.noofkids, Repeatbillingheader.monday, Repeatbillingheader.tuesday, Repeatbillingheader.wednesday, Repeatbillingheader.thursday, Repeatbillingheader.friday, Namemaster.last_business_name, Namemaster.first_name FROM cp2000!repeatbillingheader LEFT OUTER JOIN cp2000!namemaster ON Repeatbillingheader.idno = Namemaster.idno WHERE Namemaster.last_business_name = ?m.mlast AND Namemaster.first_name = ?m.first


*********** HERE YOU SET THE UPDATE MODE FOR THE BASE TABLE--SEE LINE 8

DBSetProp('VUREPEATBILLINGHEADER', 'View', 'UpdateType', 1)
DBSetProp('VUREPEATBILLINGHEADER', 'View', 'WhereType', 3)
DBSetProp('VUREPEATBILLINGHEADER', 'View', 'FetchMemo', .T.)
DBSetProp('VUREPEATBILLINGHEADER', 'View', 'SendUpdates', .F.)
DBSetProp('VUREPEATBILLINGHEADER', 'View', 'UseMemoSize', 255)
DBSetProp('VUREPEATBILLINGHEADER', 'View', 'FetchSize', 100)
DBSetProp('VUREPEATBILLINGHEADER', 'View', 'MaxRecords', -1)
DBSetProp('VUREPEATBILLINGHEADER', 'View', 'Tables', 'cp2000!repeatbillingheader,cp2000!namemaster')
DBSetProp('VUREPEATBILLINGHEADER', 'View', 'Prepared', .F.)
DBSetProp('VUREPEATBILLINGHEADER', 'View', 'CompareMemo', .T.)
DBSetProp('VUREPEATBILLINGHEADER', 'View', 'FetchAsNeeded', .F.)
DBSetProp('VUREPEATBILLINGHEADER', 'View', 'FetchSize', 100)
DBSetProp('VUREPEATBILLINGHEADER', 'View', 'Comment', "")
DBSetProp('VUREPEATBILLINGHEADER', 'View', 'BatchUpdateCount', 1)
DBSetProp('VUREPEATBILLINGHEADER', 'View', 'ShareConnection', .F.)


************** THEN YOU DO THIS FOR EACH FIEDL IN THE VIEW

DBSetProp('VUREPEATBILLINGHEADER.idno', 'Field', 'KeyField', .F.)
DBSetProp('VUREPEATBILLINGHEADER.idno', 'Field', 'Updatable', .T.)
DBSetProp('VUREPEATBILLINGHEADER.idno', 'Field', 'UpdateName', 'cp2000!repeatbillingheader.idno')
DBSetProp('VUREPEATBILLINGHEADER.idno', 'Field', 'DataType', "C(10)")


Notice that nowhere are you asked about the buffer mode, but when you put the view in a dbc and add it to a forms data environment you are give two options for buffering. Optimistic row and optimistic table.

Now then, if you open up a view and try to change it's buffering to 1 or 2 you get the error message:

Views required either DB_BUFOPTROW or DB_BUFOPTTABLE.

Personally, I think using Pessimistic buffering in a multi-user environment is a mistake (but that's another discussion ;)
Ken Sorce
Team RAD, Inc.
Rapid Application Developers
Ken@TeamRAD.com
www.teamrad.com
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform