2016-04-25 22 views
0

エラーの原因を突き止めるのに何らかの問題があります。私はコード、エラー、および表の制約タブを見ると何が表示されるのかを示しました。私はオンラインで検索していますが、提案はありませんでしたが、何も効果がありませんでした。私は何が間違っているのか分からないので、誰かが私にちょっとプッシュを与えたり、正しい方向に向けるのを助けてくれたらうれしいです。ありがとうございました。制約に違反しましたか?

enter image description here

 STSQL = "insert into mpcs.shop_inv_orders" 
     STSQL = STSQL & " (" 
     STSQL = STSQL & "ORDER_ID," 
     STSQL = STSQL & "ORDER_ITEM_NO," 
     STSQL = STSQL & "INV_TYPE," 
     STSQL = STSQL & "MTI_PART_NO," 
     STSQL = STSQL & "DATE_ORDERED," 
     STSQL = STSQL & "DATE_REQUIRED," 
     STSQL = STSQL & "QUANTITY," 
     STSQL = STSQL & "EMPLOYEE_ID," 
     STSQL = STSQL & "MACHINE_ID," 
     STSQL = STSQL & "COMMENTS," 
     STSQL = STSQL & "JOB_NO," 
     STSQL = STSQL & "PROCESS_PLAN_ID," 
     'STSQL = STSQL & "ACCOUNT_NO" 
     STSQL = STSQL & "DESTINATION," 
     STSQL = STSQL & "COMPLETED," 
     STSQL = STSQL & "REQUEST_NO" 
     STSQL = STSQL & ") values (" 

     STSQL = STSQL & "'" & UCase(varOrderID) & "'," 'ORDER_ID 
     STSQL = STSQL & "'" & UCase(Item) & "'," 'ORDER_ITEM_NO 
     STSQL = STSQL & "'" & UCase(InvType) & "'," 'INV_TYPE 
     STSQL = STSQL & "'" & UCase(Mtipartno) & "'," 'MTI_PART_NO 

     STSQL = STSQL & "to_date(to_char(sysdate,'DD-MON-YYYY HH:MI:SS PM'),'DD-MON-YYYY HH:MI:SS PM')," 'DATE_ORDERED 
     STSQL = STSQL & "to_date('" & Format(dateneed.Value, "dd-MMMM-yyyy") & "','DD-MON-YYYY')," 'DATE_REQUIRED 

     STSQL = STSQL & "'" & UCase(Quantity) & "'," 'QUANTITY 
     STSQL = STSQL & "'" & UCase(cboEmployee.SelectedValue) & "'," 'EMPLOYEE_ID 
     STSQL = STSQL & "'" & UCase(MachID) & "'," 'MACHINE_ID 
     STSQL = STSQL & "'" & UCase(TextBox2.Text) & "'," 'COMMENTS 
     STSQL = STSQL & "'" & UCase(Jobno) & "'," 'JOB_NO 
     STSQL = STSQL & "'" & UCase(ProcPlanID) & "'," 'PROCESS_PLAN_ID 
     'STSQL = STSQL & "'" & UCase(AcctNo) & "'," 'ACCOUNT_NO 
     STSQL = STSQL & "'" & UCase(ComboBox2.SelectedText) & "'," 'DESTINATION 
     STSQL = STSQL & "'" & 0 & "'," 'COMPLETED 
     STSQL = STSQL & "'" & UCase(ReqNo) & "'" 'REQUEST_NO 
     STSQL = STSQL & ")" 

enter image description here

+1

既にテーブルに存在するORDER_IDを挿入しようとしています。 – jarlh

+0

私は見て、それはありません。私は次のものを利用しました。 – Lee

+0

いいえ、間違いなく同じ(ORDER_ID + ORDER_ITEM_NOのコンボ)を挿入しようとしています。つまり、次の番号を取得するためのアルゴリズムが壊れているか、複数のユーザーが同時に注文を追加している、または進行中の注文を隠すトランザクション分離レベルにいるという同時シナリオで実行している可能性がありますあなたの質問から、または誰かが注文IDを順不同で追加した、または...あなたのデータを見てください。挿入しようとしているキーを見てください。啓示をしてください。 – Luaan

答えて

0

これを試してみてください、ORDER_IDはそうあなたがインクリメントIDを取得するためのシーケンスを使用して、手動でOracleでは

STSQL = "insert into mpcs.shop_inv_orders" 
STSQL = STSQL & " ("   
STSQL = STSQL & "ORDER_ITEM_NO," 
STSQL = STSQL & "INV_TYPE," 
STSQL = STSQL & "MTI_PART_NO," 
STSQL = STSQL & "DATE_ORDERED," 
STSQL = STSQL & "DATE_REQUIRED," 
STSQL = STSQL & "QUANTITY," 
STSQL = STSQL & "EMPLOYEE_ID," 
STSQL = STSQL & "MACHINE_ID," 
STSQL = STSQL & "COMMENTS," 
STSQL = STSQL & "JOB_NO," 
STSQL = STSQL & "PROCESS_PLAN_ID," 
'STSQL = STSQL & "ACCOUNT_NO" 
STSQL = STSQL & "DESTINATION," 
STSQL = STSQL & "COMPLETED," 
STSQL = STSQL & "REQUEST_NO" 
STSQL = STSQL & ") values (" 

STSQL = STSQL & "'" & UCase(Item) & "'," 'ORDER_ITEM_NO 
STSQL = STSQL & "'" & UCase(InvType) & "'," 'INV_TYPE 
STSQL = STSQL & "'" & UCase(Mtipartno) & "'," 'MTI_PART_NO 

STSQL = STSQL & "to_date(to_char(sysdate,'DD-MON-YYYY HH:MI:SS PM'),'DD-MON-YYYY HH:MI:SS PM')," 'DATE_ORDERED 
STSQL = STSQL & "to_date('" & Format(dateneed.Value, "dd-MMMM-yyyy") & "','DD-MON-YYYY')," 'DATE_REQUIRED 

STSQL = STSQL & "'" & UCase(Quantity) & "'," 'QUANTITY 
STSQL = STSQL & "'" & UCase(cboEmployee.SelectedValue) & "'," 'EMPLOYEE_ID 
STSQL = STSQL & "'" & UCase(MachID) & "'," 'MACHINE_ID 
STSQL = STSQL & "'" & UCase(TextBox2.Text) & "'," 'COMMENTS 
STSQL = STSQL & "'" & UCase(Jobno) & "'," 'JOB_NO 
STSQL = STSQL & "'" & UCase(ProcPlanID) & "'," 'PROCESS_PLAN_ID 
'STSQL = STSQL & "'" & UCase(AcctNo) & "'," 'ACCOUNT_NO 
STSQL = STSQL & "'" & UCase(ComboBox2.SelectedText) & "'," 'DESTINATION 
STSQL = STSQL & "'" & 0 & "'," 'COMPLETED 
STSQL = STSQL & "'" & UCase(ReqNo) & "'" 'REQUEST_NO 
+0

私はNULLをORDER_IDに挿入できないので、それを供給するはずです。私は使用されていない次の利用可能なorder_idを挿入しています。 – Lee

+0

あなたはMS ACCESSを使用していますか? –

+0

これはオラクルです。 – Lee

0

は、私はから仕事に間違ったデータベースを与えられたが判明。私は2つの異なるソースを見ていました。だから皆は正しかった。みんな助けてくれてありがとう、それは他の場所でこれを発見するために私を誘導した。

+0

問題を修正したことを知っておくとよいでしょうが、準備された方法のビルド方法もお読みくださいパラメータなどを使用した文SQLを作成するあなたのやり方は、悪意のある攻撃、データの問題、およびパフォーマンスの問題が発生しやすくなります。 – LoztInSpace

関連する問題