2012-10-04 2 views
0

프로덕션 데이터 추가를위한이 코드가 있습니다. 이후 인벤토리 모듈을 구현 했으므로이 SO 멤버의 도움을 받아 모든 관련 모듈에 수량 업데이트 기능을 포함하기 시작합니다. 이제는이 모듈이 INSERT 또는 UPDATE SQL을 사용하여 올바른 작업을 수행할지 여부를 선택해야하기 때문에 상당히 복잡해 진 제작 모듈에 대해 설명합니다.하지만 제대로 작동하지는 못했습니다. 제 편집 된 코드로 저를 제안 해주십시오. 고맙습니다. 사용 "INSERT"SQL이 코드의 INSERT 또는 UPDATE 레코드에 적합한 SQL 문은 무엇입니까

<% 

    pd_id = Request.form("pd_id") 

    pdtn_st_date = Request.form("pdtn_st_date") 
    pdtn_st_note = Request.form("pdtn_st_note") 
    pdtn_st_pdNote = Request.form("pdtn_st_pdNote") 

    qty_fabric_used = Request.form("qty_fabric_used") 
     if qty_fabric_used <> "" then 
      qty_fabric_used = YardToCm(qty_fabric_used) 
     else 
      qty_fabric_used = 0 
     end if 

    unit_per_fb = Request.form("unit_per_fb") 
     if unit_per_fb = "" then 
      unit_per_fb = 0 
     end if 

    is_finished = Request.form("is_finished")  
     if is_finished <> "" then 
      is_finished = True 
     else 
      is_finished = False 
     end if  

    fb_sheet = Request.Form("fb_sheet") 
     if fb_sheet = "" then 
      fb_sheet = 0 
     end if 
    fb_width = Request.Form("fb_width") 
     if fb_width = "" then 
      fb_width = 0 
     end if 

    edit_pdtn_startup = Request.form("edit_pdtn_startup") 

    pdtn_st_qty_act_dz = Request.form("pdtn_st_qty_act") 
     if pdtn_st_qty_act_dz <> "." then 
      pdtn_st_qty_act = DztoPcs(pdtn_st_qty_act_dz) 
     end if  

'<--------------- Update qty to Inventory table here -------> 
Dim con 
Dim rsInventory 

set con=Server.CreateObject("ADODB.Connection") 
con.Provider="Microsoft.Jet.OLEDB.4.0" 
con.Open(Server.Mappath("../database/tkp.mdb")) 

     Set rsInventory = con.Execute("SELECT * FROM tbl_inventory WHERE pd_id = '" & pd_id & "'")    
     if rsInventory.EOF then 
      con.Execute("INSERT INTO tbl_inventory (inv_qty_act, inv_date, pd_id) VALUES (inv_qty_act + " & pdtn_st_qty_act & ", date() ,'" & pd_id & "'" ) 
'   con.Execute("INSERT INTO tbl_inventory (pd_id) VALUES ('" & pd_id & "'") 
     else 

      con.Execute("UPDATE tbl_inventory SET inv_qty_act = inv_qty_act + " & pdtn_st_qty_act & ", inv_date = date() WHERE pd_id = '" & pd_id & "'" ) 
     end if   

'<---------- ----------------------------------------------------------------------------------------> 

    call checkBlank(pd_id) 

    if SomethingError <> "yes" then 

     Call DBConnOpen() 

      Set Rs = Server.CreateObject("ADODB.Recordset") 
      Set Rs.ActiveConnection = Conn 

      strSQL = "SELECT * FROM tbl_pdtn_startup" 
      if edit_pdtn_startup = "Y" then   
       pdtn_st_id = Request.form("pdtn_st_id") 
       strSQL = strSQL & " WHERE pdtn_st_id =" & pdtn_st_id & "" 
       Rs.Open strSQL, Conn, 1, 3  

      pdtn_st_qty_act_dz = Request.form("pdtn_st_qty_act") 
       if pdtn_st_qty_act_dz <> "." then 
        pdtn_st_qty_act = DztoPcs(pdtn_st_qty_act_dz) 
       end if 

      end if 

      if edit_pdtn_startup <> "Y" then  
      Rs.Open strSQL, Conn, 1, 3 
      Rs.AddNew 

      end if 

      Rs.Fields("pdtn_st_date") = pdtn_st_date 
      Rs.Fields("pdtn_st_note") = pdtn_st_note 
      Rs.Fields("pd_id") = pd_id 
      Rs.Fields("pdtn_st_pdNote") = pdtn_st_pdNote 
      Rs.Fields("pdtn_st_qty_act") = pdtn_st_qty_act 
      Rs.Fields("qty_fabric_used") = qty_fabric_used 
      Rs.Fields("unit_per_fb") = unit_per_fb 
      Rs.Fields("is_finished") = is_finished 
      Rs.Fields("fb_width") = fb_width 
      Rs.fields("fb_sheet") = fb_sheet    

      Rs.Update 
      Rs.Close 

     if edit_pdtn_startup = "Y" then 
      response.redirect "production_view.asp?pdtn_st_id=" & pdtn_st_id 
     else 
      strSQL = "SELECT * FROM tbl_pdtn_startup order by pdtn_st_id desc" 
      Rs.Open strSQL, Conn, 1, 3 
      latest_id = Rs("pdtn_st_id") 
      Rs.close 
      response.redirect "production_addSzCl.asp?pdtn_st_id=" & latest_id 
     end if 

     Call DBConnClose() 
    else 
     call writeInputError 
    end if 

session("pdtn_st_id") = pdtn_st_id 
%> 

답변

1

닫기 브래킷은 값 목록에 없을 때 그것은 "UPDATE"를 사용하지만 실패 할 수 있습니다
:

다음은 실패 내 편집 코드입니다. 그것은 하나의 문제 일 수 있습니다. 또한 inv_qty_act는 값 목록에 없어야합니다.

con.Execute("INSERT INTO tbl_inventory (inv_qty_act, inv_date, pd_id) VALUES (inv_qty_act + " & pdtn_st_qty_act & ", date() ,'" & pd_id & "'" ) 

con.Execute("INSERT INTO tbl_inventory (inv_qty_act, inv_date, pd_id) VALUES (" & pdtn_st_qty_act & ", date() ,'" & pd_id & "')") 
+0

예를 다음과 같이 수정해야합니다! 고마워요. 이제 작동합니다. :) – Alxan