Найдено 26 результатов
- Чт 22 дек 2016 09:13
- Форум: SQL Server Data Access Components
- Тема: Заполнение параметров ХП по MasterSource связи
- Ответы: 17
- Просмотры: 42719
Re: Заполнение параметров ХП по MasterSource связи
молодцы, хоть здесь не стали городить свое видение. а могли бы, если бы нашелся пользователь который так видит...
- Ср 21 дек 2016 15:30
- Форум: SQL Server Data Access Components
- Тема: Заполнение параметров ХП по MasterSource связи
- Ответы: 17
- Просмотры: 42719
Re: Заполнение параметров ХП по MasterSource связи
это пример того как я воспринимаю ваш подход к возвращению значений при мастер-детейл связи. то если я оберну селект в хранимую процедуру и вызову ее, то поведение будет другим?
- Ср 21 дек 2016 14:15
- Форум: SQL Server Data Access Components
- Тема: Заполнение параметров ХП по MasterSource связи
- Ответы: 17
- Просмотры: 42719
Re: Заполнение параметров ХП по MasterSource связи
да, совсем не жизненная аналогия. вот попроще: я создаю view:
затем я хочу получить поле Name из этого view
а вы мне возвращаете Name из MyTable, так как вам кажется, что это логично и все пользователи хотят именно этого. представьте мое удивление. и единственный способ - это не пользоваться моим view
А главное, в документации это не описано!
Код: Выделить всё
create view MyView as select name as FirstName, LastName as Name from MyTable
Код: Выделить всё
select Name from MyView
А главное, в документации это не описано!
- Ср 21 дек 2016 13:42
- Форум: SQL Server Data Access Components
- Тема: Заполнение параметров ХП по MasterSource связи
- Ответы: 17
- Просмотры: 42719
Re: Заполнение параметров ХП по MasterSource связи
С вашей точки зрения - да, потому что вы это знаете, но программист работает с полями DataSet'а и ожидает, что будет использовано поле Name от DataSet'а, а не нечто, что даже в программе не видно и программисту не доступно. Где в справке написано, что будет взято значение не по имени TField, а по имени реального поля подлежащей таблицы, если только оно есть? Я всегда считал, что все эти уровни абстракции во view для того и существуют, что бы скрыть реализацию.
Представьте, что есть класс TClass1 с методами Proc1 и Proc2, потом создается интерфейс IClass1 с методом Proc1, в реализации интерфейса в классе TClass1 пишется имплементация метода интерфейса IClass1.Proc1 как вызов процедуры Proc2, а потом в момент вызова IClass1.Proc1 внезапно вызывается метод TClass1.Proc1 вместо ожидаемого Proc2!
Представьте, что есть класс TClass1 с методами Proc1 и Proc2, потом создается интерфейс IClass1 с методом Proc1, в реализации интерфейса в классе TClass1 пишется имплементация метода интерфейса IClass1.Proc1 как вызов процедуры Proc2, а потом в момент вызова IClass1.Proc1 внезапно вызывается метод TClass1.Proc1 вместо ожидаемого Proc2!
- Ср 21 дек 2016 13:18
- Форум: SQL Server Data Access Components
- Тема: Заполнение параметров ХП по MasterSource связи
- Ответы: 17
- Просмотры: 42719
Re: Заполнение параметров ХП по MasterSource связи
Спасибо за Ваше внимание. Но все же, вы не правы, то что вы сделали приводит к неоднозначностям, что будет если я напишу запрос вида:
master:
detail:
В то время как использование только явных имен полей никогда не приведет к такому конфузу при выборе значений....
И вот постоянно так, то значение меняете по своему усмотрению, то тип параметров... Ищите люди баги, покупайте исходники, включайте свои хрустальные шары...
master:
Код: Выделить всё
select name as fname, lastname as name from...
Код: Выделить всё
select * from... where name = :name
И вот постоянно так, то значение меняете по своему усмотрению, то тип параметров... Ищите люди баги, покупайте исходники, включайте свои хрустальные шары...
- Чт 15 дек 2016 11:51
- Форум: SQL Server Data Access Components
- Тема: Заполнение параметров ХП по MasterSource связи
- Ответы: 17
- Просмотры: 42719
Re: Заполнение параметров ХП по MasterSource связи
а можно посмотреть на запрос этого функционала, это же через вашу голосовалку было? я смысла не понимаю... еще раз напоминаю, что в документации у вас заявлено другое поведение.
А можно ли приобрести исходники для стандартной редакции? доплачивать 1350 долларов только для того, что вырезать "фичу" для какого-то нерадивого программиста - это моветон.
А можно ли приобрести исходники для стандартной редакции? доплачивать 1350 долларов только для того, что вырезать "фичу" для какого-то нерадивого программиста - это моветон.
- Ср 14 дек 2016 16:12
- Форум: SQL Server Data Access Components
- Тема: Заполнение параметров ХП по MasterSource связи
- Ответы: 17
- Просмотры: 42719
Re: Заполнение параметров ХП по MasterSource связи
То есть Вы не считаете это за баг? Вот у Вас в документации написано: When MasterSource is not nil dataset fills parameter values with corresponding field values from the current record of the master dataset. Но у меня нет там такого поля, это сугубо Ваши внутренние списки, на лицо явное противоречие заявленному функционалу. Какой может быть кейс использования данной "фичи"?
Запретить нельзя, но изменить - можно. Подумайте, пожалуйста...
P.S. Ну или прошу дать исходники, что бы не тратить недели на поиски подводных камней нелогичностей.
P.P.S. Вот DevExpress распространяет своей продукт с исходниками, дает их менять под себя...
Запретить нельзя, но изменить - можно. Подумайте, пожалуйста...
P.S. Ну или прошу дать исходники, что бы не тратить недели на поиски подводных камней нелогичностей.
P.P.S. Вот DevExpress распространяет своей продукт с исходниками, дает их менять под себя...
- Ср 14 дек 2016 13:48
- Форум: SQL Server Data Access Components
- Тема: Заполнение параметров ХП по MasterSource связи
- Ответы: 17
- Просмотры: 42719
Re: Заполнение параметров ХП по MasterSource связи
Здравствуйте!
Я понял, что происходит: мастер датасет - это хранимая процедура, которая собирает поля из нескольких таблиц и переименовывает некоторые из них, например она возвращает ID как ID и поле Name возвращает как Comment. Изменяющая процедура имеет параметры ID и Name, по связи MasterSource параметр ID берется корректно, а параметр Name я присваиваю вручную перед вызовом ExecSQL. Так вот внутри ExecSQL, каким-то макаром, SDAC знает оригинальное имя Name поля Comment, которое он хранит для какие-то своих сдаковских целей, и перезаписывает мое значение! В приложении проект со скриптом для базы. Вопрос, как запретить искать поля по скрытым спискам?
Спасибо
Я понял, что происходит: мастер датасет - это хранимая процедура, которая собирает поля из нескольких таблиц и переименовывает некоторые из них, например она возвращает ID как ID и поле Name возвращает как Comment. Изменяющая процедура имеет параметры ID и Name, по связи MasterSource параметр ID берется корректно, а параметр Name я присваиваю вручную перед вызовом ExecSQL. Так вот внутри ExecSQL, каким-то макаром, SDAC знает оригинальное имя Name поля Comment, которое он хранит для какие-то своих сдаковских целей, и перезаписывает мое значение! В приложении проект со скриптом для базы. Вопрос, как запретить искать поля по скрытым спискам?
Спасибо
- Пн 12 дек 2016 11:12
- Форум: SQL Server Data Access Components
- Тема: Заполнение параметров ХП по MasterSource связи
- Ответы: 17
- Просмотры: 42719
Re: Заполнение параметров ХП по MasterSource связи
Подскажите, форум жив?
- Вт 06 дек 2016 09:42
- Форум: SQL Server Data Access Components
- Тема: Заполнение параметров ХП по MasterSource связи
- Ответы: 17
- Просмотры: 42719
Заполнение параметров ХП по MasterSource связи
Добрый день! Использую TMSQuery для вызова ХП с параметрами, для заполнения параметров использую связь MasterSource, по которой берется два параметра, третий устанавливаю вручную перед выполнением процедуры. Так вот этот третий параметр сбрасывается в NULL, так как нет такого поля MasterSource!? Правильно ли я понял ситуацию? Есть ли возможность изменить такое неожиданное поведение? Проект большой, переводился с ADO...
Спасибо
Спасибо
- Вт 21 июн 2016 11:55
- Форум: SQL Server Data Access Components
- Тема: TMSQuery.Execute - как вернуть NULL в параметре?
- Ответы: 5
- Просмотры: 15798
Re: TMSQuery.Execute - как вернуть NULL в параметре?
Я не говорю про полную совместимость, но у вас же есть страница для миграции, почему там не указаны такие важные различия? Цитата из хелпа:
Прошу прощения, можете описать логику, в которой может понадобиться возвращать NULL параметры как Unassigned? Вместо CallMyProc(Prm.Value) писать
И раз, меняется базовая работа с параметрами начиная еще чуть ли не с BDE, без предупреждения, как контрольный выстрел в голову, после изменения типов параметров...SDAC behaviour resembles the one of ADO as much as possible, so migration from ADO to SDAC shoulв not cause much difficulties. As far as possible, SDAC behaviour approaches to the behaviour of ADO, so this migration should not cause any serious difficulties.
Прошу прощения, можете описать логику, в которой может понадобиться возвращать NULL параметры как Unassigned? Вместо CallMyProc(Prm.Value) писать
Код: Выделить всё
if Prm.IsNull then CallMyProc(Null) else CallMyProc(Prm.Value);
- Вт 21 июн 2016 10:39
- Форум: SQL Server Data Access Components
- Тема: TMSQuery.Execute - как вернуть NULL в параметре?
- Ответы: 5
- Просмотры: 15798
Re: TMSQuery.Execute - как вернуть NULL в параметре?
Добрый день! Спасибо за ответ. Но есть проблема, у меня тысячи строк кода, который нужно с локаничного MSQuery.ParamByName('ParamName').Value переделывать на эти ужасные ифы? Зачем? Неужели это продиктовано структурой OLEDB? Почему это не указано в справке по конвертации приложений с ADO? Почему вы решаете за программиста и меняете логику работы? Я не понимаю... Зачем-Зачем-Зачем... Почему возвращаемый разработчиком параметр NULL вы меняете на Unassigned? А 0 int вы не меняете на Unassigned? ведь 0 это почти NULL!
P.S. дико извиняюсь, но после всех затраченных усилий на перевод ADO в SDAC напарываться на такие выкрутасы очень не приятно... И что мне теперь делать? Покупать исходники и допиливать их напильником как в анекдоте?
P.S. дико извиняюсь, но после всех затраченных усилий на перевод ADO в SDAC напарываться на такие выкрутасы очень не приятно... И что мне теперь делать? Покупать исходники и допиливать их напильником как в анекдоте?
- Пн 20 июн 2016 16:19
- Форум: SQL Server Data Access Components
- Тема: Проблема с параметрами TMSQuery
- Ответы: 11
- Просмотры: 20990
Re: Проблема с параметрами TMSQuery
P.S. "SDAC не поддерживает вызов процедур с передачей параметров по имени " - я имел ввиду TMSStoredProc и формат {call}
- Пн 20 июн 2016 16:12
- Форум: SQL Server Data Access Components
- Тема: Проблема с параметрами TMSQuery
- Ответы: 11
- Просмотры: 20990
Re: Проблема с параметрами TMSQuery
А нельзя в Ваш редактор запросов встроить кнопку Prepare? Сами понимаете, что запросы настраиваются в Design-Time, что толку от runtime. Сложность еще в том, что проект далеко не новый, много форм... Поменять работу с данными уже не получится...
- Пн 20 июн 2016 15:37
- Форум: SQL Server Data Access Components
- Тема: TMSQuery.Execute - как вернуть NULL в параметре?
- Ответы: 5
- Просмотры: 15798
TMSQuery.Execute - как вернуть NULL в параметре?
Добрый день!
Использую TMSQuery.Execute для вызова хранимых процедур, в параметре хочу вернуть Null, но SDAC упорно возвращает Unassigned. Что делать? Почему Unassigned, а не Null?
Использую TMSQuery.Execute для вызова хранимых процедур, в параметре хочу вернуть Null, но SDAC упорно возвращает Unassigned. Что делать? Почему Unassigned, а не Null?