Мне просто интересно, почему я не могу добавить новые записи ко всем таблицам базы данных доступа. Я использую html-форму и классический ASP-код, показанный ниже, для записи в одну из моих таблиц, и он отлично работает.Почему я не могу добавить новые записи ко всем таблицам базы данных доступа?
HTML КОД ФОРМА:
<form method="post" action="empresas.asp">
<table>
<tr>
<td>Código:</td>
<td><input name="custid"></td>
</tr><tr>
<td>Empresa:</td>
<td><input name="compname"></td>
</tr><tr>
<td>Teléfono:</td>
<td><input name="contname"></td>
</tr><tr>
<td>Email:</td>
<td><input name="address"></td>
</tr><tr>
<td>Descripción:</td>
<td><input name="descr"></td>
</tr>
</table>
<br><br>
<input type="submit" value="Add New">
<input type="reset" value="Cancel">
</form>
CLASSIC ASP код документа:
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/administracion1.mdb"
sql="INSERT INTO empresas (codigo,nombre,"
sql=sql & "telefono,email,descripcion)"
sql=sql & " VALUES "
sql=sql & "('" & Request.Form("custid") & "',"
sql=sql & "'" & Request.Form("compname") & "',"
sql=sql & "'" & Request.Form("contname") & "',"
sql=sql & "'" & Request.Form("address") & "',"
sql=sql & "'" & Request.Form("descr") & "')"
on error resume next
conn.Execute sql,recaffected
if err<>0 then
Response.Write("No update permissions!")
else
Response.Write("<h3>" & recaffected & " record added</h3>")
end if
conn.close
%>
Они работают отлично. Однако при попытке сделать то же самое с помощью другой очень похожей формы и таблицы я получаю сообщение, отображаемое в коде ASP («Нет разрешений на обновление!»), Я действительно не понимаю, почему.
Вы должны отключить «на ошибку ...», чтобы увидеть детали или вместо этого введите неправильный код. Будьте осторожны с SQL-инъекцией! –
Спасибо. Надеюсь это работает. –
Если вы можете писать в некоторые таблицы, но не в других в одном файле mdb/accdb, я бы предположил, что проблема лежит в базе данных, а не с вашим классическим ASP-кодом, который выглядит хорошо для меня. Как говорит Антонио, вы должны прокомментировать «on error resume next» - вы можете получить сообщение об ошибке, которое предлагает вам некоторые подсказки. – John