Nano Hash - криптовалюты, майнинг, программирование

Службы Reporting Services продолжают стирать параметры моего набора данных

Я использую веб-сервис, и каждый раз, когда я что-то меняю в наборе данных, он стирает все мои параметры.

Странно то, что я могу выполнить вызов веб-службы на вкладке данных, и он запрашивает все мои параметры, но если я нажму, чтобы изменить данные, список будет пуст или если я попытаюсь просмотреть отчет он взрывается из-за отсутствия параметров.

Просто интересно, сталкивался ли кто-нибудь с этим и есть ли способ предотвратить такое поведение.

Вот копия набора данных, а не я думаю, это имеет значение. Это должно быть самая раздражающая ошибка (если это ошибка) когда-либо. Я даже не могу выполнить набор данных из дизайнера, не удалив при этом список параметров. Когда у вас около 10 параметров и вы вносите всевозможные изменения в новый отчет, становится очень утомительно постоянно перепечатывать один и тот же список снова и снова.

Во всяком случае, студия должна, по крайней мере, иметь возможность предварительно заполнить параметры, которые запрашивает служба. вздох Где мой мячик для снятия стресса...

<Query>
   <Method Namespace="http://www.example.com/" Name="TWRPerformanceSummary"/>
   <SoapAction>http://www.example.com/TWRPerformanceSummary</SoapAction>   
       <ElementPath IgnoreNamespaces="true">
            TWRPerformanceSummaryResponse/TWRPerformanceSummaryResult/diffgram/NewDataSet/table{StockPerc,RiskBudget,Custodian,ProductName,StartValue(decimal),EndValue(decimal),CostBasis(decimal)}
       </ElementPath>
</Query>

  • Я тоже видел такое, но, к сожалению, не знаю, в чем причина :-( 16.01.2009
  • Я думаю, что позвоню в службу поддержки Microsoft позже сегодня, надеюсь, они смогут мне помочь, я опубликую свои результаты здесь. 20.01.2009

Ответы:


1

Проблема исходила изнутри веб-службы. Я передаю идентификатор сеанса (это GUID) в виде строки в отчет, а затем из отчета в веб-службу. Внутри веб-службы я беру эту строку, преобразовываю ее обратно в Guid и передаю ее нашему объекту SecurityTicket.

Вот где возникла проблема. По-видимому, этот вызов:

Guid passedGuid = new Guid(sessionID);

Не нравится набору данных служб отчетности. Инженер службы поддержки Microsoft работает со мной, чтобы проверить, что именно происходит, и есть ли исправление, будет ли исправление и т. д. Я собираюсь внедрить обходной путь для моего кода, который не требует GUID для передачи в SecurityTicket.

Правка — Решение
По сути, каждый раз, когда вы вносите изменения на вкладке данных, вызывается набор данных веб-службы, отправляющий нулевые параметры. Если ваш веб-сервис не может обрабатывать нулевые параметры, он удалит все ваши параметры.

Чтобы легко обойти эту проблему, первая строка нашего веб-сервиса проверяет нулевые параметры и устанавливает некоторые значения по умолчанию. Затем, если возвращаемый набор данных пуст, мы добавляем фиктивную строку:

private static void addDummyRow(DataTable dt) {
        var row = dt.NewRow();

        for (int i = 0; i < dt.Columns.Count; i++) {
            if (dt.Columns[i].DataType == typeof(string)) {
                row[i] = dt.Columns[i].ColumnName;
            }
            else if (dt.Columns[i].DataType == typeof(DateTime)) {
                row[i] = new DateTime(1900, 1, 1);
            }
            else {
                row[i] = 0;
            }
        }

        dt.Rows.Add(row);
    }
27.01.2009

2

Я понимаю это, и это довольно раздражает. Если вы разрабатываете из VS, просто нажмите кнопку «Обновить поля», и это обычно устраняет проблему. Если запрос ВСЕ ЕЩЕ выдает ошибку, в вашем SQL, скорее всего, есть ошибка (по крайней мере, по моему опыту, если «обновить поля» не работает, я сделал какую-то глупую синтаксическую ошибку, например «ВЫБЕРИТЕ поле1 поле2 ...» или что-то в этом роде). как это). Вы также можете нажать кнопку «Выполнить запрос».

26.01.2009
  • Нет, SQL нет. Это веб-сервис. Microsoft и я думаю, что мы, возможно, выяснили это, по крайней мере, сузили круг, но я подожду, чтобы опубликовать окончательные результаты, поэтому я не размещаю здесь неверную информацию. 27.01.2009
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..