10. august 2005 - 17:51Der er
14 kommentarer og 1 løsning
Tomme felter fra view
Jeg har et underligt problem med udtræk fra et view (SQL Server 2K) på en ASP-side. Udtrækket er rigtigt nok (har prøvet det samme i query analyzer), men jeg får tomme felter returneret. Det kan vises i simpel form med nedenstående. Har I oplevet noget lignende?
Set rs = Conn.Execute("Select Felt From View")
' Hvis denne linie undlades, udskrives blanke værdier i løkken Response.Write rs("Felt")
While Not rs.EOF Response.Write rs("Felt") rs.MoveNext Wend
hmm, skal lige være med Hvis du laver en udskrift så udskrives løkken? Eller udskrives kun udskriften før løkken? For i såfald så må det jo være fordi den er EOF af en og anden grund
Jeg har i forbindelse med SQL Server og ADO oplevet at felter ikke indeholder noget når jeg aflæste dem (selvom jeg vidste de havde indhold i databasen). Dette skyldtes et bug i ADO, når man bruger den ifht. SQL Server. Workaround til dette problem er at aflæse data fra recordset'et i den rækkefølge felterne bliver trukket ud af recordset'et. Kan du evt. be- eller afkræfte om dette også er tilfældet for din siuation...?
"View" er et reserveret ord i SQL Server 2000 - det er derfor en rigtig dårlig ide at have en tabel som hedder "view". Specielt eftersom at et view er en slags pseudo-tabel. Jeg ved ikke om dette er forklaringen på dit problem, men jeg kan sagtens forstå hvis databasen bliver forvirret.
Mine views hedder heller ikke "view". Det var bare for at illustrere.
nielle -> Det er helt korrekt. Der er et recordsæt, men med første løsning får jeg fx. udskrevet 23, 87 og 72, mens anden løsning giver "", "" og "". Det virker tilmed lidt periodisk, og det forvirrer mig endnu mere, fordi af og til bliver nogle af felterne (Felt2, Felt3 etc.) faktisk udskrevet korrekt i løsning to.
Det gav ikke så meget at sætte navnene i rigtig rækkefølge. Der er stadig problemer, og det ser ud til, at det primært er valuta og integers, der volder problemer, og ikke bliver vist. Jeg har prøvet at typecaste valuta i udtrækket, men så forsvinder pludseligt nogle af de andre værdier, der var der før. Tekstfelter skal overføres til en variabel, før de kan vises.
Jeg kan slet ikke se noget system i fejlene. Det er en gang rod!
Jeg har fundet årsagen til alt det mystiske. Jeg skal bruge SQLOLEDB.1-provideren i stedet for MSSQL. Det stod faktisk smukt beskrevet på udbyderens side, men jeg har altid brugt den anden driver, der virker fint sammen med mine andre SQL-servere, så det skænkede jeg ikke en tanke.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.