Saya membuat gabung luar dan dieksekusi dengan sukses di informix
database tetapi saya mendapatkan pengecualian berikut dalam kode saya:
DataTable dt = TeachingLoadDAL.GetCoursesWithEvalState(i, bat);
Gagal mengaktifkan batasan. Satu atau lebih baris berisi nilai yang melanggar batasan non-null, unik, atau kunci asing.
Saya tahu masalahnya, tetapi saya tidak tahu bagaimana cara memperbaikinya.
Tabel kedua saya membuat gabungan luar berisi kunci primer komposit yang nol dalam permintaan bergabung luar sebelumnya.
EDIT:
SELECT UNIQUE a.crs_e, a.crs_e || '/ ' || a.crst crs_name, b.period,
b.crscls, c.crsday, c.from_lect, c.to_lect,
c.to_lect - c.from_lect + 1 Subtraction, c.lect_kind, e.eval, e.batch_no,
e.crsnum, e.lect_code, e.prof_course
FROM rlm1course a, rfc14crsgrp b, ckj1table c, mnltablelectev d,
OUTER(cc1assiscrseval e)
WHERE a.crsnum = b.crsnum
AND b.crsnum = c.crsnum
AND b.crscls = c.crscls
AND b.batch_no = c.batch_no
AND c.serial_key = d.serial_key
AND c.crsnum = e.crsnum
AND c.batch_no = e.batch_no
AND d.lect_code= e.lect_code
AND d.lect_code = ....
AND b.batch_no = ....
Masalahnya terjadi dengan tabel cc1assiscrseval
. Kunci utama adalah (batch_no, crsnum, lect_code).
Bagaimana cara mengatasi masalah ini?
EDIT:
Menurut @PaulStock
saran: Saya melakukan apa yang dia katakan, dan saya mendapatkan:
? dt.GetErrors () [0] {System.Data.DataRow} HasErrors: true ItemArray: {object [10]} RowError: "Kolom 'eval' tidak memungkinkan DBNull.Value."
Jadi saya memecahkan masalah saya dengan mengganti e.eval
ke, NVL (e.eval,'') eval
dan ini memecahkan masalah saya. Terima kasih banyak.
,e.eval,e.batch_no,e.crsnum,e.lect_code,e.prof_course
Dari kueri semuanya berjalan dengan baik. apa masalahnya silakan