webForumDet fria alternativet

Finns databas?

14 svar · 314 visningar · startad av Asa

AsaMedlem sedan dec. 20011 860 inlägg
#1

Hur kollar man om en databas i MySQL finns?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Show databases

Flyttas från ASP

AsaMedlem sedan dec. 20011 860 inlägg
#3

Mer kod tack! Detta ska kollas i en aspsida!

nikoMedlem 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
AsaMedlem sedan dec. 20011 860 inlägg
#5

Tackar! Ska testa

LarsGMedlem 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
AsaMedlem sedan dec. 20011 860 inlägg
#7

Skapa ny databas då?

LarsGMedlem 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

AsaMedlem sedan dec. 20011 860 inlägg
#9

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

AsaMedlem 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å!

nikoMedlem 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 & "'"
AsaMedlem 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??

nikoMedlem 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
AsaMedlem sedan dec. 20011 860 inlägg
#14

Oki! Ska testa lite!

DenkanMedlem 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

127 ms totalt · 3 externa anrop · v20260731065814-full.1211964f
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)