powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Delphi5 MSSQL Server7 Связанные таблицы
3 сообщений из 3, страница 1 из 1
Delphi5 MSSQL Server7 Связанные таблицы
    #32000046
Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста..
В моей программе есть два связанных TADOQuery

Master:

SELECT * FROM City
ORDER BY cName

Slave:

SELECT * FROM Zone
WHERE nCity=:Id
ORDER BY cName


Здесь Id это поле в табл City. DataSource в TADOQuery (Zone) указан dsCity

Так вот именно из-за этого и не проходит Post после Append (Zone). Выдается ошибка(примерно) -
"Нельзя модифицировать поле Id". Но ведь это же параметр!! Причем дело именно в этом - пробовал убирать связь -
все прекрасно работает


Спасибо.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Delphi5 MSSQL Server7 Связанные таблицы
    #32017747
Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй свойство Required у поля, по которому у тебя связь, поставить в False.
...
Рейтинг: 0 / 0
Delphi5 MSSQL Server7 Связанные таблицы
    #32017774
Если не хочется иметь массу малопонятных проблем с мастер-детайл организацией запросов в дельфи, делай по-другому:
1. Убери вот эту связь: "поле в табл City. DataSource в TADOQuery (Zone) указан dsCity"
2. В событии AfterScroll мастер-запроса добавь переоткрытие детайл-запроса (close-open-locate).
3. В событии BeforeOpen детайл-запроса поставь присвоение параметра примерно так <детайл-запрос>.ParamByName('Id').AsInteger:=<мастер-запрос>.FieldByName('Id').AsInteger;

И проблемам с мастер-детайл места не останется.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Delphi5 MSSQL Server7 Связанные таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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