Ошибка при печати отчета Crystal, использующего хранимую процедуру SQL - PullRequest
0 голосов
/ 06 мая 2019

У меня создан отчет Crystal Report, использующий хранимую процедуру SQL Server в качестве источника данных.Хранимая процедура имеет один параметр.Когда запускается приведенный ниже код, я получаю «Ошибка входа в базу данных» в строке obj.PrintToPrinter.

Если я удаляю хранимую процедуру из отчета и заменяю ее теми же таблицами, которые используются в хранимой процедуре, и использую те жепараметр, без ошибок.Отчет печатается без проблем!

Буду признателен за любую помощь, я бы очень хотел использовать хранимые процедуры для наших отчетов.Спасибо!

        ReportDocument obj = new ReportDocument();


        string m_rptname = "C:\\Reports\\MyReport.rpt";
        obj.Load(m_rptname);

        obj.SetParameterValue(0, "123456");

        foreach (Table tbl in obj.Database.Tables)
        {
            TableLogOnInfo tli = tbl.LogOnInfo;
            tli.ConnectionInfo.ServerName = "myServer";
            tli.ConnectionInfo.UserID = "myUser";
            tli.ConnectionInfo.Password = "myPass";
            tli.ConnectionInfo.DatabaseName = "myDB";

            tbl.ApplyLogOnInfo(tli);
        }

        //The line below is where the error happens for stored proc only
        obj.PrintToPrinter(2, false, 0, 0);
        obj.Close();
        obj.Dispose();

1 Ответ

1 голос
/ 06 мая 2019

Вот несколько вещей, которые вы могли или не могли уже попробовать ...

  1. Чтобы изолировать проблему в Crystal Reports, вы пытались написать функцию длявыполнить процедуру с прямым соединением SQL?Это позволит вам проверить свои учетные данные и разрешения SQL.

  2. Я не вижу ничего в настройках вашего подключения о встроенной безопасности, возможно, вы захотите проверить это дважды.Поскольку вы передаете имя пользователя / пароль, я предполагаю, что вы НЕ используете проверку подлинности Windows и, возможно, вам потребуется встроенная защита = false

  3. Есть ли в вашем отчете какие-либо подотчеты?Если это так, вам нужно будет установить информацию о соединении, как вы делали с вашими таблицами.

  4. Проверьте, не синхронизирован ли ваш источник данных с вашей базой данных.Для этого в конструкторе отчетов выберите База данных -> Проверить базу данных.

Если эти параметры не работают, дайте мне знать, и я смогу еще немного покопаться.Отчёты о Crystal превосходны, когда вы убираете «ошибки» с пути.

...