Скорее всего, это связано с комбинацией флагов OPTION
, так как они могут быть объединены. Общее мнение состоит в том, чтобы иметь следующие три флага:
FLAG_FIELD_LENGTH
(1) - «Не оптимизировать ширину столбца» 1 FLAG_FOUND_ROWS
(2) - «Возвращать совпадающие строки» FLAG_MULT_STATEMENTS
(67108864) - «Поддерживать несколько SQL операторов в пакете»
Когда эти значения объединяются, OPTION
значение параметра становится 67108867
.
Что означает простое изменение на;
db.Open "DRIVER={MySQL ODBC 5.3 Unicode Driver};option=67108867; SERVER=" & mysql_server & "; UID=" & mysql_user & "; pwd=" & mysql_pass & "; db=" & mysql_db & ";"
1. FLAG_FIELD_LENGTH
устарел от разъема ODB C GUI с версии 3.51.18
Другое решение
Похоже, это отсутствие FLAG_FOUND_ROWS
в параметрах OPTION
, которое вызывает эту конкретную проблему, но в качестве быстрого теста вы можете увидеть, можете ли вы получить доступ к результату запроса через порядковое поле без использования псевдонима, что-то вроде этого;
<%
'Assumed declarations, not setting server, user and pass as you will have these defined.
Dim db, res, mysql_server, mysql_user, mysql_pass
Set db = Server.CreateObject("Adodb.Connection")
db.Open "DRIVER={MySQL ODBC 5.3 Unicode Driver};option=67108864; SERVER=" & mysql_server & "; UID=" & mysql_user & "; pwd=" & mysql_pass & "; db=" & mysql_db & ";"
Set rss=db.execute("INSERT INTO boardlar (baslik, hesap_id) VALUES ('Deneme','1');select LAST_INSERT_ID() as lastid from boardlar")
'Use ordinal positioning instead of field alias to return the value.
Call Response.Write(rss(0))
%>
Полезные ссылки