Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > И снова Access...


Автор: JaguarSmith 3.10.2005, 02:09
Доброе время суток!

У меня подключена аксессная база через ODBC - приложение ASP.NET отказывается писать в базу данные и через insert и через update - пишет что запрос кривой - но вообщето это не так :
Код

Dim u As String = "UPDATE counters SET value = " + value.ToString + "  WHERE (id= " + id.ToString + ")"

то-есть запрос вполне корректный получается, например "UPDATE counters SET value = 134 WHERE (id= 1 )" более того через server explorer он выполняется "на ура" smile

На сервере у провайдера всё то же прекрасно работает...

smile Как разрешить приложению .Net записывать данные в базу? И желательно при этом ещё и в файл писать - тоже только читает... smile

Заранее благодарен!

Автор: Дрон 3.10.2005, 07:51
Есть подозрение, что запрос всё-таки кривой.

Слово id является ключевыми словом, поэтому его нужно заключить в квадратные скобки: [id]

Автор: arilou 3.10.2005, 11:35
Попробуй для начала для аккаунта ТВОЙКОМП\ASPNET выставить разрешение на полный доступ к той папке, в которой лежит аксесовская БД.

Автор: JaguarSmith 3.10.2005, 13:13
Цитата
Попробуй для начала для аккаунта ТВОЙКОМП\ASPNET выставить разрешение на полный доступ к той папке, в которой лежит аксесовская БД.


полез в панель управления/учётные записи пользователей и... вообще не обнаружил аккаунта .NET smile Где выставить такое разрешение в ХП СП 2 ?

пытался попробовать через Microsoft .NET Framework 1.1 Configuration но так и неразобрался.... smile


Автор: JaguarSmith 4.10.2005, 02:00
smile Все исправил и в программе и в базе и наконец-то получил то исключение про которое писал с самого начала.

ERROR [HY000] [Microsoft][Драйвер ODBC Microsoft Access] В операции должен использоваться обновляемый запрос.

На практике это обозначает что у моего приложения нет доступа на запись в базу... smile
На сервере такой беды не возникает - а на компе - на локалхосте - стабильно - и не знаю как с ентим бороться... smile

Автор: arilou 4.10.2005, 10:14
JaguarSmith
Почитай в нете, как включить в XP SP2 возможность установки per user permissions на папку, или задай вопрос в соотв. форуме. Я не помню, что надо сделать smile Когда настроишь пермишны, все будет работать.
Добавлено @ 10:14
Кстати, лучше использовать OleDb провайдер. Он тоже поддерживает Access.

Автор: JaguarSmith 4.10.2005, 11:28
OleDb - не могу использовать - на хостинге приложение работает с аксесом именно через ODBC smile
ушел заниматься smile (RFTM'ом) smile
Спасибо!!! smile

Автор: arilou 4.10.2005, 11:34
Цитата(JaguarSmith @ 4.10.2005, 11:28)
на хостинге приложение работает с аксесом именно через ODBC

Там что, DSN используется? Обычно можно и через OleDb, если сможешь передать путь к .mdb файлу. Например, с помощью
Код

string mdbPath = Server.MapPath(@"/" + @"/databases/mydb.mdb");
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Password=;User ID=Admin;Data Source=" + mdbPath + ";";

Добавлено @ 11:35
P.S. OleDb намного быстрее работает.

Автор: JaguarSmith 7.10.2005, 23:11
smile Если кому понадобится я нашел как дать доступ к базе под ХП:

1) открываем папку с нашей базой в проводнике.
2) лезем в сервис -> свойства папки -> вид
3) Снимаем флажок "Использовать простой общий доступ к файлам"
4) выбираем нашу базу и лезем в свойства - там появилясь новая вкладка "Безопасность"
5) Залезаем туда и жмём "Добавить"
6) Жмем "Дополнительно"->"поиск"
7) Выбираем "ASPNET" и жмёмм Ок
8) Выставляем Разрешения
9) Жмём Ок

Вот и вся наука smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)