クイック概要: Crystal Reportsでエラー「ADOエラーコード:0x80040e14 ...キーワード 'ALL'の近くの構文が正しくありません。従業員番号の「すべての」特殊キーワードを使用してSQL SPを実行すると、SQL Server 2008 R2のストアドプロシージャを実行するCR 2016レポートパラメータの問題
ロングストーリー:
- 日から(@fDate - SQLストアドプロシージャ/ - CR: 私はそれを実行したときに3つのパラメータを収集クリスタルで書かれた報告書2016レポートを持っている{FROMDATE?}コマンド)日に
- (@tDate - SQLストアドプロシージャ/ {のToDate?} - CRコマンド)
- 従業員番号(@eCode - SQLストアドプロシージャ/ {EmplNo?} - CR コマンド)
レポートには、1人の従業員またはすべての従業員に対して実行できる機能があります。ただし、これらのパラメータはCrystal Reportsコマンドに含まれているため、従業員番号パラメータをオプションにすることはできません。いくつかの他のフォーラムから、私はトップ提案を見て、ケースを作ることでした...私は実際に従業員の番号を渡しているかどうかを判断するストアドプロシージャ側のパラメータの評価、またはすべてのレコードをしたい場合。私はキーワード「ALL」を使用して、全従業員の記録を返すことを示しました。私のストアドプロシージャは、MS SSMSでパラメータを明示的に宣言して設定するときに機能します。しかし、正確に同じストアドプロシージャを実行しようとするとCRエラーが出ます。このエラーの原因は何ですか?どのように私は必要な情報を報告するCRを得ることができますか?
SAP Crystal Reports Designer 2016 - データベースからデータを取得できませんでした。詳細:ADO Error Code: 0x80040e14
SAPクリスタルは、SQLコマンドレポート:
EXEC AIM.dbo.GetLaborUtil {?FromDate}, {?ToDate}, {?EmplNo}
MS SQL Serverの2008 R2(SP2)エクスプレス - ストアドプロシージャコード:
USE [AIM]
GO
/****** Object: StoredProcedure [dbo].[GetLaborUtil] Script Date: 12/12/2017 1:59:38 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetLaborUtil] @fDate date, @tDate date, @eCode varchar(4)
AS
SELECT
*
FROM
AIM.dbo.LaborUtil
WHERE
LaborUtil.AttendDate BETWEEN @fDate AND @tDate
AND
LaborUtil.EmplCode = CASE WHEN @eCode = '' THEN LaborUtil.EmplCode
WHEN @eCode LIKE '%ALL%' THEN LaborUtil.EmplCode
WHEN @eCode IS NULL THEN LaborUtil.EmplCode
ELSE CAST(@eCode AS smallint)
END
ORDER BY
LaborUtil.EmplName,
LaborUtil.AttendDate
作品のストアドプロシージャを実行するための
マニュアルクエリ:
DECLARE @fDate date
DECLARE @tDate date
DECLARE @eCode varchar(4)
SET @fDate = '1900-01-01'
SET @tDate = '2100-12-31'
SET @eCode = 'ALL'
EXEC AIM.dbo.GetLaborUtil @fDate, @tDate, @eCode
私はCASE ... WHEN句を "%EVERY%"をキャッチするように切り替えました。そのフィールドを空白にしても機能しない理由を教えてください。 "データベースからデータを取得できませんでした 詳細:ADOエラーコード:0x80040e14 ソース:Microsoft OLE DBプロバイダ(SQLサーバー用) 説明 '、'の構文が正しくありません SQLステート: 42000 ネイティブエラー:102 [Database Vendor Code:102] " – Smizles
同じ問題があるようですが、水晶レポートの問題です。それは引用符で囲まれていないので、この場合、渡されるコードはexec dbo.sp_test_all '10'、 'final with "、" – sepupic
のように表示されます。 CRからの入力とそれをSQLサーバが理解できるものに変換しますか? – Smizles