Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
View with buffered table
Message
From
21/10/1997 14:33:25
Bob Lucas
The WordWare Agency
Alberta, Canada
 
 
To
21/10/1997 14:03:25
General information
Forum:
Visual FoxPro
Category:
Other
Miscellaneous
Thread ID:
00055762
Message ID:
00055830
Views:
33
>>>>>>>I have a grid based on a view.
>>>>>>>When the user click on the new command button, the system display a modal form for him to enter the information.
>>>>>>>After the modal form is closed, a INSERT-SQL is done in the buffered table, a Requery() is perfomed on the view and the grid is refreshed.
>>>>>>>My problem is that the grid doesn't show the new record until the new record is commited to the table.
>>>>>>>I want the grid to show all records, buffered or not.
>>>>>>>How can I do that?
>>>>>>
>>>>>>You can APPEND new record to view only without Insert-SQL to underlying table. This case (I assume you use Table buffering) you will see non-commited record in grid, although it's not in table yet.
>>>>>
>>>>>I can't append the view, because:
>>>>>A) The view don't have all the fields of the original table
>>>>>B) The view is based on joined tables and only one need to be updated
>>>>
>>>>For the A clause, it doesn't matter if you don't have all the fields but, you must
>>>>have all the fields that represents the primary key of the table.
>>>>For the B clause, If you want to append just 1 table. You should check the update
>>>>checkbox for only the fields of the desired table.
>>>
>>>I included all the fields in the view and made them all updatable (except for the fields of the other table).
>>>Then, I issued an APPEND on the view and REPLACEd the fields.
>>>
>>>Guess what? It's worst! Now, not only I don't see the added record in the grid, it's never commited to the table!
>>>
>>>I guess the view will commit the change on the next TABLEUPDATE(), but I don't want to issue it right now because the user can still revert it's change at this time.
>>>
>>>Maybe I will look at the BEGIN/END TRANSACTION commands.
>>>
>>>Is this my only alternative?
>>
>>Did you Grid.Refresh after Append the record? You should give some credit to MS Foxpro team, most of things they do all right.
>
>Yes, I did a Grid.Refresh() after the APPEND

I believe your problem is with the Requery(). If you do the requery it will go back to the database and run the query again. You can add records to the view and refresh the grid. Just don't requery until you want a new result set. When you have finished adding records you can do your tableupdate or tablerevert.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform