webForumDet fria alternativet

Sätta igång databaskoppling

ASP

21 svar · 798 visningar · startad av Gislaved.net

Medlem sedan juni 20001 521 inlägg
Frågan#1

Jag är helt grön på det här med IIS & ASP, tidigare har jag enbart sysslat med PHP på Apache, så ursäkta om jag ställer idiotiska frågor.

Jag har fått i uppdrag att installera en kopia av en existerande webbtjänst på en lokal server. Det ska fungera som en utvecklingsserver där tester av förändringar i koden ska kunna genomföras innan de publiceras.

Servern har Windows 2000 server, och jag har fått igång den såpass att den visar asp-sidor korrekt. Dock fixar den inte databaskopplingar. Med alla asp-filer fick jag en .mdb-fil som jag har öppnat i access och konstaterat att det är en databas.

När jag försöker köra en asp-fil med databaskoppling får jag felet

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
(Microsoft) (ODBC Driver Manager) Driver's SQLSetConnectAttr failed

Jag har gått in på Data sources under Administrative Tools och lagt till databasen under System DSN. Vad mer behöver göras? Var ska jag placera .mdb-filen? I conndb.asp som används för att ansluta till databasen anges ingen sökväg.

Medlem sedan juni 20001 521 inlägg
#2

Den här tråden kanske passar bättre i något annat forum? Så här ser koden ut i filen som visar felmeddelandet.

<%
ConnStr = "DSN=databasen;"

Set ado = Server.CreateObject("ADODB.Connection")
ado.open ConnStr
%>

Men den koden ska det inte vara några problem med eftersom den fungerar på servern.

Medlem sedan juni 200032 967 inlägg
#3

Har du samma MDAC på servern som lokalt? Ser ODBC-kopplingen likadan ut? Säker på att databasfilen finns där du angett, och att fil- / mapprättigheter är korrekta? Har du provat med en dsn-lös anslutning?

http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q168/3/36.asp&NoWebContent=1
http://www.connectionstrings.com/

mvh

Medlem sedan feb. 200112 078 inlägg
#4

Tråden passar nog, som Gisvlavet.net säger, bättre i ett annat forum. :)

Tråden flyttas från IIS, PWS till ASP, VBScript.

Medlem sedan juni 20001 521 inlägg
#5

@nders skrev:

Har du samma MDAC på servern som lokalt? Ser ODBC-kopplingen likadan ut? Säker på att databasfilen finns där du angett, och att fil- / mapprättigheter är korrekta? Har du provat med en dsn-lös anslutning?

Jag har tyvärr inte tillgång till den riktiga servern för att jämföra. Jag ska se om jag kan fixa ihop en DSN-lös koppling bara för att prova.

Vilka fil- och mapprättigheter är det som gäller?

Medlem sedan juni 200032 967 inlägg
#6

Användaren IUSR_xxxx ska ha rättigheter att skriva, läsa, ändra och skapa filer i mappen databasen ligger i.

mvh

Medlem sedan juni 20001 521 inlägg
#7

Användare, var ställer jag in det? Jag har bara en Administratör på burken (den är inte ansluten till internet).

Jag bytte ut conndb.asp mot följande kod

<%
Set Con = Server.CreateObject("ADODB.Connection") 
Con.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & _ 
Server.MapPath("databas.mdb")&";"
%>

Det medförde felet General error. Unable to open registry key 'Temporary (volatile) Jet DSN for proces 0x688 Thread 0x6c8 DBC 0x21019c4 Jet' Jag antar att det är något rättighetsproblem. Var ställer jag in dessa rättigheter?

Jisses, jag känner mig som värsta nybörjaren igen. Ganska trevligt att ge sig in på nya äventyr, faktiskt. :)

Medlem sedan juni 20001 521 inlägg
#8

Ah, det senaste felet berodde förmodligen på att jag hade access-databasen öppen i access samtidigt som jag försökte ladda sidan.

När jag stängde den fick jag istället "Unspecified error". Det blev jag inte så mycket klokare på.

/r Det var värst, jag får olika fel nästan varje gång jag provar. Just nu sitter jag med ett inloggningsformulär och när jag skriver in ett felaktigt lösenord får jag unspecified error, och när det är korrekt säger den Operation must use an updateable query..

Medlem sedan juni 200032 967 inlägg
#9

Ligger alltså databasen i samma mapp som filen som ska köra scriptet med databaskopplingen?

Rättigheterna är vanliga NTFS-rättigheterna, så du hittar dem genom att högerklicka i utforskaren.

mvh

Medlem sedan juni 20001 521 inlägg
#10

Ligger alltså databasen i samma mapp som filen som ska köra scriptet med databaskopplingen?

Japp, de ligger i samma mapp.

Jag tittade på rättigheterna, och det ser ut som om allt är korrekt.

Medlem sedan juni 200032 967 inlägg
#11

Ok. Om jag vore du skulle jag prova OLEDB-drivrutinen istället för den gamla Access-drivern. Börja med det. :-)

Antagligen får du då ett nytt felmeddelande, men det är vi intresserade av också. ;)

Medlem sedan juni 20001 521 inlägg
#12

Coolt, så här många felmeddelanden har jag inte fått på flera år. :) Tack för att du tar dig tid.

Jag använde koden för Access 2000 som finns på webeye.nu. Då får jag följande fel:

Microsoft JET Database Engine (0x80040e14)
Syntax error in FROM clause.
annanfil.asp, line 31

Det ser ju ut som om det är en felaktig kodning i den andra filen, men å andra sidan ser jag ju att koden fungerar på den riktiga webbservern.

Medlem sedan juni 200032 967 inlägg
#13

Då vill jag genast se SQL-frågan du använder. :)

mvh

Medlem sedan feb. 20032 027 inlägg
#14

Jag använder kopplingen

<%
Function connect()
	Dim objConn
	Set objConn = Server.CreateObject("ADODB.Connection") 
	objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= "& server.MapPath("/din databas.mdb") & ";"
	Set connect = objConn
End Function

set objConn = Connect()
%>

inkludera den här koden på varje sida som en includefil

för att se hämta data är det bara att köra <%=rs("din kolumn")%> efter att du har satt din sql-sats

Medlem sedan juni 20001 521 inlägg
#15

SQL-frågan skickades till @nders via PM, och han konstaterade att databasen var skumt uppbyggd, bland annat hade några tabeller reserverade namn. Hur de har fått detta att fungera tidigare vet jag inte. Jag löste det genom att byta namn på några tabeller.

Jag har bara en användare på burken, behöver man ha en användare som heter IUSR_xxxx också?

Medlem sedan feb. 200112 078 inlägg
#16

Gislaved.net skrev:

Jag har bara en användare på burken, behöver man ha en användare som heter IUSR_xxxx också?

Behöver gör du väl inte, men det är väl att föredra. Det är denna användare som besökaren personifieras med när denna besöker webbplatsen.

Dock, har du installerat IIS så skall den användaren finnas, vare sig du vill eller inte, om du inte tagit bort den själv.

Medlem sedan juni 20001 521 inlägg
#17

OveRRidE skrev:

Dock, har du installerat IIS så skall den användaren finnas, vare sig du vill eller inte, om du inte tagit bort den själv.

Då har jag nog antingen lyckats pilla bort användaren själv eller misslyckats kapitalt vid installationen. Jag kan ju ge mig på en ominstallation för att se om det löser problemet.

Medlem sedan feb. 200112 078 inlägg
#18

Det räcker ifall du ominstallerar IIS'en, så att du inte ominstallerar hela Windows bara. ;)

Du kan visserligen skapa användaren själv, men jag tror det är säkrast att ominstallera ifall nåt annat har gått snett.

Medlem sedan feb. 20001 590 inlägg
#19

Testa även att uppdatera till senaste MDAC'en finns på https://www.microsoft.com/data

Medlem sedan mars 20033 686 inlägg
#20

Microsoft JET Database Engine (0x80040e14)
Syntax error in FROM clause.
annanfil.php, line 31

Eh, va!? .php?

259 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)