Классическое соединение ASP/ADO с базой данных с помощью GoDaddy
Я пытаюсь подключиться через классический asp к ресурсу базы данных на веб-странице, которую я разрабатываю, используя GoDaddy в качестве службы хостинга, параллель plesk в качестве панели управления и для управления моей базой данных. GoDaddy предлагает мне страницу phpmyadmin.
Вот код, который я нашел, я должен был использовать:
<%
Dim oConn
Dim qry
Dim connectstr
Dim db_name
Dim db_username
Dim db_userpassword
Dim db_server
Dim oRs
Dim fieldname
Dim tablename
db_server = "XXX"
db_name = "XXX"
db_username = "XXX"
db_userpassword = "XXX"
fieldname = "XXX"
tablename = "XXX"
connectstr = "Driver={SQL Server};SERVER=" & db_server & ";DATABASE=" & db_name & ";UID=" & db_username & ";PWD=" & db_userpassword
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open(connectstr)
qry = "SELECT * FROM " & tablename
oRS = oConn.Execute(qry)
Do until oRs.EOF
Response.Write(ucase(fieldname) & ": " & oRs.Fields(fieldname))
oRS.MoveNext
Loop
oRs.Close
oRs = nothing
oConn = nothing
%>
Однако я не мог заставить это работать. [Вот полученная веб-страница, доступная через мой браузер] ( http://i.imgur.com/Cg3lnPv.png)
Для меня это выглядит как синтаксическая ошибка, но я вроде проверил ее и ничего плохого не вижу.
Я боролся с этим в течение 5-10 дней, и сейчас я застрял. Любая помощь будет оценена.
ДОБАВЛЕНО: Я поговорил со службой технической поддержки GoDaddy, и мне сообщили, что они вообще не блокируют меня.
РЕДАКТИРОВАТЬ: я также попробовал этот код
Set strConnString=Server.CreateObject("ADODB.CONNECTION")
connect = "Provider=SQLOLEDB;Data Source=XXX;UID=XXX; PWD=XXX; database=XXX;"
strConnString.ConnectionString = connect
strConnString.Open
strConnString = nothing
но он не работает Это отчаяние.
Строка, которая дает проблемы, является той, которая открывает соединение с базой данных, с обоими кодами. То есть oConn.Open(connectstr)
с первым способом и strConnString.Open
со вторым.
2 ответа
Если у вас есть PHPMyadmin для редактирования вашей базы данных, то ваша база данных MySQL, а не SQL-сервер
Строки подключения для v3.51 драйвера можно найти здесь
http://www.connectionstrings.com/mysql-connector-odbc-3-51/
и для v5.1 здесь
http://www.connectionstrings.com/mysql-connector-odbc-5-1/
Очевидно, что более поздняя версия лучше, но я видел несколько вопросов, которые предполагают, что GoDaddy все еще использует более старый v3.51. Есть лучшие классические хосты ASP даже на бюджетном уровне.
РЕДАКТИРОВАТЬ
У вас есть дружественные сообщения об ошибках asp включены. Это легко сделать, если у вас есть RDP-соединение, но вы не можете сделать это самостоятельно, если у вас есть только Plesk, так что вам нужно будет отправить их техподдержку по электронной почте. Во всяком случае, некоторые строки, чтобы попытаться изменить:
Для создания объекта Recordset используйте
Set oRS = oConn.Execute(qry)
Затем, когда вы убираете в конце
oRS.Close
oConn.Close
Set oRS = Nothing
Set oConn = Nothing
Похоже, даже если GoDaddy говорит, что вы должны использовать свою базу данных, как вы хотите, если вы не получаете премиум-план, вы должны использовать свои собственные приложения. Я сделал это, используя OBDC и подключаясь через DNS следующим образом:
set conn=Server.CreateObject("ADODB.Connection")
conn.Open "DSN=obdcName;UID=userName;PWD=password"
Надеюсь, это кому-нибудь поможет.