Avatar billede kashmir0999 Nybegynder
23. december 2008 - 12:27 Der er 11 kommentarer og
1 løsning

sti til database

Jeg har en database på surftown, som jeg skal lave en ASP forbindelse til. Har jeg ret i at jeg skal bruge stien til databasen for at kunne gøre dette?
Jeg har prøvet at finde stien, men det er helt umuligt. Der står intet om det på surftowns support side. De har dog en string man kan bruge:

<% @ LANGUAGE = VBSCRIPT %>
<html>
<head><title>ASP MySQL Test</title></head>
<body>
  <%
  dim connectionString
  dim connection
  dim rs

  connectionString = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=servernavn; DATABASE=databasenavn; UID=brugernavn; PWD=password"

  set connection = Server.CreateObject("ADODB.Connection")
  set rs = Server.CreateObject("ADODB.Recordset")

  connection.Open connectionString
  rs.ActiveConnection = connection

  rs.Open "SELECT * FROM test ORDER BY 'Name'"
  Response.write("<p><ul>")
  while (not rs.EOF)
    Response.write "<li>" & rs.fields(1).value & "</li>"
    rs.MoveNext
  wend
  Response.write("</ul></p>")

  rs.Close
  connection.Close
  %>
</body>
</html>

Denne virker dog ikke (jeg har sat de rigtige info ind).
Jeg er ret ny i det her, men så vidt jeg har forstået skal jeg bruge stien til databasen, hvilket også virker meget logisk. Er der nogle der kender en metode eller ved hvor surftown placerer databaserne ville jeg blive utrolig glad (sidder temmelig meget fast i mit projekt hvis jeg ikke finder ud af det).

På forhånd tak!
Avatar billede keysersoze Guru
23. december 2008 - 12:38 #1
Access er en fil-database og derfor benytter du en sti til at forbinde til den med - MySQL er en server-database og du kan derfor ikke benytte en sti, men server-navn. Det eksempel du har fundet er derfor helt rigtigt - du skal bare bytte server, database, uid (brugernavn) og pwd (password) med dine egne oplysninger hvilket du formentlig har fået i din oprettelsesmail fra surftown.
Avatar billede keysersoze Guru
23. december 2008 - 12:39 #2
hvis du ikke allerede har gjort det skal databasen oprettes først; http://wiki.surftown.dk/index.php/MySql_Database_Oprettelse
Avatar billede kashmir0999 Nybegynder
23. december 2008 - 12:45 #3
det har jeg gjort... Når jeg så åbner siden i en browser får jeg denne fejl:

Error Type:
ADODB.Recordset.1 (0x80004005)
SQLState: S Native Error Code: 2002 [TCX][MyODBC]Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
/forsog/test.asp, line 16

?
Avatar billede kashmir0999 Nybegynder
23. december 2008 - 12:54 #4
hov.... jeg har lige set en ting der skal laves om...
"rs.Open "SELECT * FROM test ORDER BY 'Name'""

Har jeg ret i at min database skal hede "test" hvis det skal virke?
Avatar billede kashmir0999 Nybegynder
23. december 2008 - 12:59 #5
nej... det virkede ikke
Avatar billede keysersoze Guru
23. december 2008 - 13:07 #6
nej - database-navnet skal du kun bruge i din connectionstring. navnet test er en tabel i databasen. Hvis du sidder lokalt og tester kan fejlen skyldes at de ikke giver lov til at connecte udefra, ellers bruger du de forkerte informationer.
Avatar billede kashmir0999 Nybegynder
23. december 2008 - 13:11 #7
okay... så tror jeg næsten jeg har den. Jeg har åbnet min IP til ekstern database adgang og så skal jeg bare skifte "test" ud med en tabel i min database. Rigtigt?
Avatar billede keysersoze Guru
23. december 2008 - 19:01 #8
jeg kender ikke mulighederne hos surftown hvad angår adgang udefra - men ellers ja, din sql skal tilpasses hvor test er tabelnavn og name er et kolonnenavn.
Avatar billede kashmir0999 Nybegynder
25. december 2008 - 13:19 #9
min string ser sådan her ud : (password er slettet)


<% @ LANGUAGE = VBSCRIPT %>
<html>
<head><title>ASP MySQL Test</title></head>
<body>
  <%
  dim connectionString
  dim connection
  dim rs

  connectionString = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=mydb4.surf-town.net; DATABASE=com4ce_kundekartotek; UID=com4ce_michael; PWD="

  set connection = Server.CreateObject("ADODB.Connection")
  set rs = Server.CreateObject("ADODB.Recordset")

  connection.Open connectionString
  rs.ActiveConnection = connection

  rs.Open "SELECT * FROM test ORDER BY 'Name'"
  Response.write("<p><ul>")
  while (not rs.EOF)
    Response.write "<li>" & rs.fields(1).value & "</li>"
    rs.MoveNext
  wend
  Response.write("</ul></p>")

  rs.Close
  connection.Close
  %>
</body>
</html>

Jeg har en tabel jeg kalder "test" og en kolonne jeg kalder name. Jeg får følgende fejl når jeg åbner siden i firefox:

Error Type:
Active Server Pages, ASP 0141 (0x80004005)
The @ command can only be used once within the Active Server Page.
/forsog/test.asp, line 8

hvad er der i vejen?
Avatar billede kashmir0999 Nybegynder
25. december 2008 - 13:24 #10
hov.... den her fejl i firefox..

Error Type:
ADODB.Recordset.1 (0x80004005)
SQLState: S Native Error Code: 2002 [TCX][MyODBC]Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
/forsog/test.asp, line 17
Avatar billede victor22 Nybegynder
25. december 2008 - 14:28 #11
Du skal rette Connections fil -- og i din lokal opsætningen til at være til Host site..
Du skal også ændre i filens

Når du oprettet en Mysql databaser fra din udbyder - fremsender de til dig en brugernavn og en Kode.. disse skal du angive i både connectionsfil og den side du ønsker at teste med.
Avatar billede keysersoze Guru
09. april 2009 - 01:06 #12
lukketid?
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
Computerworld tilbyder specialiserede kurser i database-management

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