powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Названия таблиц Access со спец символами
10 сообщений из 10, страница 1 из 1
Названия таблиц Access со спец символами
    #32456480
avk_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустимы ли названия таблиц в Access со спец символами ( пробел, круглая скобка) ? К гриду таблица пристыковывается, а при операции Update возникает ошибка. В чем дело ?
...
Рейтинг: 0 / 0
Названия таблиц Access со спец символами
    #32456614
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>операции Update возникает ошибка. В чем дело ?
Надо писать какая ошибка. Могу только предположить что это Incorrect Syntax?

А вообще чтобы избежать таких или подобных проблем, следует забыть про русский, спецсимволы и пробелы. (это касается программирования в целом)
...
Рейтинг: 0 / 0
Названия таблиц Access со спец символами
    #32460073
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавлю, что при ручном написание коммандов необходимо это название таблицы ставить в квадратные скобки (справедливо для MS SQL, думаю для Access тоже), при использовании CommandBuilder следует обратить внимание на свойства Quotted. Там тоже задать откывающую и закрывающую квадратную скобку - префикс и суффикс соотственно и тогда CommandBuilder будет правильно генерировать комманды, следовательно ошибка Incorrect Syntax при update происходить не будет.
...
Рейтинг: 0 / 0
Названия таблиц Access со спец символами
    #32460332
avk_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выдается сообщение
Update requires a valid InsertCommand when passed DataRow collection with new rows.

Кстати, квадратные скобки я непременно ставлю
...
Рейтинг: 0 / 0
Названия таблиц Access со спец символами
    #32460358
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Выдается сообщение
Update requires a valid InsertCommand when passed DataRow collection with new rows.

Видимо без кода не обойтись, привидите код InsertCommand или кусок кода как он генерируется.
...
Рейтинг: 0 / 0
Названия таблиц Access со спец символами
    #32461421
avk_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привожу код
Dim dataCommandBuilder_GoodDet As New OleDb.OleDbCommandBuilder(obj_GoodDet)
obj_GoodDet.InsertCommand = dataCommandBuilder_GoodDet.GetInsertCommand
obj_GoodDet.DeleteCommand = dataCommandBuilder_GoodDet.GetDeleteCommand
obj_GoodDet.UpdateCommand = dataCommandBuilder_GoodDet.GetUpdateCommand
obj_GoodDet.Fill(GoodDet, "Increasedetails")

при обновлении

UltraGrid2.DisplayLayout.Bands(0).CardView = False

Try
UltraGrid2.UpdateData()
obj_GoodDet.Update(GoodDet, "Increasedetails")

Catch
GoodDet.RejectChanges()
MsgBox("Ошибка при записи в базу данных", vbInformation + vbOKOnly, "Дистрибьюторы")
End Try
UltraGrid2.Update()
UltraGrid2.Refresh()

Эта таблица (Increasedetails) является содержанием накладных, шапки которых прекрасно обновляются, хотя в названии полей присутствуют спецсимволы ( за время работы успел сделать название этой таблицы
(Increasedetails) без спец символов)
Когда (для теста) обновляю эту таблицу выдается ошибка
An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll
...
Рейтинг: 0 / 0
Названия таблиц Access со спец символами
    #32461534
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>та таблица (Increasedetails) является содержанием накладных, шапки которых прекрасно обновляются, хотя в названии полей присутствуют спецсимволы ( за время работы успел сделать название этой таблицы
(Increasedetails) без спец символов)

Вот теперь все понятно, ключ в вашем выражение - "в название полей присутствуют спецсимволы"

CommandBuilder еще может съесть через QuotePrefix и QuoteSuffix пробел в названии таблицы, но в названии поля спецсимволов быть не должно.

Возможное решение:
Поменять название всех полей.
...
Рейтинг: 0 / 0
Названия таблиц Access со спец символами
    #32461770
avk_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Вот теперь все понятно, ключ в вашем выражение - "в название полей присутствуют спецсимволы"

Дело в том, что таблица Increase ("шапки" накладных) имеет в своем составе
ключевое поле ("ID increase"), а также ряд других поле без спецсимволов, но при этом обновление этой таблицы происходит отлично
...
Рейтинг: 0 / 0
Названия таблиц Access со спец символами
    #32461827
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что по этому поводу написано в классике:
If your SelectCommand SQL columns contain special characters, such spaces, periods, quotes or non-alphanumeric characters , you can't use the CommandBuilder.

Если хотите детально разобраться что же происходит то посмотрите что генерит CommandBuilder.

dataCommandBuilder_GoodDet.GetUpdateCommand().CommandText
dataCommandBuilder_GoodDet.GetInsertCommand().CommandText
dataCommandBuilder_GoodDet.GetDeleteCommand().CommandText

Я так понял у вас Master Details - Increase и IncreaseDetails. Уберите все спецсимволы из столбцов и Master таблицы и IncreaseDetails Detail таблицы. Ну если проблемы останутся то результаты сюда, вместе с текстом Commandов.
...
Рейтинг: 0 / 0
Названия таблиц Access со спец символами
    #32461858
avk_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Против классики не поспоришь ...
Спасибо за совет
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Названия таблиц Access со спец символами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]