Re[6]: Добавление записей в БД Access с помощью ADO.NET
От: vvvoloshin1 Канада  
Дата: 02.11.04 04:03
Оценка:
INSERT INTO guestbook(nick) VALUES (['боб']) так ????

Нет не так ....


SELECT [Table].[Field] FROM .......

Скобки нужны чтобы твой запрос не использовал системные обозначения (зарезервированные слова)..
Re[7]: Добавление записей в БД Access с помощью ADO.NET
От: shinjo  
Дата: 02.11.04 04:28
Оценка:
Здравствуйте, vvvoloshin1, Вы писали:

V>INSERT INTO guestbook(nick) VALUES (['боб']) так ????


V>Нет не так ....



V>SELECT [Table].[Field] FROM .......


V>Скобки нужны чтобы твой запрос не использовал системные обозначения (зарезервированные слова)..


Понятно впринципе... но и непонятно так что мне в моем например запросе в крвадратные скобки поставить ???

INSERT INTO [guestbook]([nick]) VALUES я вообще запутался...

и вот есщё 1 вопрос который меня мучает уже целых 2 месяца. Вот смотри у меня есть например фаил pivko.mdb. К нему в asp.net странице обращаються пользователи.
У меня там в обращении стоит

OleDbConnection.Open();
тут я получаю всё в дата адаптер
потом датаадаптером Fill делаю
но это не столь важно что я тут делаю суть вот в следующем !
OleDbConnection.Close();

В промежуток времени когда в программе открыто соеденение с этой базой
другой пользователь запустив мою страницу сможет прочитать из неё данные или записать их в базу данных.
Или ADO.NET умное оно создает очередь или стэк койнибудь...
Re[8]: Добавление записей в БД Access с помощью ADO.NET
От: dmaster1  
Дата: 02.11.04 06:53
Оценка:
Здравствуйте, shinjo, Вы писали:

S>Здравствуйте, vvvoloshin1, Вы писали:


V>>INSERT INTO guestbook(nick) VALUES (['боб']) так ????


V>>Нет не так ....



V>>SELECT [Table].[Field] FROM .......


V>>Скобки нужны чтобы твой запрос не использовал системные обозначения (зарезервированные слова)..


S>Понятно впринципе... но и непонятно так что мне в моем например запросе в крвадратные скобки поставить ???


S>INSERT INTO [guestbook]([nick]) VALUES я вообще запутался...


S>и вот есщё 1 вопрос который меня мучает уже целых 2 месяца. Вот смотри у меня есть например фаил pivko.mdb. К нему в asp.net странице обращаються пользователи.

S>У меня там в обращении стоит

S>OleDbConnection.Open();

S>тут я получаю всё в дата адаптер
S>потом датаадаптером Fill делаю
S>но это не столь важно что я тут делаю суть вот в следующем !
S>OleDbConnection.Close();

S>В промежуток времени когда в программе открыто соеденение с этой базой

S>другой пользователь запустив мою страницу сможет прочитать из неё данные или записать их в базу данных.
S>Или ADO.NET умное оно создает очередь или стэк койнибудь...


Проблема на самом деле серьезная. В народе носит название "проблема одновременного (или конкурентного) доступа". В книжке М. Макдрнальда ASP.NET про неё пару слов написано, что мол у DataAdapter'a есть событие RowUpdated, которое "происходит после каждой отдельной операции вставки, обновления или удаления, но перед тем, как генерируется исключение." (см. стр. 433)
А вот и пример от туда:

Public Sub OnRowUpdated(sender As object, e As OleDbRowUpdatedEventArgs)
'проверка, были ли обработаны какие записи.
' если ни одной, то выражение не было выполнено, как предполагалось.
If e.RecordsAffected() <1 Then
'выявление типа ошибки
Select Case e.StatementType
Case StatementType.Delete
lstErrors.Items.Add("Not deleted: " & e.Row("au_id"))
Case StatementType.Insert
lstErrors.Items.Add("Not inserted: " & e.Row("au_id"))
Case StatementType.Update
lstErrors.Items.Add("Not updated: " & e.Row("au_id"))
End Select

'можно заставить ADO.NET игнорировать проблему
'и продолжать обновление других строк.
e.Status = UpadteStatus.SkipCurrentRow
End If
End Sub
Re[6]: Да нигде!!!
От: just_dmitry Россия www.parsec-club.ru
Дата: 02.11.04 08:45
Оценка:
Здравствуйте, shinjo, Вы писали:

S>ПОКАЖИТЕ ПОЖАЛУЙСТА ПРИМЕР где там добавлять квадратные скобки ????


S>INSERT INTO guestbook(nick) VALUES (['боб']) так ????


S>и где менять права на запуск страницы от имени администратора тоже напиши об этом поподробнее.

S>Я пишу гостевуху на ASP.NET вот вставка записей не работает ((( такаяже проблема.....
S>И в SQL я новичек.

Обясняю популярно.
Квадратные скобки нужны как тут верно подметили, когда у вас таблицы или поля в них имеют имена, аналогичные которые имеют для Access (в данном случае) специальный смысл. Ни GUSTBOOK, ни NICK, ни даже USERS (95%) таковыми не являются! Если бы и являлись, то вы бы получили ошибку "Неверное SQL-выражение", а уж никак не "невозможно удалить".

Невозможность удаления — прямое указание на доступ readonly тили на попытку обновления связанных таблиц одним запросом, когда access не может понять как ему провести обновление. Показанный здесь
Автор: dmaster1
Дата: 31.10.04
запрос неопределенностей не имеет, поэтому третий раз говорю — проверьте права
Автор: just_dmitry
Дата: 01.11.04
на MDB-файл и на каталог где он лежит.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.