Results 1 to 7 of 7

Thread: manual post dbgrid

  1. #1
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747

    manual post dbgrid

    Standaard staat de post op dbgrid automatisch op auto. Als je dus een record edit /insert en naar de volgende record gaat, wordt deze opgeslagen.
    Maar ik zal graag willen dat dit handmatig gaat, zodat je op een knop moet drukken om 'geforceerd' te kunnen posten

    Ik heb wel een site gevonden waar e.v.t. het antwoord staat, maar om $12 uit te geven voor 1 vraag is een dure grap.
    Delphi is great. Lazarus is more powerfull

  2. #2
    Een DBgrid doet niets anders dan een post van de dataset.

    Dus probeer eens:
    Code:
    MijnDataSet.Post;

  3. #3
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    [QUOTE=Dees;247823]Een DBgrid doet niets anders dan een post van de dataset.

    Dat weet ik wel, maar als je iets wijzigt in een column of je maakt een nieuw record aan en je gaat met je cursor naar boven of onder, wordt het record automatisch gepost en dat wil ik nu juist niet.
    Delphi is great. Lazarus is more powerfull

  4. #4
    Standaard staat de post op dbgrid automatisch op auto
    Dat is de AutoEdit van de DataSource die daar verantwoordelijk voor is. Ik weet niet precies waarom je dat zou willen, maar je zou nadat de DataSet state in Insert, Edit mode is gekomen de autoedit uitzetten alleen dan kun je je velden niet meer wijzigen.

    Maar waarom mag het grid wel de edit/insert regelen maar niet de post? (In geval van een ClientDataSet zal er toch eerst nog een ApplyUpdates moeten worden uitgevoerd voordat het daadwerkelijk in de database terecht komt).

  5. #5
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Ik heb inderdaad gespeeld met de autoedit en is niet prettig. Want als je handmatig op een 'edit button' drukt, moet je nog steeds op een veld klikken om het te activeren alvorens te wijzigen.
    In principe wil ik de edit /insert wel regelen, maar is niet echt van toepassing. Wat wel van toepassing is, is dat de gebruiker geen wijzigingen doorstuurt voordat hij/zij daadwerkelijk alles heeft gecontroleerd wat er naar de tabel wordt gestuurd. Als de 'auto' postin dbgrid uitstaat, heeft dus gebruiker de tijd daarvoor en kan dan zelf de gegevens naar de tabel sturen door op de 'post' button te klikken (of een F-toets).
    Als je met DBedit de zaken regelt, moet je ook zelf op de 'post' butten klikken om de gegevens naar de tabel te sturen.
    Delphi is great. Lazarus is more powerfull

  6. #6
    Als je met DBedit de zaken regelt, moet je ook zelf op de 'post' butten klikken om de gegevens naar de tabel te sturen.
    Daar is het control dus niet voor gemaakt. Klinkt een beetje lullig maar ik denk niet dat je dit zonder vieze hacks gaat bereiken met een gewoon DBGrid. Je zou in de beforepost van je dataset kunnen vragen of de gebruiker zeker weet dat de gegevens in de tabel moeten worden opgeslagen.

    Zelf bewerken onze klanten "bijna" noooit (in een hoogst uitzonderlijk geval wel) in een DBGrid. Echter dan regelt de de DBGrid hooguit de post naar de ClientDataSet en staat het dus alsnog niet in de tabel. Als je bij ons een regel wilt bewerken, dan dien je een record te selecteren en op F2 te drukken (of dubbelklik) of hoe dan ook. Er komt dan een scherm met DBEdits.

  7. #7
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Ik ben bang dat je gelijk hebt, Dees.
    Ik gebruik dan ook alleen maar de dbgrid bij 'eind' tabellen. Relatief doen ze niet veel dan alleen maar data accepteren.
    Delphi is great. Lazarus is more powerfull

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •