Avatar billede hojben Novice
07. januar 2002 - 02:28 Der er 19 kommentarer og
1 løsning

Skriv til database

Jeg skal på www.vejs.dk ha lavet det sådan at IP og dato bliver gemt i en database. Det gør jeg med dette:

<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath(\"mindatabase.mdb\")
Conn.Open DSN
\' SQL sætning opbygges
strSQL = \"Insert into ip (ip) values(\'\" & Request.ServerVariables(\"REMOTE_ADDR\") & \"\')\"
strSQL = \"Insert into ip (tid) values(\'\" & tidogdate & \"\')\"

Conn.Close
Set Conn = Nothing
%>

Men der bliver intet smidt ind i databasen. I toppen af siden har jeg defineret <% tidogdate=now %>

Hva er der galt ?
Avatar billede hojben Novice
07. januar 2002 - 02:32 #1
jeg får heller ikke nogen fejl på siden...
Avatar billede keysersoze Ekspert
07. januar 2002 - 02:44 #2
fordi du mangler at udføre sql\'en;

<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath(\"mindatabase.mdb\")
Conn.Open DSN
\' SQL sætning opbygges
strSQL = \"Insert into ip (ip) values(\'\" & Request.ServerVariables(\"REMOTE_ADDR\") & \"\')\"
strSQL = \"Insert into ip (tid) values(\'\" & tidogdate & \"\')\"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>

Men der bliver intet smidt ind i databasen. I toppen af siden har jeg defineret <% tidogdate=now %>

Avatar billede hojben Novice
07. januar 2002 - 02:47 #3
lige så snart den sætning kommer med, så får jeg denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error \'80004005\'

[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key \'Temporary (volatile) Jet DSN for process 0x6f4 Thread 0x17c DBC 0x212ad44 Jet\'.

/Default.asp, line 376
Avatar billede hojben Novice
07. januar 2002 - 02:53 #4
jeg har defineret <% session.lcid=1030 %> så det hele går måske på at mit \"tid\" felt i databasen er forkert format?
Avatar billede keysersoze Ekspert
07. januar 2002 - 03:06 #5
det kommer jo an på hvilke felter der er hvad og hvordan... men umiddelbart ligner det en fejl fra din side; du har fx to sql-sætninger!

læs lidt mere her og kig specielt på kodeopbygningen; http://www.html.dk/tutorials/asp/lektion20.asp
Avatar billede hojben Novice
07. januar 2002 - 03:08 #6
Den første fejl var at:

The account that is being used to access the page does not have access to the HKEY_LOCAL_MACHINE\\SOFTWARE\\ODBC registry key.

MS\' løsning blev så udført men nu har jeg denne fejl.
Microsoft OLE DB Provider for ODBC Drivers error \'80004005\'

[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

/Default.asp, line 380
som er Conn.Execute(strSQL)
Avatar billede hojben Novice
07. januar 2002 - 03:09 #7
det er fra det link at jeg har forsøgt efter ;)
Avatar billede hojben Novice
07. januar 2002 - 03:31 #8
hehe der var vist nok noget med filrettigheder som nu er rettet. og i scriptet har jeg indsat Conn.Mode = 3

Og dato og tid bliver smidt ind men ip\'en kommer ikke med??
Avatar billede hojben Novice
07. januar 2002 - 03:34 #9
Conn.Mode = 3      \'3 = adModeReadWrite

for at være nøjagtig
Avatar billede bootie Nybegynder
07. januar 2002 - 06:34 #10
Du har to sql sætninger, men exekvere kun den ene af dem...
Lav en SQL eller exekvere dem begge.
Fx

strSQL1 = \"Insert into ip (ip) values(\'\" & Request.ServerVariables(\"REMOTE_ADDR\") & \"\')\"
strSQL2 = \"Insert into ip (tid) values(\'\" & tidogdate & \"\')\"

Conn.Execute(strSQL1)
Conn.Execute(strSQL2)

Så skulle begge SQL sætninger blive exekveret og IPen vil komme ned i databasen, men lav da bare kun een SQL istedet...

FX
strSQL = \"INSERT INTO ip ( ip, tid) VALUES (\'\" & Request.ServerVariables(\"REMOTE_ADDR\")&\"\' , \'\"& tidogdate& \"\')\"

Så skal der kun et Execute() statement til...

Avatar billede hojben Novice
07. januar 2002 - 06:39 #11
Godt man stadig kan blive klogere... Tak!
Avatar billede bootie Nybegynder
07. januar 2002 - 06:41 #12
Virkede det?
Avatar billede hojben Novice
07. januar 2002 - 06:45 #13
jeps... lækkert..
Avatar billede keysersoze Ekspert
07. januar 2002 - 10:43 #14
og det sagde jeg slet ikke - vel? ;)
Avatar billede hojben Novice
07. januar 2002 - 11:28 #15
keyser > du fortalte ikke at der skulle ha været 2 conn.execute\'s

;)
Avatar billede keysersoze Ekspert
07. januar 2002 - 11:43 #16
det var jo nok derfor jeg henviste til den hjemmeside skal du se :)
Avatar billede bootie Nybegynder
07. januar 2002 - 21:21 #17
Nej, hva\' keysersoze... mistede du lige 15 point der??
Det var da synd :(
Hold op med at whine! og svar ordenlig på spørgsmålet i første omgang. Så kunne det da være du havde fået dem.
Avatar billede keysersoze Ekspert
07. januar 2002 - 22:03 #18
jeg er såmen ligeglad med 15 point - jeg mener bare at man som spørger også gerne må arbejde lidt og problemet kunne let have været blevet løst ved at kigge på hvorfor det ikke virkede (det skrev jeg) og så en henvisning til en side hvor det let kunne løses ved at læse tutorialen ordentlig igennem sammen med at man sammenlignede det med ens eget...

det er ikke alle der gider dette, og det respekterer jeg - og hvis du så lægger mærke til min glade mund i mit forrige indlæg, så ville selv du - snæversynet som du er - jo nok se at det var en et indlæg uden ondsindede tanker

men selvfølgelig - selv jeg har jo været ung og desillusioneret og ikke kunnet se lyst på det...

og for at det nu skal være helt korrekt, så er det i dette tilfælde forkert at bruge 2x execute... men det er jo bare sikkert endnu et af mine hovedløse indfald :)
Avatar billede bootie Nybegynder
08. januar 2002 - 06:51 #19
Så vil jeg så oxe gerne lige i denne omgang gøre opmærksom på din snæversynethed, idet jeg faktisk opfordre manden til at lave een SQL istedet for 2.

Lig oxe lige mærke til at spørgeren IKKE havde fået løst problemmet EFTER at dit link var kommet med... det må vel kun vise at spørger behøver mere specifik hjælp, hvilket jeg gerne ville give ham.

Er der nu noget i vejen med at hjælpe *for meget*?
Avatar billede keysersoze Ekspert
08. januar 2002 - 11:09 #20
men at komme med én forkert løsning og en rigtig og så lade det være op til spørgeren hvad der skal bruges er lidt tosset - right?

der er skam ikke noget i vejen med at hjælpe for meget - havde du eller hojben gjort noget jeg ikke kunne lide (uanset om det var imod reglerne her eller ej) jamen... så skulle jeg såmen nok sige til. Det gjorde jeg ikke og jeg har altså accepteret det. Kan det være så svært at forstå? nej - vel?

EOD
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester