Ik heb een C++ Builder applicatie die allerlei gegevens gaat gaan bewaren in een Access databank.
Normaal gezien gebruik ik altijd een TListView om m'n gegevens die ik ophaal in een lijstje te tonen naar de gebruiker toe.
Omwille van performance redenen enzo gebruik ik nu echter een TDBGrid.
Die DBGrid is aan een request live query gekoppeld. De query gaat alle velden van een bepaalde tabel gaan ophalen.
Als ik een nieuw record ga gaan toevoegen mbhv die query, dan wordt dat nieuwe record niet in m'n DBGrid weergegeven, dus heb ik de TQuery::AfterPost handler volgende code gezet:
Als die code uitgevoerd wordt, krijg ik echter de fout
Ik kan die qryList->Refresh() wel gaan vervangen door
, maar is dit wel efficiënt?
Trouwens, als ik qryList->Refresh vervang door bovenstaande oplossing, dan werkt het goed totdat ik een 3-tal records heb toegevoegd. Na het toevoegen van het 4de record ofzo komt dat nieuwe record niet in m'n grid te staan als ik die query close en terug open.
Het record wordt wel toegevoegd in de DB en als ik door m'n grid 'tab', dan verschijnt dat record plots ook.
Normaal gezien gebruik ik altijd een TListView om m'n gegevens die ik ophaal in een lijstje te tonen naar de gebruiker toe.
Omwille van performance redenen enzo gebruik ik nu echter een TDBGrid.
Die DBGrid is aan een request live query gekoppeld. De query gaat alle velden van een bepaalde tabel gaan ophalen.
Als ik een nieuw record ga gaan toevoegen mbhv die query, dan wordt dat nieuwe record niet in m'n DBGrid weergegeven, dus heb ik de TQuery::AfterPost handler volgende code gezet:
code:
1
| qryLst->Refresh(); |
Als die code uitgevoerd wordt, krijg ik echter de fout
Hoezo de table is not uniquely indexed? M'n query haalt alle velden van de betreffende tabel op, ook de primary key. Die PK is een unique index (het is wel geen AutoNummering, maar een gewoon numeriek veld). Waarom klaagt hij daar dan over?Table does not support this operation because it is not uniquely indexed
Ik kan die qryList->Refresh() wel gaan vervangen door
code:
1
2
| qryList->Close(); qryList->Open(); |
, maar is dit wel efficiënt?
Trouwens, als ik qryList->Refresh vervang door bovenstaande oplossing, dan werkt het goed totdat ik een 3-tal records heb toegevoegd. Na het toevoegen van het 4de record ofzo komt dat nieuwe record niet in m'n grid te staan als ik die query close en terug open.
Het record wordt wel toegevoegd in de DB en als ik door m'n grid 'tab', dan verschijnt dat record plots ook.
https://fgheysels.github.io/