ADO vs. Access

MRA

Pientä apua pyydetään. Kun lähetän parametrinä sql-lausekkeen ASP-sivulla Recordset objektille käyttämällä metodia Open ja sql lausekkeessa käytän LIKE avainsanaa ADO:lla yhtään tulosta ei synny mutta kun kokeilen aivan samaa kyselyä suoraan Accessista, toimii loistavasti. Mikä on pielessä, onko se ODBC-ajuri vai ADO:n dll joka tuottaa ongelmia? Apuva!

7

1162

    Vastaukset 7

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • aspisti

      Moikka

      Et ilmeisesti saa minkäänlaista virheilmoitusta mistään???

      Laita koodi, mitä tarkoitat, niin katsotaan mitä sieltä löytyy.

      T.Aspisti

      • MRA

        Ei tule minkäänlaista virheilmoitusta, vaan recordset-objekti ei palauta yhtään tulosta kun taas Accesissa tuloksia löytyy.

        Homma toimii tähän tapaan:

        Set rec = Server.CreateObject("ADODB.Recordset")

        rec.Open sqllauseke, dsnyhteys

        If Not (rec.BOF And rec.EOF) Then
        'koodia
        Else
        Response.Write "Ei tietueita"
        End If


      • aspisti
        MRA kirjoitti:

        Ei tule minkäänlaista virheilmoitusta, vaan recordset-objekti ei palauta yhtään tulosta kun taas Accesissa tuloksia löytyy.

        Homma toimii tähän tapaan:

        Set rec = Server.CreateObject("ADODB.Recordset")

        rec.Open sqllauseke, dsnyhteys

        If Not (rec.BOF And rec.EOF) Then
        'koodia
        Else
        Response.Write "Ei tietueita"
        End If

        Moikka

        Tarkasta, missä järjestyksessä muodostat ja availet yhteyden, recorsetin ja missä laitat sql-kyselyn sekä sql-lauseen syntaksi. jos noi ovat varmasti oikein niin sitten mietis mitä toi If lause tarkoittaa

        If Not (rec.BOF And rec.EOF)
        Jos ei ole(rec.alussa ja rec.lopussa)

        Voivatko molemmat ehdot täyttyä jos tietueita löytyy???

        En tiedä mitä oikein olet tekemässä, mutta
        muuttaisin If;iä sillai että ensimmäinen ehto pois, eli laittaisin näin

        If Not rec.EOF then


      • MRA
        aspisti kirjoitti:

        Moikka

        Tarkasta, missä järjestyksessä muodostat ja availet yhteyden, recorsetin ja missä laitat sql-kyselyn sekä sql-lauseen syntaksi. jos noi ovat varmasti oikein niin sitten mietis mitä toi If lause tarkoittaa

        If Not (rec.BOF And rec.EOF)
        Jos ei ole(rec.alussa ja rec.lopussa)

        Voivatko molemmat ehdot täyttyä jos tietueita löytyy???

        En tiedä mitä oikein olet tekemässä, mutta
        muuttaisin If;iä sillai että ensimmäinen ehto pois, eli laittaisin näin

        If Not rec.EOF then

        If Not (rec.BOF And rec.EOF)

        tarkoittaa että kursori ei osoita tyhjään, eli tuloksia löytyy 1..N kappaletta, mutta asia ei liity tähän koska käytän tätä kontrollia aina ja se toimii. Sql-lauseke on oikein kuten aiemmin sanoin ja se toimii Accessissa. dsnyhteys -muuttuja on oikein muodostettu koska samaa muuttujaa käytän monessa muussa yhteyden luonnissa ja niissà se toimii. Siispä ihmeteltäväksi jää miksi kysely ei palauta tuloksia ADO:lla vaikka kaikki tuntuu olevan kondiksessa.


      • Ellit
        MRA kirjoitti:

        If Not (rec.BOF And rec.EOF)

        tarkoittaa että kursori ei osoita tyhjään, eli tuloksia löytyy 1..N kappaletta, mutta asia ei liity tähän koska käytän tätä kontrollia aina ja se toimii. Sql-lauseke on oikein kuten aiemmin sanoin ja se toimii Accessissa. dsnyhteys -muuttuja on oikein muodostettu koska samaa muuttujaa käytän monessa muussa yhteyden luonnissa ja niissà se toimii. Siispä ihmeteltäväksi jää miksi kysely ei palauta tuloksia ADO:lla vaikka kaikki tuntuu olevan kondiksessa.

        Kerro kuitenkin se SQL-lause. ADO ja ODBC asettavat tietyt SQL-asetukset kuten SET ANSINULL ON/OFF, näin ainakin SQL Serverillä. Erityisesti kiinnostaa mitä on LIKE:n jälkeen, pitäisi olla jotakin näin:

        SELECT * FROM Customer WHERE FirstName LIKE 'Elli%'

        -lainausmerkit eivät välttämättä kelpaa (riippuu asetuksista), käytä heittomerkkejä
        -Huomaa % lopussa, driver / ADO saattaa täyttää kentän välilyönneillä, eli ilman prosenttia näin:
        ... LIKE 'Elli ' ja sitten pitää tietty olla oikea määrä välilyöntejä.


      • Ellit
        Ellit kirjoitti:

        Kerro kuitenkin se SQL-lause. ADO ja ODBC asettavat tietyt SQL-asetukset kuten SET ANSINULL ON/OFF, näin ainakin SQL Serverillä. Erityisesti kiinnostaa mitä on LIKE:n jälkeen, pitäisi olla jotakin näin:

        SELECT * FROM Customer WHERE FirstName LIKE 'Elli%'

        -lainausmerkit eivät välttämättä kelpaa (riippuu asetuksista), käytä heittomerkkejä
        -Huomaa % lopussa, driver / ADO saattaa täyttää kentän välilyönneillä, eli ilman prosenttia näin:
        ... LIKE 'Elli ' ja sitten pitää tietty olla oikea määrä välilyöntejä.

        Niin tuossa jälkimmäisessä stringissä eivät näy loppuun laittamani apaut 40 välilyntiä:

        ... LIKE 'Elli______________________________'


      • MRA
        Ellit kirjoitti:

        Kerro kuitenkin se SQL-lause. ADO ja ODBC asettavat tietyt SQL-asetukset kuten SET ANSINULL ON/OFF, näin ainakin SQL Serverillä. Erityisesti kiinnostaa mitä on LIKE:n jälkeen, pitäisi olla jotakin näin:

        SELECT * FROM Customer WHERE FirstName LIKE 'Elli%'

        -lainausmerkit eivät välttämättä kelpaa (riippuu asetuksista), käytä heittomerkkejä
        -Huomaa % lopussa, driver / ADO saattaa täyttää kentän välilyönneillä, eli ilman prosenttia näin:
        ... LIKE 'Elli ' ja sitten pitää tietty olla oikea määrä välilyöntejä.

        Homma toimii kiitos vaan avusta. Microsoft Jet-ajurilla kuitenkin käytetään %-merkkiä eikä *-merkkiä jolla Accessissa toimii Like-komento.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. 124
      1385
    2. Costa Rica on tympeän makuinen kahvi

      Ostin kahvin hinnan romahduksen kunniaksi Costa Rican "Premium Blendiä". Piti olla sataprosenttista arabialaista. No ain
      Maailman menoa
      86
      1267
    3. Hei, voitko kuunnella

      Voisitko auttaa minua selvittämään asioita? En halua ajaa sinua hulluuteen kanssani, en sitoa sinua, en esittää vaatimu
      Ikävä
      141
      1249
    4. Joku porukka lähtenyt täältä

      Ihmeen hiljainen on palsta nyt. Yleensä tänne tulvii aloituksia yms, mutta nyt on kyllä erikoisen hiljaista.
      Ikävä
      242
      1160
    5. Se kun olit pitkästä aikaa silmieni edessä

      Oli kyllä sykähdyttävää. Tiedätkö, mikä laittaa minut ikävöimään sinua? Kun palautan mieleeni valtavan ihanan olemuksen,
      Ikävä
      57
      1036
    6. 65
      939
    7. Tuletko tänään

      Jos soitan? Niin... tuletko?🖤
      Ikävä
      83
      881
    8. Vieläkään ei voi opiskella kursseja korkeakoulussa?

      Vaikka lakiin tehty muutos hän ei saanut opiskella työttömyystuella. https://yle.fi/a/74-20244925
      Työttömyys
      14
      862
    9. Onkin niin, että olet hulluna minuun

      mutta et uskalla sitä tuoda ilmi. Salaa haaveilet kiihkeästä suhteesta, vaan siihen se jää, ja syyksi esteet ja muut. S
      Ikävä
      42
      710
    10. Mitä on mietteissäsi

      Tänään?
      Ikävä
      65
      687
    11. Nyt ei enää ole

      Mitään mikä pitäisi mut hiljaa, kaikesta. Tämä on muutamalle henkilölle täällä.
      Ikävä
      42
      610
    12. Hämmentävä hetki: TTK:sta pudonnut Johanna Puhakka lataa pettyneenä: "Sitä ei voi kieltää"

      Johanna Puhakka ja Jurijs Jurza Trosenko tippuivat Tanssii Tähtien Kanssa -kisasta. Suositussa viihdeohjelmassa nähtiin
      Tanssii tähtien kanssa
      15
      568
    13. Taidan luopua

      Sinusta.
      Ikävä
      33
      554
    14. Mikä on hulluinta?

      Mitä ikäväsi kohde on tehnyt?
      Ikävä
      32
      549
    15. Jälleen näin nainen unta sinusta

      Aika usein tulet uniini, enkä tiedä, mitä se tahtoo minulle sanoa. Tällä kertaa en ollut kotonasi, vaan ulkona jossain t
      Ikävä
      28
      539
    16. Et taida olla ihan varma

      Päätöksestäsi?
      Ikävä
      65
      508
    17. En haluaisi sanoa tätä

      Mutta olet sokea sille, mitä sinulla jo on! Jos minä olisin sinä, pyrkisin tekemään kaikkeni kohentaakseni nykyistä pari
      Ikävä
      39
      495
    18. En olis uskonu

      et kuulut tollaseen porukkaan
      Ikävä
      86
      483
    19. Et siis halua

      Kansssani mitään
      Ikävä
      29
      479
    20. Meiltä löytyy kyllä älliä

      Vai mitä oot mieltä...
      Ikävä
      92
      475
    Aihe