04. april 2012 - 01:19Der er
4 kommentarer og 1 løsning
Ændringer Microsoft.ACE.OLEDB.12.0
Jeg har tidligere haft en classic asp side kørende på en 32 bit server (Win 2000), hvor jeg med succes har lavet nedenstående query til en access-db vha. Microsoft.Jet.
Set Conn = server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("log.mdb") strSQL = "Select * from Tabel1 Where dato LIKE '%" & datotilsog & "%'" Set rs = Conn.Execute(strSQL) Do Response.Write rs("beskrivelse") & "<br>" rs.MoveNext
Loop While Not rs.EOF
Conn.Close Set Conn = Nothing
Siden er nu flyttet til en 64 bit server (Win 2008) og jeg har installeret 64 bit versionen af Microsoft Access Database Engine 2010 Redistributable, samt ændret provideren i min connection string til Provider=Microsoft.ACE.OLEDB.12.0
Queries til access-db fungerer fint på den nye server, bortset fra når jeg prøver ovenstående kode, hvor jeg søger på dato i et dato/klokke felt. Serveren returnerer fejl 500 (har desværre ikke mulighed for at se den detaljeret fejlkode lige pt., da jeg sider ved en anden computer og kun har adgang til wwwroot mappen på serveren).
Er der ændret noget i den nye OleDB driver eller i wildcard funktionen?
Uden en fejlmeddelelse bliver det svært at gætte sig til - men det mest normale når nu du kan lave forespørgsler er, at der mangler skriverrettigheder enten direkte på databasen eller i mappen hvori den ligger. På mange webhoteller får man tildelt en specifik db-mappe med de nødvendige rettigheder.
Det kan med sikkerhed siges at det ikke er rettighederne og placeringen af mdb som den er galt med, da jeg personligt har sat (iss)serveren op lokalt her i firmaet, og da jeg ikke har problemer med at læse og skrive/redigere i databasen via ASP, dog kun når jeg bruger ovennævnte stykke kode, hvor der sammenlignes med datoer i DATETIME feltet i mdb.
Lande/Dato og tidsindstillingerne er sat til dansk lokalt på serveren dd-mm-yyyy og LCID er sat til 1030 i koden. Den nævnte kode har som sagt virket fint på en win2000 32 bit server og med Jet OLEDB 4.0.
Tænkte at der måske kunne være noget med dato queries ved brug af ACE.OLEDB (64 bit), som er anderledes.
det kan kun blive ved gættende - du må kunne få en reel fejlmeddelelse fra en log eller lignende. hvis ikke må du prøve at fange fejlen i din ASP og udskrive på skærmen.
Ja kan godt se problemet, må få IT-bossen til at oprette et fjernskrivebord, så jeg kan kører localhost istedet for og få de detaljerede fejlkoder istedet.
Men tak for hjælpet keyser, smider du lige et svar?
Jeg skal selvfølgelig ikke kunne afvise at der er en dato-problematik, men hvis koden er lavet rigtigt bør det ikke være tilfældet. Det kan dog hurtigt testes med en opdateringsforespørgsel hvor datoer ikke indgår.
Men som sagt - få en reel fejlmeddelelse :)
Synes godt om
Ny brugerNybegynder
Din løsning...
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.