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!
ADO vs. Access
7
1156
Vastaukset
- 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 IfMoikka
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 thenIf 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
Kuka oli töllöntyön tekijä?
Ketä on nyt pidätetty? Oliko syy mustasukkaisuus tyttöystävästä tai oliko muita lieventäviä seikkoja? Katuuko tekijä nyt464994Kotikasvatus siitä se lähtee eli missä meni vikaan että lapsesta tuli puukottaja
Ottakaa muut oppia, normaali kotielämä. Ei liikaa edes hengellisyyttä.632825Vihamielisyys naisia kohtaan on jo yllättävän suuri ongelma
Esiintyy laajemmassa mittakaavassa, mitä vain tällä palstalla. Mistä tuo ilmiö nyt oikein johtuu, ja saa alkuvoimansa?2441180Jenkkilahkojen kastekaava
Jenkkilahkojen yhteinen kastekaava on kirjoitettuna Mormonin Kirjaan, Moroni, luku-8 Pienten lapsien vanhempia uhataan1391104Odotan sitä hetkeä
kun nähdään taas. Tiedän, että sinäkin odotat. Kun se päivä koittaa, katseesi hakee minua. Ehkä arkailemme toisiamme väh711074Pasi Turunen: Ensimmäisenä Helluntaina ei kastettu sylivauvoja!
Tänään 31.5.2026 Pasi Turunen noin vastasi soittajan kysymykseen! Raamattu EI KERRO ketä kastettiin1611065- 1281038
Olen melko vakuuttunut
etten tule olemaan koskaan täysin onnellinen ilman sinua. En uskonut, että näin kävisi kenenkään kanssa. Kunnes sain kok72994- 137905
- 49894