Stored Procedure
でクエリを作成しようとしています。私はそれを作成することができ、それを実行するときに問題はありません。ここで私のStoredProcedureが、これは私がここテンポラリテーブルのCodeigniter SQL
sp_penilaian '1500060'
それを実行し、どのように
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE SP_Penilaian
@Nip varchar(50)
AS
BEGIN
select * INTO #tMP from historyposition where nip = ''[email protected]+'' order by approveddate desc
declare @NewPosition varchar(50), @NewPositionLast varchar(50), @ApproveDate datetime, @ApproveDateLast datetime
select top 1 @NewPositionLast = NewPosition, @ApproveDateLast=ApprovedDate from #tmp
WHILE EXISTS (SELECT * FROM #tMP)
BEGIN
select top 1 @NewPosition = NewPosition, @ApproveDate=ApprovedDate from #tmp
if (@NewPosition = @NewPositionLast)
begin
set @NewPositionLast = @NewPosition
set @ApproveDateLast = @ApproveDate
end
else
begin
break
end
delete top(1) #tMP
END
select @NewPositionLast 'LatesUpgradePosition' , @ApproveDateLast 'LatesUpgradeDate'
END
GO
であることresullt
OKです。問題は私がCodeigniterで私のSPに電話をかけようとしているときです。
$nip = '1500060';
$filt_outlet = $this->db->query("SP_Penilaian '".$nip."'")->row();
、その後、私はこの
echo "<pre>".print_r($filt_outlet)."</pre>";
と私のデータをチェックするが、私は空のデータを取得しようとしています。では、CodeIgniterで一時テーブルを使用する方法は?または私は一時テーブルを使用することはできません私はちょうどテーブルを作成し、私のストアドプロシージャにドロップすることはできますか?
私の悪い英語のために申し訳ありません。
なぜすべての複雑後
SET NOCOUNT ON;
を追加してみてくださいそのストアドプロシージャの?あなたはちょうどその最新の位置と日付/時刻を更新したいだけです。ちょうどそれをクエリで取得してください。一時テーブルは必要なく、動的SQLは必要ありません。 #avoid-the-rbar –まあ、なぜ '#'テーブルを含むすべてのSPが動作しないのか不思議です。私はこのSPを使用していません。私はPHPの中にクエリを書くだけです。 – YVS1102