powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADP. Связь основной и подч. формы
42 сообщений из 42, показаны все 2 страниц
ADP. Связь основной и подч. формы
    #32455795
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулся со след ситуацией.
Хочу в кач-ве источн. данных для подч. формы использовать ХП.
Перестаёт работать "синхронизация форм" через основные\подчинённые поля.
Как-то это можно обойти?
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32455833
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясню поподробнее.
Есть таблица:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Supplier]') and OBJECTPROPERTY(id, N'IsUserTable') =  1 )
drop table [dbo].[Supplier]
GO

CREATE TABLE [dbo].[Supplier] (
	[SupplierID] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[DepartmentID] [int] NOT NULL ,
	[CityID] [int] NOT NULL ,
	[SupplierName] [MiddleString] NOT NULL ,
	[IsProducer] [bit] NOT NULL ,
	[LegalAddress] [MiddleString] NOT NULL ,
	[IsSpecDep] [bit] NOT NULL ,
	[ParentID] [int] NULL 
) ON [PRIMARY]
GO


Есть ХП

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE PROCEDURE dbo.getSupplier

AS

set nocount on

 SELECT     SupplierID, DepartmentID, CityID, SupplierName, IsProducer, LegalAddress, IsSpecDep, ParentID
FROM         dbo.Supplier
GO




Делаю форму на основе ХП getSupplier - Frm_Sub
Делаю форму на основе таблицы Supplier - Frm_Main

Пробую Frm_Sub сделать подчинённой к Frm_Main

Ничего не получается!!!
Формы не связываются.

Запускаю мастер вижу при связывании, что поле SupplierID имеет тип Real !!!!
Откуда такое преобразование???

В чём может быть подвох?
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32455840
Alexander Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лично у меня вообше нет уверенности что Access поддерживает подчиненки на основе ХП. У меня была таже проблема. Пользовался "обходными" путями.
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32455846
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, что в проекте есть такая связка, и всё работает.
Вот здесь не могу понять в чём проблема, вернее понял почему формы не связываются, а вот почему идёт преобразование типов - непонятно.
Обходные пути = ставить на Current основной формы обновление подчинённой?
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32455850
Alexander Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я иногда делаю так: подчиненую форму строить на основе хп с параметрами, параметр это id через который связываются эти две таблицы.
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32455853
Alexander Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, что в проекте есть такая связка, и всё работает.
Тоесть у тебя есть две формы на основе ХП и они работают ??
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32455856
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоесть у тебя есть две формы на основе ХП и они работают ??

да, но только основная на базе табл, подч. на базе ХП с параметрами.
Может дело в параметрах?

но в любом случае, почему происходит преобразование типов?

Попробуй у себя пожалуйста, может получишь другой результат
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32455858
Alexander Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В том то и дело что у меня тоже самое.
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32455860
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Geo, ВС
Вы тут поблизости,
может что скажите?
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32455861
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я никогда не работал с ХП.
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32455862
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо :)
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32455931
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
через current
и обновление
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32455935
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Хам трамвайный
А как нибудь красивее можно?
Используя стандартные св-ва осн. и подч. формы?
И почему такое преобразование типов?
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456141
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа!
Может кто нибудь хотя бы предположить, почему происходит неявное преобразование типов?
Или в справку меня ткнуть.
Кто нибудь делал в качестве источн. записей подч. формы ХП без параметров?
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456203
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При использовать ХП предполагается что разработчик тщательно продумывает оптимальность такой связки, поэтому нет смысла возлагать такую мелочь как перезапуск процедуры на аксес.

Код: plaintext
1.
2.
Private Sub Form_Current()
    Me!Subform.Form.InputParameters = Me.Subform.Form.InputParameters
End Sub
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456215
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версия сервера?
Версия аксеса?
Версия MDAC?
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456217
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все больше убеждаюсть в непригодности хранимых процедур в качестве источника данных для форм

есть несколько другое решение:
локальные или глобальные временные таблицы

1 создать временную таблицу, обязательно с первичным ключем
2 наполнить еe данными (можно запуском хранимки)
3 использовать ее для форм

если интересно могу кинуть примерчиком
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456235
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1 создать временную таблицу, обязательно с первичным ключем
2 наполнить еe данными (можно запуском хранимки)
3 использовать ее для форм
Ага, а еще навесить на #tablе триггеры, чтобы при редактировании все что надо отробатывало.

Ну не знаю, работаю с хранимками в качестве источников форм уже года 3, и пока все устраивало.
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456248
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2АлексейК:
А в чем конкретно непригодность выражается, можно пояснить? Чего-то не замечал я такого...
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456278
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
больше всего мне не нравится:

- нельзя использовать замечательные свойства формы Serverfilter для фильтрации и сортировки на стороне сервера
- для изменения серверной сортировки приходится делать спецпараметры
- крайне сложно ресинхронизировать запись
- в отличие от временных таблиц - необновляемый источник данных

это только то что вспомнилось навскидку
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456310
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2АлексейК
в отличие от временных таблиц - необновляемый источник данных

Почему не обновляемый - да же очень обновляемый

крайне сложно ресинхронизировать запись

Почему сложно? Resync = dbo.my_xp1 ?

- нельзя использовать замечательные свойства формы Serverfilter для фильтрации и сортировки на стороне сервера
- для изменения серверной сортировки приходится делать спецпараметры

Ну с эти сложно не согласится - это действительно не достаток. Правда мне больше нравится самому городить огород - так что для меня это даже преимущество :)
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456315
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор- нельзя использовать замечательные свойства формы Serverfilter для фильтрации и сортировки на стороне сервера
Так хранимка должна возвращать минимально необходимый пользователю набор, чего там фильтровать? Для того и скармливают процедуре параметры.

автор- для изменения серверной сортировки приходится делать спецпараметры
Меня вполне устраивает клиентская пересортировка. Это тоже крайность - каждый чих на сервер возлагать.
автор
- крайне сложно ресинхронизировать запись
Не понял, про что это? Resync Command? И в чем сложности?

автор- в отличие от временных таблиц - необновляемый источник данных
Ну а это, простите, уже полный бред.
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456332
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПочему не обновляемый - да же очень обновляемый
если процедура достаточно сложная - например кростаб (котрый нужно посмотреть в форме, подправить) вот и необновляемая
а временная таблица - обновляй сколько пожелаешь , потом жмакаешь кнопку и данные пошли дальше

авторкрайне сложно ресинхронизировать запись
Почему сложно? Resync = dbo.my_xp1 ?

а с составным ключем пробовал ??
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456350
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторесли процедура достаточно сложная - например кростаб (котрый нужно посмотреть в форме, подправить) вот и необновляемая
а временная таблица - обновляй сколько пожелаешь , потом жмакаешь кнопку и данные пошли дальше
Не могу взять в толк - а зачем редактировать сводные данные? они же сводные!

автора с составным ключем пробовал ??
Я приверженец суррогатных ключей, и это повод еще раз убедится в правильности такого подхода.
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456358
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я уже приводил как-то аналогию по поводу вопросов (а как сделать?)

Главное не как, а зачем.

Что за код должен выполнятся после пароля?
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456360
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейК, а ты знаешь, что для редактирования таблицы в базе tempdb нужно обладать правами dbo? Или ты еше не пробовал пускать туда юзеров?
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456390
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если процедура достаточно сложная - например кростаб (котрый нужно посмотреть в форме, подправить) вот и необновляемая
а временная таблица - обновляй сколько пожелаешь , потом жмакаешь кнопку и данные пошли дальше

Хотел сказать, а Pavel уже все высказал - так что я к нему присоединяюсь.
Так кто теперь на нас с Pavlom ?
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456398
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри не в тот топик попал
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456417
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Pavel
ХП с параметрами проходит нормально.
Именно так я и делаю, только не через InputParameters, а через RecordSource

как быть с ХП без параметров?


2incold
Версия сервера? 8.00.194
Версия аксеса? xp sp1
Версия MDAC? 2.5


Если у кого есть время, поробуйте создать табл. и ХП, и сделать осн. и подч. форму, связав их просто по SupplierID

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Supplier]>
drop table [dbo].[Supplier]
GO

CREATE TABLE [dbo].[Supplier] (
        [SupplierID] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
        [DepartmentID] [int] NOT NULL ,
        [CityID] [int] NOT NULL ,
        [SupplierName] [varchar] ( 1 ) ,
        [IsProducer] [bit] NOT NULL ,
        [LegalAddress] [varchar] ( 1 )  ,
        [IsSpecDep] [bit] NOT NULL ,
        [ParentID] [int] NULL
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[Supplier] WITH NOCHECK ADD
        CONSTRAINT [PK_Supplier] PRIMARY KEY  CLUSTERED
        (
                [SupplierID]
        )  ON [PRIMARY]
GO

...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456434
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сори.
простая ХП

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[getSupplier]') and OBJECTPROPERTY(id, N'IsProcedure') =  1 )
drop procedure [dbo].[getSupplier]
GO


Create PROCEDURE dbo.getSupplier

AS

set nocount on

SELECT  * FROM   dbo.Supplier
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456464
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Структура главная-подчиненная форма предполагает наличие двух разных источников записей. Где второй?
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456466
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНе могу взять в толк - а зачем редактировать сводные данные? они же сводные!

мое правило программа должна делать то что хочет клиент а не клиент должен подстраиваться под возможности программы

если клиент хочет получить сводные данные а потом их подправить на основе своих знаний и убеждений (моделирование) а уже потом запустить дополнительный анализ или печать отчета

лично я в этом ничего плохого не усматриваю...

я как то раз видел как продавцы выписывали мне счет фактуру в аксессе
где нельзя было исправить адрес получателя - он всегда был как и плательщика - они печатали замазывали штрихом, вписывали и снимали копию на ксероксе (причем это была крупная сеть магазинов)

програмисты твою мать.
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456485
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 pavel

авторАлексейК, а ты знаешь, что для редактирования таблицы в базе tempdb нужно обладать правами dbo? Или ты еше не пробовал пускать туда юзеров?

пока не сталкивался
- у меня каждая группа "серьезных" юзеров dbo в СВОЕЙ базе а к основной они выполняют распределенные запросы
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456490
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Pavel

Делаю форму на основе ХП getSupplier - Frm_Sub
Делаю форму на основе таблицы Supplier - Frm_Main

Надо Frm_Sub сделать подчинённой к Frm_Main

Не столь важно, но всё таки:
Основные поля - Supplier.SupplierID
Подчинённые поля -getSupplier.ParentID

На самом деле задача больше и хп другая, но хочу что-бы получилось хотябы на "кошках".
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456501
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторесли клиент хочет получить сводные данные а потом их подправить на основе своих знаний и убеждений (моделирование) а уже потом запустить дополнительный анализ или печать отчета
Ну а при чем тут реляционная база данных? Это ж EXCEL!
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456514
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 AlTis
очень давно пробовал так сделать - наступил на грабли
вроде что - то даже получилось но потом после обновления - фильтрации
все осыпалось - я отказался от таккого решения

по моему я ставил поля связи программно.
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456522
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Pavel
по поводу эксела и базы данных:
Думаю что все друг друга поняли ))
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456592
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2АлексейК
дело в том, что я ставлю поля связей как в конструкторе, так и в мастере.
Результат один и тот же.
Формы не связываются.

Причём если делать с помощью мастера - на одном из шагов выбираем поля, по котор. будем связывать, та вот, тип поля getSupplier.ParentID - REAL !!!
Из-за этого и не связ. формы.

Почему происходит неявное преобразвание типов???
кто-то может сказать?

Если ХП переделать во View - формы связываются замечательно.

В чём может быть проблема?
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456689
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил - все прекрасно связывается. Обнови MDAC.
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456705
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СТОП!
А у тебя что, процедура в подчиненной форме без параметра?
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32456749
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Pavel

да.
Я в самом начале писал, что если у хп есть параметр-всё работает, если его нет - не хочет.

поставил mdac 2.7 не помогло.

может этого вообще сделать нельзя?
...
Рейтинг: 0 / 0
ADP. Связь основной и подч. формы
    #32457113
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КАНЕЧНА НИЗЯ!!!
Нет такого синтаксиса в MSSQL - SELECT FROM EXEC STOREDPROC!
А раз нет, то нет и возможности фильтрации записей в подчиненной форме, основанной на ХП без параметров. И это правильно (см. выше).
...
Рейтинг: 0 / 0
42 сообщений из 42, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADP. Связь основной и подч. формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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