ColdFusion 9 및 SQL Server 2008을 사용하고 있습니다. 플랫폼을 배우려고하고 있으며보고 솔루션을 위해 두 플랫폼을 효과적으로 효과적으로 활용하는 방법을 배우고 있습니다. 스토어드 프로 시저 또는 sprocs에 대해 큰 어려움을 겪었습니다. 내가 원하는 것은 sprocs를 CFML에서 활용하고 필요한 사람들에게 데이터를 제공 할 수있는 지점에 도달하는 간단한 방법입니다.Coldfusion CFSTOREDPROC가 테이블을 반환하지 않습니다.
온라인으로 조사한 결과 SQL Server 2008은 RAM (@)에 배치되거나 로컬 사용자 (#)의 디스크에 쓰여지는 임시 테이블을 활용하는 것으로 나타났습니다. 내 문제는 프로세스 호출에서 ColdFusion으로 데이터를 반환하는 생성 된 임시 테이블을 얻을 수 없다는 것입니다. SQL Server에서 임시 테이블에 추가되는 SQL 쿼리 부분을 실행할 때 매력. 내가하고 싶은 일은 ColdFusion에 간단한 테이블을 반환하고 가능한 가장 효율적인 매너에서이 테이블을 코딩하는 것입니다.
시도 : - Return 문을 사용하지만 RAM 테이블 (@)에서 구문 오류가 발생하는 것 같습니다. - 영구적 인 임시 테이블 사용 (#) - 다양한 온라인 포럼에서이를 사용하여 생각하는 것 같지만이를 통해 응용 프로그램의 성능이 크게 향상됩니다. (모두가 비평가입니다.)
내 목표
은 다음과 같습니다 -뿐만 아니라 I가 할 수있는이 과정을 배우려면 많은 내가 할 수있는 한 그것을 다시 사용 -이 때문에 쿼리뿐만 아니라 수행해야 할 올바른 방법 알아보기 가능하다면. - SPROCS의 임시 테이블 (@) 및 임시 테이블 (#)을 사용하는 이유와 그 이유를 이해합니다. 어떤 사람들은 컴파일하는 동안 다른 sprocs가 실행되는 동안 RAM을 해제하고, 서버가 하드 디스크로 이동하여 데이터를 쓰는 것이 더 느리다 고 생각하는 반면 영구적 인 임시 테이블 (#)이 더 좋다고 생각합니다. - 아래의 구문은가 현재 내 CFML 코드는 다음과 같습니다 작동하지 않는 이유를 이해 :
<!--- ===========================================================================================================================
================================================= Page Resources ================================================================
=============================================================================================================================--->
<CFSTOREDPROC datasource="PoliticalDonationsDB" procedure=" sp_GetCurrentDonationCount_withDateRange" result="DONATIONCOUNT">
<!--- In --->
<cfprocparam cfsqltype="INT" dbvarname="SDate" value="2004">
<cfprocparam cfsqltype="INT" dbvarname="EDate" value="2005">
<!--- OUT --->
<cfprocresult name="DonationCount">
</CFSTOREDPROC>
<!--- ===========================================================================================================================
================================================= Page Display ==================================================================
=============================================================================================================================--->
<HTML>
<HEAD>
<TITLE><CFOUTPUT>Title</CFOUTPUT></TITLE>
</HEAD>
<BODY>
<div id="logo">
</div><!--- End logo div --->
<div id="currentRecords">
<CFDUMP var="#VARIABLES#">
<CFDUMP VAR="#DONATIONCOUNT#">
</div><!---End currentRecords--->
<div id="navigation">
<ul>
<li>Companies</li>
<ul>
<li></li>
</ul>
</ul>
</div><!--- End navigation div--->
<div id="statisticsTab">
</div> <!--- End Statistics div--->
</BODY>
</HTML>
그리고 내 SQL 서버 코드는 다음과 같습니다
Use Politics
GO
ALTER procedure sp_GetCurrentDonationCount_withDateRange
@SDate AS int,
@EDate AS int
AS
BEGIN
--Create RAM Table
DECLARE @DonationCountTable TABLE
(donationKey INT,
CompanyKey INT,
SenatorKey INT,
donationAmount MONEY,
donationDateFY INT
)
--Put the stuff into the RAM table
INSERT INTO @DonationCountTable (donationKey, CompanyKey, SenatorKey, donationAmount, donationDateFY)
SELECT * FROM PoliticalDontations
WHERE donationDateFY BETWEEN @SDate AND @EDate
ORDER BY donationDateFY, CompanyKey ASC
--Get the stuff out of the RAM Table
SELECT * FROM @DonationCountTable
END
dbvarname는 ColdFusion에서 8 추천되지 않습니다 그것은 않습니다 아무것도 : http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_p- q_14.html –