Найдено 26 результатов

Zelius
Чт 22 дек 2016 09:13
Форум: SQL Server Data Access Components
Тема: Заполнение параметров ХП по MasterSource связи
Ответы: 17
Просмотры: 28933

Re: Заполнение параметров ХП по MasterSource связи

молодцы, хоть здесь не стали городить свое видение. а могли бы, если бы нашелся пользователь который так видит...
Zelius
Ср 21 дек 2016 15:30
Форум: SQL Server Data Access Components
Тема: Заполнение параметров ХП по MasterSource связи
Ответы: 17
Просмотры: 28933

Re: Заполнение параметров ХП по MasterSource связи

это пример того как я воспринимаю ваш подход к возвращению значений при мастер-детейл связи. то если я оберну селект в хранимую процедуру и вызову ее, то поведение будет другим?
Zelius
Ср 21 дек 2016 14:15
Форум: SQL Server Data Access Components
Тема: Заполнение параметров ХП по MasterSource связи
Ответы: 17
Просмотры: 28933

Re: Заполнение параметров ХП по MasterSource связи

да, совсем не жизненная аналогия. вот попроще: я создаю view:

Код: Выделить всё

create view MyView as select name as FirstName, LastName as Name from MyTable
затем я хочу получить поле Name из этого view

Код: Выделить всё

select Name from MyView
а вы мне возвращаете Name из MyTable, так как вам кажется, что это логично и все пользователи хотят именно этого. представьте мое удивление. и единственный способ - это не пользоваться моим view
А главное, в документации это не описано!
Zelius
Ср 21 дек 2016 13:42
Форум: SQL Server Data Access Components
Тема: Заполнение параметров ХП по MasterSource связи
Ответы: 17
Просмотры: 28933

Re: Заполнение параметров ХП по MasterSource связи

С вашей точки зрения - да, потому что вы это знаете, но программист работает с полями DataSet'а и ожидает, что будет использовано поле Name от DataSet'а, а не нечто, что даже в программе не видно и программисту не доступно. Где в справке написано, что будет взято значение не по имени TField, а по имени реального поля подлежащей таблицы, если только оно есть? Я всегда считал, что все эти уровни абстракции во view для того и существуют, что бы скрыть реализацию.
Представьте, что есть класс TClass1 с методами Proc1 и Proc2, потом создается интерфейс IClass1 с методом Proc1, в реализации интерфейса в классе TClass1 пишется имплементация метода интерфейса IClass1.Proc1 как вызов процедуры Proc2, а потом в момент вызова IClass1.Proc1 внезапно вызывается метод TClass1.Proc1 вместо ожидаемого Proc2!
Zelius
Ср 21 дек 2016 13:18
Форум: SQL Server Data Access Components
Тема: Заполнение параметров ХП по MasterSource связи
Ответы: 17
Просмотры: 28933

Re: Заполнение параметров ХП по MasterSource связи

Спасибо за Ваше внимание. Но все же, вы не правы, то что вы сделали приводит к неоднозначностям, что будет если я напишу запрос вида:
master:

Код: Выделить всё

select name as fname, lastname as name from...
detail:

Код: Выделить всё

select * from... where name = :name
В то время как использование только явных имен полей никогда не приведет к такому конфузу при выборе значений....
И вот постоянно так, то значение меняете по своему усмотрению, то тип параметров... Ищите люди баги, покупайте исходники, включайте свои хрустальные шары...
Zelius
Чт 15 дек 2016 11:51
Форум: SQL Server Data Access Components
Тема: Заполнение параметров ХП по MasterSource связи
Ответы: 17
Просмотры: 28933

Re: Заполнение параметров ХП по MasterSource связи

а можно посмотреть на запрос этого функционала, это же через вашу голосовалку было? я смысла не понимаю... еще раз напоминаю, что в документации у вас заявлено другое поведение.
А можно ли приобрести исходники для стандартной редакции? доплачивать 1350 долларов только для того, что вырезать "фичу" для какого-то нерадивого программиста - это моветон.
Zelius
Ср 14 дек 2016 16:12
Форум: SQL Server Data Access Components
Тема: Заполнение параметров ХП по MasterSource связи
Ответы: 17
Просмотры: 28933

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 распространяет своей продукт с исходниками, дает их менять под себя...
Zelius
Ср 14 дек 2016 13:48
Форум: SQL Server Data Access Components
Тема: Заполнение параметров ХП по MasterSource связи
Ответы: 17
Просмотры: 28933

Re: Заполнение параметров ХП по MasterSource связи

Здравствуйте!
Я понял, что происходит: мастер датасет - это хранимая процедура, которая собирает поля из нескольких таблиц и переименовывает некоторые из них, например она возвращает ID как ID и поле Name возвращает как Comment. Изменяющая процедура имеет параметры ID и Name, по связи MasterSource параметр ID берется корректно, а параметр Name я присваиваю вручную перед вызовом ExecSQL. Так вот внутри ExecSQL, каким-то макаром, SDAC знает оригинальное имя Name поля Comment, которое он хранит для какие-то своих сдаковских целей, и перезаписывает мое значение! В приложении проект со скриптом для базы. Вопрос, как запретить искать поля по скрытым спискам?
Спасибо
Zelius
Вт 06 дек 2016 09:42
Форум: SQL Server Data Access Components
Тема: Заполнение параметров ХП по MasterSource связи
Ответы: 17
Просмотры: 28933

Заполнение параметров ХП по MasterSource связи

Добрый день! Использую TMSQuery для вызова ХП с параметрами, для заполнения параметров использую связь MasterSource, по которой берется два параметра, третий устанавливаю вручную перед выполнением процедуры. Так вот этот третий параметр сбрасывается в NULL, так как нет такого поля MasterSource!? Правильно ли я понял ситуацию? Есть ли возможность изменить такое неожиданное поведение? Проект большой, переводился с ADO...
Спасибо
Zelius
Вт 21 июн 2016 11:55
Форум: SQL Server Data Access Components
Тема: TMSQuery.Execute - как вернуть NULL в параметре?
Ответы: 5
Просмотры: 9940

Re: TMSQuery.Execute - как вернуть NULL в параметре?

Я не говорю про полную совместимость, но у вас же есть страница для миграции, почему там не указаны такие важные различия? Цитата из хелпа:
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.
И раз, меняется базовая работа с параметрами начиная еще чуть ли не с BDE, без предупреждения, как контрольный выстрел в голову, после изменения типов параметров...

Прошу прощения, можете описать логику, в которой может понадобиться возвращать NULL параметры как Unassigned? Вместо CallMyProc(Prm.Value) писать

Код: Выделить всё

  if Prm.IsNull then CallMyProc(Null)  else CallMyProc(Prm.Value);
Zelius
Вт 21 июн 2016 10:39
Форум: SQL Server Data Access Components
Тема: TMSQuery.Execute - как вернуть NULL в параметре?
Ответы: 5
Просмотры: 9940

Re: TMSQuery.Execute - как вернуть NULL в параметре?

Добрый день! Спасибо за ответ. Но есть проблема, у меня тысячи строк кода, который нужно с локаничного MSQuery.ParamByName('ParamName').Value переделывать на эти ужасные ифы? Зачем? Неужели это продиктовано структурой OLEDB? Почему это не указано в справке по конвертации приложений с ADO? Почему вы решаете за программиста и меняете логику работы? Я не понимаю... Зачем-Зачем-Зачем... Почему возвращаемый разработчиком параметр NULL вы меняете на Unassigned? А 0 int вы не меняете на Unassigned? ведь 0 это почти NULL!

P.S. дико извиняюсь, но после всех затраченных усилий на перевод ADO в SDAC напарываться на такие выкрутасы очень не приятно... И что мне теперь делать? Покупать исходники и допиливать их напильником как в анекдоте?
Zelius
Пн 20 июн 2016 16:19
Форум: SQL Server Data Access Components
Тема: Проблема с параметрами TMSQuery
Ответы: 11
Просмотры: 13485

Re: Проблема с параметрами TMSQuery

P.S. "SDAC не поддерживает вызов процедур с передачей параметров по имени " - я имел ввиду TMSStoredProc и формат {call}
Zelius
Пн 20 июн 2016 16:12
Форум: SQL Server Data Access Components
Тема: Проблема с параметрами TMSQuery
Ответы: 11
Просмотры: 13485

Re: Проблема с параметрами TMSQuery

А нельзя в Ваш редактор запросов встроить кнопку Prepare? Сами понимаете, что запросы настраиваются в Design-Time, что толку от runtime. Сложность еще в том, что проект далеко не новый, много форм... Поменять работу с данными уже не получится...
Zelius
Пн 20 июн 2016 15:37
Форум: SQL Server Data Access Components
Тема: TMSQuery.Execute - как вернуть NULL в параметре?
Ответы: 5
Просмотры: 9940

TMSQuery.Execute - как вернуть NULL в параметре?

Добрый день!
Использую TMSQuery.Execute для вызова хранимых процедур, в параметре хочу вернуть Null, но SDAC упорно возвращает Unassigned. Что делать? Почему Unassigned, а не Null? :shock: