Greetings, all. Since Razzak has already made my day with today's
announcement, if I get an answer to this, I'll be in heaven
Latest RBWIN65 version.
I'm having problems understanding why the insert below fails in the way it
does. The problem part in in larger type.
INSERT INTO scbcrse (scbcrse_subj_code,scbcrse_crse_numb,scbcrse_csta_code,
+
scbcrse_repeat_lim, scbcrse_pwav_code, scbcrse_tuiw_ind,+
scbcrse_add_fees_i, scbcrse_actv_date,
scbcrse_reps_code,scbcrse_max_rpt_u,+
scbcrse_capp_ind ) +
VALUES (.vnewprefix,.vcourse,.vactive, +
.breplimit,.vprereqs,, .vsfeecode,+
.#DATE,.brepcode,.brepunits,.vbareaflag)
"breplimit" is a integer field - corresponds to "scbcrse_repeat_lim" and is
always 1 to 10.
"vprereqs" is a character field - corresponds to "scbcrse_pwav_code", and
can be null.
note the extra comma between vprereqs and vsfeecode. This simply skips
loading anything into "scbcrse_tuiw_i" (a text field)
as far as I can tell from the insert documentation.
"vsfeecode" is a text field - corresponds to "scbcrse_add_fees_i", and can
be null.
When vprereqs is null, the insert fails, and I get an "incorrect number of
values for this table"
If vprereqs is not null, the insert performs correctly.
Here's the kicker. If I change the location of the commas so that
vprereqs now loads into "scbcrse_tuiw_i", the insert never fails, even with
null values.
Null in my case is nothing, not -0-.
In that case the segment looks like this: .breplimit,,.vprereqs,
.vsfeecode,+
So, there's something about loading a null text value after an interger
field, or something, that makes the insert get lost, I suppose.
The complete code is below. It's actually a compact version of a larger
program, but the problem performs the same. In the larger version, I have
a lot of ',,,,' to skip loading columns. As long as the problem above is
avoided, it all works fine.
Anybody experience this?
Paul Patrick [EMAIL PROTECTED]
University of Central Oklahoma
Edmond, OK 73034
(405) 974-2336 fax (405) 341-4964
SET WHILEOPT OFF
SET VAR ldq TEXT = '"', rdq TEXT = '"', mq = '","'
SET VAR blabhrs REAL = NULL, blechrs REAL = NULL, bcontacthrs REAL = NULL
SET VAR bcredithrs REAL = NULL, bbillhrs REAL = NULL, breplimit INTEGER = 0
SET VAR brepcode TEXT = NULL, brepunits REAL = NULL
SET VAR scbcrs_line TEXT = NULL, bpwavcod TEXT = NULL
DELETE ROWS FROM scbcrse
DECLARE c1 CURSOR +
FOR SELECT active, newschool, newdept, newprefix, course, hours, prereqs,+
sfeecode,bareaflag, descript, common FROM courses WHERE newprefix = 'BIO' +
ORDER BY cprenum
OPEN c1
FETCH c1 +
INTO vactive IND v1, vnewschool IND v1, vnewdept IND v1, vnewprefix IND v1,
+
vcourse IND v1, vhours IND v1, vprereqs IND v1, vsfeecode IND v1,+
vbareaflag IND v1, vdescript IND v1,vcommon IND v1
WHILE SQLCODE = 0 THEN
IF vcommon = 'Y' THEN
SET VAR breplimit = 10,brepunits = 40,brepcode = 'RP'
ELSE
SET VAR breplimit = 1, brepunits = .vhours, brepcode = 'RP'
ENDIF
IF vsfeecode IS NOT NULL THEN
SET VAR vsfeecode = 'Y'
ENDIF
IF vprereqs IS NOT NULL THEN
SET VAR vprereqs = 'C'
ENDIF
SET VAR vbareaflag = 'N'
INSERT INTO scbcrse
(scbcrse_subj_code,scbcrse_crse_numb,scbcrse_csta_code,+
scbcrse_repeat_lim, scbcrse_pwav_code, scbcrse_tuiw_ind,+
scbcrse_add_fees_i, scbcrse_actv_date,
scbcrse_reps_code,scbcrse_max_rpt_u,+
scbcrse_capp_ind ) +
VALUES (.vnewprefix,.vcourse,.vactive,.breplimit,,.vprereqs,+
.vsfeecode,.#DATE,.brepcode,.brepunits,.vbareaflag)
FETCH c1 +
INTO vactive IND v1, vnewschool IND v1, vnewdept IND v1, vnewprefix IND
v1,+
vcourse IND v1, vhours IND v1, vprereqs IND v1, vsfeecode IND v1,+
vbareaflag IND v1, vdescript IND v1,vcommon IND v1
ENDWHILE