Преобразование файла SQL2008 RDL к SQL2005

Возвратите пустой указатель вместо того, чтобы выдать исключение и ясно зарегистрируйте возможность пустого возвращаемого значения в документации API. Если код вызова не будет соблюдать API и проверку на пустой случай, это по всей вероятности приведет к своего рода "исключению нулевого указателя" так или иначе:)

В C++, я могу думать о 3 различных разновидностях об установке метода, который находит объект.

пустой указатель Возврата Опции A

Object *findObject(Key &key);

, когда объект не может быть найден. Хороший и простой. Я пошел бы с этим. Альтернативные подходы ниже для людей, которые не ненавидят-params.

Передача Опции B

void findObject(Key &key, Object &found);

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

Опция C

bool findObject(Key &key, Object &found);

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

if (!findObject(myKey, myObj)) { ...
6
задан Nathan Koop 10 July 2009 в 15:27
поделиться

1 ответ

Нет конкретного пути для перехода на более раннюю версию, см. эту ссылку для официального Заявление MS.

Если вы любите приключения (и вам повезет), вы можете попробовать преобразовать свой RDL 2008 года в соответствие с 2005 годом, но я предполагаю, что это будет серьезная задача. Файлы RDL - это просто файлы xml, соответствующие спецификации RDL, которая открыта и опубликована Microsoft.

Спецификация RDL для служб отчетов 2008 доступна здесь:

http://download.microsoft.com/download/6/5/7/6575f1c8-4607-48d2-941d-c69622e11c32/RDL_spec_08.pdf

Спецификация на 2005 год доступна здесь:

http://download.microsoft.com/download/c/2/0/c2091a26-d7bf-4464-8535-dbc31fb45d3c/rdlNov05.pdf

8
ответ дан 9 December 2019 в 22:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: