Results 1 to 9 of 9

Thread: Parameters bij een ClientDataSet met Interbase IBDataset

  1. #1
    Delphi & OO in Vlaanderen SamWitse's Avatar
    Join Date
    Sep 2007
    Location
    Brussel
    Posts
    833

    Question Parameters bij een ClientDataSet met Interbase IBDataset

    Beste Delphinisten,

    Ik heb een ClientDataset - DataSetProvider - IBQuery - IBDatabase
    De query in IBQuery is
    SQL Code:
    1. SELECT * FROM Art WHERE lasnam < :lasnam
    In ClientDataset maak ik at designtime een parameter genaamd lasnam, en geef die de waarde 'B'.
    Als ik de ClientDataSet active zet (at design-time, of at runtime), dan worden er mooi records opgehaald.

    Vervang ik nu de IBQuery door een IBDataset, met nét dezelfde query, dan wordt er geen enkel record opgehaald, en zie ik via de SQLMonitor dat de parameter :lasnam blanko blijft.

    Wat moet ik doen opdat de parameter van een ClientDataSet doorgegeven wordt aan een IBDataSet?
    Eén of andere diep verscholen property die GeefParametersDoor heet, en standaard op False staat?
    Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.

    Sam Witse.
    Delphi & OO in Vlaanderen

  2. #2
    Senior Member Thaddy's Avatar
    Join Date
    Dec 2004
    Location
    Amsterdam
    Posts
    2,211
    Stored procedure maken voor die parameterdoorgave. Dan werkt het zowel met dataset als query. (en als web interfacing nodig is bovendien veel veiliger)
    Werken aan Ansi support voor Windows is verspilde tijd, behalve voor historici.

  3. #3
    TDigitalTrain user Hans Brenkman's Avatar
    Join Date
    Mar 2002
    Location
    Weert
    Posts
    1,861
    Ik zou in ieder geval al n????it de naam van de parameter exact hetzelfde laten zijn als een veldnaam. Ik zet daar altijd een "p" voor.
    Testen kan niet de afwezigheid van fouten aantonen, slechts de aanwezigheid van gevonden fouten.

    Het is verdacht als een nieuw ontwikkeld programma direct lijkt te werken: waarschijnlijk neutraliseren twee ontwerpfouten elkaar.

  4. #4
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    Quote Originally Posted by Hans Brenkman View Post
    Ik zet daar altijd een "p" voor.

    Waarom?
    Wat is de zin daarvan?
    Is dat een geheim ritueel om de programmeergoden gunstig te stemmen?
    All methodologies are based on fear. -- Kent Beck.

  5. #5
    Waariom heb je die IBDataset nodig? Dat is toch al een soort ClientDataSet en query in één? Ik zou de laag zo licht mogelijk maken, dus proberen die IBQuery te gebruiken.
    Marcel

  6. #6
    TDigitalTrain user Hans Brenkman's Avatar
    Join Date
    Mar 2002
    Location
    Weert
    Posts
    1,861
    De "p" gebruik in om aan te geven dat het hier om een parameter gaat. Dit om (technische) verwarring te voorkomen zoals in het verleden wel eens variabelen gebruikt werden die ook als veldnaam in een tabel bestonden
    Het zal w.s. ook wel werken zonder de "p" maar persoonlijk wil ik het risico op mogelijke verwarring uit de weg gaan.
    Testen kan niet de afwezigheid van fouten aantonen, slechts de aanwezigheid van gevonden fouten.

    Het is verdacht als een nieuw ontwikkeld programma direct lijkt te werken: waarschijnlijk neutraliseren twee ontwerpfouten elkaar.

  7. #7
    Ja hoor, ik weet zeker dat het werkt. Ik gebruik bij voorkeur voor een parameternaam de veldnaam waar deze betrekking op heeft.
    Marcel

  8. #8
    Delphi & OO in Vlaanderen SamWitse's Avatar
    Join Date
    Sep 2007
    Location
    Brussel
    Posts
    833
    Quote Originally Posted by Marcel View Post
    Ja hoor, ik weet zeker dat het werkt.
    Neen, het werkt NIET !
    Tenminste, parameters van een CDS in een IBDataset gebruiken. Daar gaat het hier toch om?

    Ik heb zonder probleem de IBDataSet kunnen vervangen door een IBQuery, dus mijn probleem is omzeild. Maar ik vind het raar dat de IBDataSet zich niks aantrekt van parameters die in de CDS staan.
    Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.

    Sam Witse.
    Delphi & OO in Vlaanderen

  9. #9
    Sorry, mijn reactie was gericht op Hans.

    Ik ben het helemaal met je eens dat IBDataSet het zou moeten kunnen, maar ik denk dat je blij moet zijn dat het niet werkt . Volgens mij is het overkill om deze te gebruiken in combinatie met een ClientDataSet, de extra eigenschappen van de TIBDataSet overlappen nogal met die van de provider en ClientDataSet.
    Marcel

Thread Information

Users Browsing this Thread

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

Tags for this Thread

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
  •