Just nu i M3-nätverket
Gå till innehåll

Problem med databaskopplingen


BrumBulan

Rekommendera Poster

Jag har ett problem med databaskopplingen. Det blir ett felmeddelande om att databasen är skrivskyddad eller något sånt. Se http://www.mangoolio.com/databas/

 

i filen add.asp har jag denna kod.

 

<% Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "driver={Microsoft Access Driver (*.mdb)};http://www.mangoolio.com/databas/adressbok.mdb"

 

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

Addera = "SELECT * FROM adressbok"

 

RecSet.Open Addera, Connect

RecSet.AddNew

 

RecSet("Fornamn") = Request.Form("fornamn")

RecSet("Efternamn") = Request.Form("efternamn")

RecSet("Adress") = Request.Form("adress")

 

RecSet.Update

RecSet.Close

Connect.Close %>

 

 

Kan någon hjälpa mig! Jag tror inte att det är något större fel.

 

Länk till kommentar
Dela på andra webbplatser

Hej, om vi utgår från att databasen inte är skrivskyddad, så kan jag bara tipsa dig om att inte använda "http://-adress" när du gör en sådan koppling. Den används tydligen bara till hårddiskar.

 

I övrigt kan jag rekommendera att du använder dig av "adovbs.inc" samt "adOpenStatic, adLockOptimistic". Precis som det står i lektionen jag antar att du följer;

http://www.idg.se/webstudio/pub/article.asp?id=116

 

Vet du inte vilken hårddisk/adress din plats på webhoteller ligger kan du använda dig av "Server.MapPath". Typ så här:

[color="#0000ff"]Set[/color] Connect = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Connection"[/GRÅ])
Connect.Open [GRÅ]"driver={Microsoft Access Driver (*.mdb)};[b]dbq="[/GRÅ]& [FET]Server[/b].MapPath([GRÅ]"\[i]DittKonto[/i]\databas\adressbok.mdb"[/GRÅ][/FET])

 

Lycka till!

 

Länk till kommentar
Dela på andra webbplatser

Det stämmer helt och hållet. Jag har provat med att bara ha adressbok.mdb istället för hela adressen. Ingeting fungerar, och vad jag kan se så är inte databasen skrivskyddad.

 

Jag testar ditt förslag!

 

Tack!

 

Länk till kommentar
Dela på andra webbplatser

Ditt förslag fungerade inte heller.

 

Error Type:

ADODB.Connection.1 (0x800A0BB9)

The application is using arguments that are of the wrong type, are out of acceptable range, or are in conflict with one another.

/databas/add.asp, line 6

 

 

Länk till kommentar
Dela på andra webbplatser

<!-- #include virtual="/databas/adovbs.inc" -->

<%

Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("mangoolio.com/databas/adressbok.mdb")&";"

 

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

Addera = "SELECT * FROM adress"

 

RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

RecSet.AddNew

 

RecSet("Fornamn") = Request.Form("fornamn")

RecSet("Efternamn") = Request.Form("efternamn")

 

RecSet.Update

RecSet.Close

Connect.Close %>

 

 

 

Länk till kommentar
Dela på andra webbplatser

Hej igen. Testa att ändra

Connect.Open [GRÅ]"driver={Microsoft Access Driver (*.mdb)};dbq="[/GRÅ] & [b]Server[/b].MapPath([GRÅ]"mangoolio.com/databas/adressbok.mdb"[/GRÅ])&[GRÅ]";"[/GRÅ]

till

Connect.Open [GRÅ]"driver={Microsoft Access Driver (*.mdb)};dbq="[/GRÅ]& [b]Server[/b].MapPath([GRÅ]"mangoolio.com\databas\adressbok.mdb"[/GRÅ])

 

Länk till kommentar
Dela på andra webbplatser

Det fungerar fortfarande inte....

 

När jag kör filen via IIS så är den skrivskyddad.

När jag kör den via Internet så är felmeddelandet:

 

Error Type:

ADODB.Connection.1 (0x800A0BB9)

The application is using arguments that are of the wrong type, are out of acceptable range, or are in conflict with one another.

/databas/add.asp, line 6

 

Länk till kommentar
Dela på andra webbplatser

Hej igen.. Hrmm.. Vet inte riktigt vad det där kan bero på. Läste någonstans att servern måste vara IIS, men det var nog själva applikationen som det var support för (ett forum).

Testade att peta upp lektionen på den webservern som jag hyr plats på och det fungerar. Koden ser ut så här:

<html>

<!-- #include virtual=[GRÅ]"/joel/idg/databas/adovbs.inc"[/GRÅ] -->

[MÄRK]<%[/MÄRK]	[color="#0000ff"]Set[/color] Connect = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Connection"[/GRÅ])
Connect.Open [GRÅ]"driver={Microsoft Access Driver (*.mdb)};dbq="[/GRÅ]& [b]Server[/b].MapPath([GRÅ]"\joel\idg\databas\adressbok.mdb"[/GRÅ])

resten är oförändrat efter nedladdning av exempelfilerna.

så här ser mappstrukturen ut på mitt hotell;

Kontonamn

->joel

--->idg

------>databas

jag skrev alltså fel till dig innan ang. att skriva kontonamn i "Server.MapPath". Sorry.

i mappen Kontonamn\joel\idg\databas ligger databasen "adressbok.mdb" och filen "adovbs.inc".

I mappen Kontonamn\joel\idg ligger filerna "default.asp" och "add.asp".

 

Kanske kan hjälpa till lite?

 

[inlägget ändrat 2005-05-30 19:40:53 av Joel Sundberg]

Länk till kommentar
Dela på andra webbplatser

Skåningen

Hejsan jag har för mig det är

"/" och inte "\"

Och sen har du glömt en viktig sak så det är det som har gjort att det inte fungerar.

efter

koden ska du ha med

& ";"

 

 

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("\joel\idg\databas\adressbok.mdb")

 

är felaktig du ska ha

 

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("/joel/idg/databas/adressbok.mdb") & ";"

har du lösenord till din databas ska du skriva så här.

 

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("/joel/idg/databas/adressbok.mdb") & ";pwd=Ditt Lösenord"

 

/Du kan alltid nå mig via skolans växel.

 

Länk till kommentar
Dela på andra webbplatser

Jag fick inte det att fungera... Vet inte vad felet kan vara.

 

Error Type:

ADODB.Connection.1 (0x800A0BB9)

The application is using arguments that are of the wrong type, are out of acceptable range, or are in conflict with one another.

/databas/add.asp, line 4

 

Jag funderar på att börja om på ny kula

 

Tack för all hjälp!

 

Länk till kommentar
Dela på andra webbplatser

Skåningen

Vilken ver av Access använder du?

OM du inte använder Access utan MySQL så kan det vara det också som är fel.

Såg att du skrev samtidigt som jag skrev. Men vet inte om du han läsa mitt inlägg.

Lägg ut koden för databaskoppling och även objektet skapelse.

Så ska vi se om vi kan lösa det till dig.

 

/Du kan alltid nå mig via skolans växel.

 

Länk till kommentar
Dela på andra webbplatser

Jag får det ändå inte att fungera. Vet inte vad det är som spökar..

 

Min mappstruktur är:

www.mangoolio.com

->databas

-->add.asp, default,asp, advobs.inc, adressbok.mdb

 

Här är min kod:

 

<html>

<!-- #include virtual="databas/adovbs.inc" -->

<%

Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("/databas/adressbok.mdb") & ";"

 

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

Addera = "SELECT * FROM adressbok"

 

RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

RecSet.AddNew

 

RecSet("Fornamn") = Request.Form("fornamn")

RecSet("Efternamn") = Request.Form("efternamn")

 

RecSet.Update

RecSet.Close

Connect.Close %>

 

Följande uppgifter har nu lagts till i databasen:<p>

 

Förnamn:<br><b><% =Request.Form("fornamn") %></b><p>

Efternamn:<br><b><% =Request.Form("efternamn") %></b><p>

Adress:<br><b><% =Request.Form("adress") %></b><p>

 

Lägg till <a href="../databas/default.asp">fler poster i adressboken</a>.

 

</html>

 

Länk till kommentar
Dela på andra webbplatser

Jag använder mig av Access 2002, Office XP.

 

Jag testade det du skrev, men fick ändå inte ordning på det...

 

Jag skrev precis ett inlägg med hela min kod, Jag vet inte riktigt vad som kan vara fel.

 

Länk till kommentar
Dela på andra webbplatser

Skåningen

Kan du se vilken kod som ligger på rad 6?

Det du också kan göra för felsöka på ett

bra sätt?

Skriv vid rad

response.end

 

funkar det utan felmedleande?

flytta ner response.end till nästa rad.

Får du felmedleandet då?`

Om Ja! Då ligger felet i din koden som är ovanför response.end på så sätt kan du se vilken kod du har som felet uppstår.

t.ex

 

<%

set con = create.object("adodbconnection")

response.end

'' du får inge felmedleande. Koden är rätt ända ner till den här raden.

%>

 

 

<%

set con = create.object("adodb.connection")

 

set rst = con.execute("select * from tabell where värde ='" Värde "'")

response.end

%>

Nu får du felmedelande. Då ligger felet i set rst = con raden.

Hur vet jag det? Jo jag fick inget felmedelandet på set con = create raden

på så sätt kan man felsöka rad för rad.

Om du får raden som felet ligger i och kan lägga in koden här (enbart den rad som felet anropar att det är fel på)

Så kan vi se lite lättare på just en speciel rad, om det är fel där.

 

/Du kan alltid nå mig via skolans växel.

 

Länk till kommentar
Dela på andra webbplatser

Det är denna raden som det är fel på.

 

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("/databas/adressbok.mdb") & ";"

 

Jag ska testa med response.end

 

Länk till kommentar
Dela på andra webbplatser

felsökte mig fram med hjälp av response.end och kom fram till att felet låg på rad 5.

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("/databas/adressbok.mdb") & ";"

 

 

Länk till kommentar
Dela på andra webbplatser

Skåningen

Har du hemsidan på din dator eller har du det hos ett webbhotel?

 

/Du kan alltid nå mig via skolans växel.

 

Länk till kommentar
Dela på andra webbplatser

Skåningen

OM det är hos din webbhotel har du läs och skrivrättigheter i mappen databas.

Har du asp filen i databas mappen eller i en annan mapp?

 

/Du kan alltid nå mig via skolans växel.

 

Länk till kommentar
Dela på andra webbplatser

Jag har sidan på min egna webplats. www.mangoolio.com

Sedan ligger alla filer i en undermapp som heter databas. där ligger både asp-filerna och databasen ihop.

 

Länk till kommentar
Dela på andra webbplatser

jag har skapat en egen mapp som jag döpt till databas.

 

 

Det ligger andra mappar som heter typ vti_bin, vti_cnf, vti_log, vti_pvt, vti_txt.

 

 

Länk till kommentar
Dela på andra webbplatser

Jag läste på mitt webhotell nu att jag inte har stöd för Access databaser, utan bara för MySQL.

 

Jag har B-one som webhotell.

 

Länk till kommentar
Dela på andra webbplatser

Skåningen

Det är dumt. Hade du t.ex haft http://box.se t.ex så hade du haft Access stöd och 1 konto på 10-20 Mb för MySql.

Kolla upp där och se vad du tycker om det där kanske bättre?

 

/Du kan alltid nå mig via skolans växel.

 

 

PS! Då är inget fel i din kod. förutom att du hade glömt & ";" resten stämde.DS!

.

 

Länk till kommentar
Dela på andra webbplatser

Skåningen

Ett tips ha bara databas i databas mappen. Ha asp filer i 1 mapp och ha undermapp om det är en tjänst på sidan t.ex lunarstorm.

 

huvud information (huvusodan det som kommer när du går in där)

Sen lägger du en mapp t.ex när användaren loggat in.

 

Datbas mapp

huvd sida med mapp.

undersida med mapp.

funktion 1 på undersidan

funktion 2 på undersidan

 

på så sätt håller du mer rätt på filken fil som går till vilket osv.

 

 

 

/Du kan alltid nå mig via skolans växel.

 

Länk till kommentar
Dela på andra webbplatser

Jo, det är sant.. Men hemsidan jag jobbar med just nu ska inte ligga på min server utan på kundens. Kollade precis upp deras och dem har stöd för Access. Jag får jobba via IIS och sedan lägga upp filerna på deras server.

 

Tack för all hjälp!

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...