webForumDet fria alternativet
Logga in / Bli medlem

Finns databas?

Databaser & SQL

14 svar · 316 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Trådstart#1

Hur kollar man om en databas i MySQL finns?

Medlem sedan dec. 200012 464 inlägg
#2

Show databases

Flyttas från ASP

Medlem sedan dec. 20011 860 inlägg
#3

Mer kod tack! Detta ska kollas i en aspsida!

Medlem sedan juni 20022 599 inlägg
#4
    Set rc = dinconnection.Execute("SHOW DATABASES LIKE 'dittdbnamn'")
    If rc.EOF Then
        'dittdbnamn fanns inte.
    Else
        'dittdbnamn fanns.
    End If
Medlem sedan dec. 20011 860 inlägg
#5

Tackar! Ska testa

Medlem sedan dec. 200012 464 inlägg
#6
q = "show databases like <dinDatabas>"

set rs = connect.execute(q)
if rs.eof then
  'databas finns ej
else
  'databas finns
end if
Medlem sedan dec. 20011 860 inlägg
#7

Skapa ny databas då?

Medlem sedan dec. 200012 464 inlägg
#8

Via ASP? Skapar databaser är väl inget man gör så där hux flux?

http://www.mysql.com/doc/en/CREATE_DATABASE.html

Medlem sedan dec. 20011 860 inlägg
#9

Så det går ej via Asp? Ska kolla sidan du gav länk till!

Medlem sedan dec. 20011 860 inlägg
#10
ShopName = "shop"

Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "driver=MySQL;server=localhost;uid=User;pwd=password;database=" & shopName

q = "show databases like " & ShopName

set rs = connect.execute(q)
if rs.eof then
  'databas finns ej
else
  'databas finns
end if

Denna kod ger fel på Conn.Open. Hur ska jag skriva där. VIll ha så den kollar om databasen finns. Annars skare stå att den ej finns alltså!

Medlem sedan juni 20022 599 inlägg
#11

För det första ska du ha måsvingar om drivernamnet i connectionstringen.
För det andra bör du inte ange databasnamnet i connectionstringen eftersom du då får ett error redan där om den inte finns:

Conn.Open "driver={MySQL};server=localhost;uid=User;pwd=password;"

För det tredje måste du använda apostrofer i queryn som jag visade ovan:

"SHOW DATABASES LIKE '" & ShopName & "'"
Medlem sedan dec. 20011 860 inlägg
#12

Hur ska man sen kunna öppna just den databasen om det ej står i connectionsträngen utan å ändra i aspkoden??

Medlem sedan juni 20022 599 inlägg
#13
if rs.eof then
  	'databas finns ej
else
	connect.execute("use " & ShopName)
	'Fortsätt använda databasen ShopName.
end if
Medlem sedan dec. 20011 860 inlägg
#14

Oki! Ska testa lite!

Medlem sedan juni 2002256 inlägg
#15

eftersom jag själv inte är någon hejjare på mySQL m.m, så löste jag det på mitt egna lilla vis.
Säkert inte helt anpassat till frågan, men jag lekte till det för framtida lösningar..

<%
Dim chkConn,user,pass,host,db,rs,dbExists,Connect

user 	= 	"username"
pass 	=	"password"
host	= 	"localhost"
db 	= 	"din_databas"

set chkConn = Server.CreateObject("ADODB.Connection")
chkConn.Open "Driver={MYSQL ODBC 3.51 Driver};server=" &host& ";uid=" &user& ";pwd=" &pass

dbExists = False
Set rs = chkConn.Execute("SHOW DATABASES")
If NOT rs.EOF Then
	Do Until rs.EOF
		If LCase(rs("database")) = LCase(db) Then
		dbExists = True
      Set Connect = Server.CreateObject("ADODB.Connection")
      Connect.Open "Driver={MYSQL ODBC 3.51 Driver};server=" &host& ";uid=" &user& ";pwd=" &pass& ";database=" &db

		' fortsätt
		' med
		' din
		' kod
		' med
		' "Connect"
		' som
		' din
		' databaskoppling

		End If
		rs.MoveNext
	Loop

	If NOT dbExists Then
	call createDB
	End If
Else
call createDB
End If

Sub createDB()
chkConn.Execute("CREATE DATABASE " &db)
End Sub

%>

funkade sött

263 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)