Page 1 of 2 1 2 LastLast
Results 1 to 15 of 22

Thread: Closed dataset

  1. #1
    Registered User
    Join Date
    Jul 2002
    Location
    Rotterdam
    Posts
    16

    Angry Closed dataset

    Hallo,

    Als beginnend delphi gebruiker kom ik een uitdaging tegen waar ik geen oplossing voor weet te vinden.
    Ben begonnen met het maken van een database in delphi een heb enkele relaties gemaakt tussen de verschillende tabellen. Zodra het programma getest wordt krijg ik de natuurlijk welbekende melding "cannot perform this operation on a closed dataset". Nu vind ik dit merkwaardig omdat de propertie ACTIVE op TRUE is gezet.
    Wat moet er nog meer gebeuren om de tabel als open te laten herkennen?

    Alvast bedankt voor een reactie.
    Marco

  2. #2
    Open je wel de goede dataset. Niet dat je toevallig Table1 opent en bv. een edit doet op Table2.....

    Joe nefer noow.....
    *Er bestaat geen bugs, alleen leerpunten*

  3. #3
    Registered User
    Join Date
    Jul 2002
    Location
    Rotterdam
    Posts
    16
    Ook al ben ik een startend Delphi gebruiker wil nog niet zeggen dat dit niet eerst gecontroleerd wordt voordat ik deze vraag plaats in een forum waar ook ervaren programmeurs zitten!
    Met andere woorden: Ja het is gelinkt aan de juiste database.

    Marco
    "De oplossing van een probleem veranderd de aard van het probleem"
    ================

    Sommige koeien zijn vergeten dat zij zelf ook een kalf geweest zijn!!

  4. #4
    Je moet de dataset van de betreffende tabel nog in de goede 'state' zetten.

    Kijk maar eens in de help naar TDataSet --> Methode 'Edit'.

    Daar moet je wel verder mee kunnen, anders zien we nog wel een post van je

  5. #5
    Yep.. wat Delphino zegt ...

    Alvorens je een actie doet moet je even controleren of je dataset.State in [dsInsert, dsEdit] staat, wanneer dit niet zo is krijg je de melding die jij kreeg, en dien je even DataSet.Edit() of DataSet.Insert() aan te roepen.

    A.
    ...There are 10 kinds of people in the world; those who understand binary, and those who don't....

  6. #6
    Senior Member walterheck's Avatar
    Join Date
    Oct 2001
    Location
    Belo Horizonte, Brasil
    Posts
    4,212
    Sorry jongens, maar dat is dus niet waar. als hij niet in de juiste modus staat krijg je de melding: "Dataset not in Edit or Insert Mode" dus hier is de dataset echt gesloten.

    voor ts: wanneer krijg je die melding precies? heb je code aan een evnt van de dataset of van de database hangen? zo ja, laat ff zien hier...
    als het een query is: heb je requestlive op true staan?
    Nee, de Romeinen spraken geen ISO-8859-1 LATIN

  7. #7
    Ik weet niet welke database je gebruikt, maar als je een Tdatabase op je datamodule hebt staan, moet je volgens mij ook connected nog op true zetten.

    Benno

  8. #8
    Registered User
    Join Date
    Jul 2002
    Location
    Rotterdam
    Posts
    16
    Ho heren,

    niet te snel ik ben iemand die wat Delphi betreft nog licht groen is!!!!!

    Ik heb mij dus bijna suf gezocht naar voor mij bruikbare danwel begrijpelijke informatie over TDataSet, maar er was volgens mij niet iets van toepassing.

    Eerst op het verzoek van Walterheck ingaan. Hieronder staat dus het stuk het onderstreepte gedeelte is waar het fout gaat:

    procedure TForm2.ItemsTableCalcFields(DataSet: TDataSet);
    var FindResultBoolean: Boolean;
    begin
    FindResultBoolean := PartsTable.FindKey([ItemsTablePartNum]);
    if FindResultBoolean then
    begin
    ItemsTableItemDescription.Value := PartsTableDescription.Value ;
    ItemsTableTotalPrice.Value :=
    PartsTableSellingPrice.Value * ItemsTableQTySold.value
    end;
    end;

    Kun je trouwens even het verschil uitleggen tussen de event aan een database of een dataset

    Het programma wordt in paradox gemaakt, dit houd toch in dat ik niets behoef te connecten!?

    Wat nu te doen door mij met jullie hulp!!
    "De oplossing van een probleem veranderd de aard van het probleem"
    ================

    Sommige koeien zijn vergeten dat zij zelf ook een kalf geweest zijn!!

  9. #9
    Om welke tabel gaat het?
    ItemsTable zal wel op active staan denk ik, anders wordt dat event niet getriggerd.

    Maar je PartsTable moet natuurlijk ook op active staan omdat je er een waarde uit opvraagt.

  10. #10
    Registered User
    Join Date
    Jul 2002
    Location
    Rotterdam
    Posts
    16
    Het gaat om de PartsTable en deze staat ook deze op active. Dat geeft dus een frustrerende reactie hoewel ik nog steeds de hoop heb om dit opgelost te krijgen.

    Aangezien het nog geen grote database is ben ik nog eens opnieuw begonnen maar het resultaat bleef gelijk!!!
    "De oplossing van een probleem veranderd de aard van het probleem"
    ================

    Sommige koeien zijn vergeten dat zij zelf ook een kalf geweest zijn!!

  11. #11
    Senior Member walterheck's Avatar
    Join Date
    Oct 2001
    Location
    Belo Horizonte, Brasil
    Posts
    4,212
    Ho heren,

    niet te snel ik ben iemand die wat Delphi betreft nog licht groen is!!!!!
    da's niet erg daar hebben we er meer van hier

    Ik heb mij dus bijna suf gezocht naar voor mij bruikbare danwel begrijpelijke informatie over TDataSet, maar er was volgens mij niet iets van toepassing.
    http://delphi.about.com/library/week...PM=ss12_delphi

    Eerst op het verzoek van Walterheck ingaan. Hieronder staat dus het stuk het onderstreepte gedeelte is waar het fout gaat:

    procedure TForm2.ItemsTableCalcFields(DataSet: TDataSet);
    var FindResultBoolean: Boolean;
    begin
    FindResultBoolean := PartsTable.FindKey([ItemsTablePartNum]);
    if FindResultBoolean then
    begin
    ItemsTableItemDescription.Value := PartsTableDescription.Value ;
    ItemsTableTotalPrice.Value :=
    PartsTableSellingPrice.Value * ItemsTableQTySold.value
    end;
    end;
    check of je wel je itemstable en je partstable open hebt staan, of er geen event ergens aan hangt dat je tabellen sluit..

    Kun je trouwens even het verschil uitleggen tussen de event aan een database of een dataset
    wat wil je nu weten? het verschil tussen een TDatabase en een TDataset-descendant?

    een TDatabase geeft je de mogelijkheid om (onder andere) je connectie centraal te doen. als jij 100 datasets hebt, met elk hun eigen geconfigureerde verbinding, en je moet je verbinding veranderen dan wordt dat lastig .als je die datasets echter naar je TDatabase laat verwijzen, en daar je connectie configureert, hoef je het slechts op een plaats te veranderen... (en er zijn nog veel meer voordelen,maar die lees je denk ik wel in die tut van hierboven...

    Het programma wordt in paradox gemaakt, dit houd toch in dat ik niets behoef te connecten!?
    het programma wordt niet in paradox gemaakt. dat is alleen maar de database. als je een tdatabase op je form zet en je vult alles in, moet je connected op true zetten. vervolgens moet je dat met een dataset ook doen voor je eruit kan lezen...
    Nee, de Romeinen spraken geen ISO-8859-1 LATIN

  12. #12
    Code:
    procedure TForm2.ItemsTableCalcFields(DataSet: TDataSet); 
    var FindResultBoolean: Boolean; 
    begin 
      FindResultBoolean := PartsTable.FindKey([ItemsTablePartNum]); 
      if FindResultBoolean then 
      begin 
        ItemsTableItemDescription.Value := PartsTableDescription.Value ; 
        ItemsTableTotalPrice.Value := PartsTableSellingPrice.Value * ItemsTableQTySold.value 
      end; 
    end;
    Hele simpele test :

    Zet een breakpoint op de eerste "begin". (F5 op de regel of voor de regel klikken), Run je applicatie en zodra die stopt op je breakpoint, Doe je F7 en type je "PartsTable.Active" en kijk je wat de uitkomst is, en dan type je "ItemsTable.Active" en bekijk je de uitkomst......

    Dus

    Trouwens wel een hele dikke kans dat de items tabel niet geopend is... Heb ik volgens mij ook als een last van gehad
    *Er bestaat geen bugs, alleen leerpunten*

  13. #13
    Senior Member Gizmo's Avatar
    Join Date
    Jan 2002
    Location
    KeeBee
    Posts
    151
    Kan het misschien ook liggen aan 't feit dat de twee tabellen in de verkeerde volgorde worden geopend?

    De Items-table moet al open zijn voordat de andere kan worden geopend, vermits deze OnCalcFields bevat (die verwijzen naar de table Items).



    Gizmo

  14. #14
    Registered User
    Join Date
    Jul 2002
    Location
    Rotterdam
    Posts
    16
    Zo'n beetje alle voorstellen geprobeerd maat tot nu nog geen werkend resultaat. De simpele test van knarf had ik ook reeds geprobeerd maar ook dat mocht niet helpen.
    Al het lesmateriaal heb ik te voorschijn getoverd niets heeft tot nu toe er voor gezorgd dat 't werkt.

    Hebben jullie nog ideën!? Dit moet voor de ervaren NLDELPHI-ers toch geen probleem zijn.
    "De oplossing van een probleem veranderd de aard van het probleem"
    ================

    Sommige koeien zijn vergeten dat zij zelf ook een kalf geweest zijn!!

  15. #15
    Hmm... misschien een idee om het projectje even online te dumpen, zodat er door de mensen thuis naar gekeken kan worden ?...

    A.
    ...There are 10 kinds of people in the world; those who understand binary, and those who don't....

Page 1 of 2 1 2 LastLast

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. cannot perform this operation on a closed dataset
    By niels666 in forum Databases
    Replies: 4
    Last Post: 15-Mar-04, 22:23
  2. Error afvangen met geneste dataset
    By EMBX in forum Databases
    Replies: 3
    Last Post: 07-Nov-03, 00:06
  3. closed dataset
    By ShortCut in forum Databases
    Replies: 3
    Last Post: 11-Mar-03, 18:11
  4. dataset state
    By Corny in forum Databases
    Replies: 7
    Last Post: 13-Jan-03, 16:46

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
  •