2016-11-17 9 views
0

Мне просто интересно, почему я не могу добавить новые записи ко всем таблицам базы данных доступа. Я использую 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 («Нет разрешений на обновление!»), Я действительно не понимаю, почему.

+2

Вы должны отключить «на ошибку ...», чтобы увидеть детали или вместо этого введите неправильный код. Будьте осторожны с SQL-инъекцией! –

+0

Спасибо. Надеюсь это работает. –

+0

Если вы можете писать в некоторые таблицы, но не в других в одном файле mdb/accdb, я бы предположил, что проблема лежит в базе данных, а не с вашим классическим ASP-кодом, который выглядит хорошо для меня. Как говорит Антонио, вы должны прокомментировать «on error resume next» - вы можете получить сообщение об ошибке, которое предлагает вам некоторые подсказки. – John

ответ

0

вы можете получить фактическую ошибку с помощью:

Response.Write («Нет обновлений разрешения -» & Err.Description)