Автор Тема: ASP + Access - проверка уникальности вводимых данных!  (Прочитано 4440 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Aramon

  • Гость
Привет! Можно еще один вопросик (надеюсь, что последний =)))):

Есть страничка со списком организаций, который грузится из аксессовской БД. Юзер может добавлять в список (и соответственно - в БД) новые организации - вводит в форму наименование организации и сабмитит ввод.

Хочется сделать проверку уникальности названия вводимой организации - например, если в БД уже есть организация ООО "Рога и копыта", то при попытке юзера ввести в качестве новой организации название, в точности совпадающее с ООО "Рога и копыта", выводился бы какой-нить error.

Форма ввода:

<FORM NAME="uploadForm" METHOD="GET" ENCTYPE="multipart/form-data" ACTION="Upload2SenderDBS.asp">
Добавить элемент в список: <input type=TEXT size=54 name="Sender"><br>
<input type=SUBMIT value="Добавить" name="SUBMIT">
<input type="reset" name="Reset" value="Отмена">
</FORM>

Добавление в БД:

SND = Request.QueryString("Sender")
If SND = "" Then ErrS = 1 End If
SND = FormatStr(SND)

Set db = Server.CreateObject("ADODB.Connection")
db.Open "DSN=Diplom;UID=sa;PWD=;"
sSQL = "insert into Sender(Sender)values('" & SND & "')"
Set rs = db.Execute(sSQL)
db.Close
Set db = Nothing
Response.Write "" & SND & " успешно добавлен в список в " & N &"<br>"
End If

If ErrS = 1 Then
Response.Write "<br>" & "Ошибка! Не введено наименование организации"
End If

Оффлайн $_

  • Титулярный советник
  • ****
  • Сообщений: 147
  • Репутация: 1
  • Пол: Мужской
А кто мешает тебе перед добавлением названия организации, "спросить" у базы наличия такойже организации. т. е.
перед вот етим:
sSQL = "insert into Sender(Sender)values('" & SND & "')"
Set rs = db.Execute(sSQL)
добавляешь:
sSQL = "SELECT table1 OrgCaption WHERE OrgCaption='ООО Рога и копыта'"
Set rs = db.Execute(sSQL)
...
После чего проверяешь количество возвращённых записей, если не равно нулю то "ООО Рога и копыта" уже существует и пользователю надо сообщить о существовании такой фирмы, иначе смело добавляешь.

А, вот что ещё хотел спросить, зачем ты при добавлении данных в таблицу пишешь Set rs = db.Execute(sSQL)?, если мне память не изменяет, то при выполнении операций не связанных с возвращением данных можно просто воспользоваться db.Execute(sSQL)