我的存儲過程是將采購訂購轉為倉庫入庫單,其關鍵字為purcheseapp(采購單號),在DELPHI中根據關鍵字調用此存儲過程。但在運行存儲過程卻提示為ERROR 156:Incorrect syntax near keyword 'end',我反復檢查,找不出問題,請高手幫忙檢查,代碼如下:
CREATE PROCEDURE fPurch_store(@StringItem char)
as
  set nocount on
     declare @fStore_po varchar (20)
     declare @fStore_item varchar (20)
     declare @fStore_custome varchar (20)
     declare @fStore_pudate datetime
     declare @fStore_outdate datetime
     declare @fStore_indate datetime
     declare @fStore_pri varchar(30)
     declare @fStore_name varchar(30)
     declare @fStore_dec varchar(50)
     declare @fStore_num float(8)
     declare @fStore_total float(8)
     declare @fStore_until varchar(8)
     declare @fStore_store float(8)
     declare @fStore_memo varchar(100)
--    select from purcheseapp where purchese=@StringItem
begin tran
   declare crTstore cursor for
        select
              purchese_po,
              purchese_item,
 purchese_customer,
 purchese_date,
 purchese_date,
   purchese_codeno,
 purchese_name,
   purchese_dec,
 purchese_num,
 purchese_total,
 purchese_until,
 purchese_total,
 purchese_memo
     from purcheseapp where purcheseapp=@stringItem
    open crTstore
   fetch next from crTstore into
       @fStore_po,
      @fStore_item ,
      @fStore_custome,
      @fStore_outdate,
      @fStore_indate,
      @fStore_pri ,
      @fStore_name,
      @fStore_dec,
      @fStore_num,
      @fStore_total,
      @fStore_until,
      @fStore_store,
      @fStore_memo
begin 
    insert into purchese_store(
             Store_po,
Store_item,
Store_custome,
Store_outdate,
Store_indate,
Store_pri,
Store_name,
Store_dec,
Store_name,
Store_total,
Store_until,
Store_store,
Store_memo)
    values(
            @fStore_po,
            @fStore_item ,
            @fStore_custome,
            @fStore_outdate,
            @fStore_indate,
            @fStore_pri ,
            @fStore_name,
            @fStore_dec,
            @fStore_until,
            @fStore_store,
            @fStore_memo
  end
  close crTstore
  deallocate crTstore
if @@error<>0
     begin
Rollback Tran  
     end
        else
           begin
   Commit Tran
           end
SET NOCOUNT OFF
GO

解决方案 »

  1.   

    你在@fStore_memo
      end
     处少了")" 
    同时 你insert 的项大于values中的值
      

  2.   

    应该是@fStore_memo )
      end
      

  3.   

    @fStore_memo)
      end看来来晚了:(
      

  4.   

    修正過後為什麼在DELPHI中運行時,提示為沒有找到,難道這樣調用有問題嗎?
      begin
          Close;
          ADOStoredProc2.Parameters.Clear;
          ADOStoredProc2.Parameters.ParamByName('@StringItem').Value :=string(orderitem.Text);
          ADOStoredProc2.execproc;
      end;
      

  5.   

    删除之后要添加
    ADOStoredProc2.Parameters.Clear;
    ADOStoredProc2.Parameters.Add('......)参数的!
      

  6.   

    為什麼我執行上面存儲過程時,明明purcheseapp中三筆數據,卻寫入到purcsese_store中卻是一筆空數據,只是增加一筆空值,上面存儲過程錯在那裡,請指教!!!!
      

  7.   

    這不僅是存儲器問題,這個參數賦值也有問題?我在存儲器中進行硬賦值,它只能寫入第一筆數據,而後面的兩筆就掉失了,出現上面的原因是在DELPHI中賦值沒有真正賦給@stringItem,存儲器存在數據不能連寫,所以在運行時它總是寫入一筆空據,以上原因請高手幫忙解決,在此謝過,分不夠可以再加。