Subject Problem changing data in TIB_LookupCombo and TIB_Grid components
Author horstphil
I am relatively new to IBO and still learning the ins and outs of it.
I have practically memorized the article "Configuring
TIB_LookupCombo" and still cannot resolve the following problem. If
anyone can tell me what I am missing, I would be very grateful - not
to mention able to move forward again with my project!

Situation: I using TIB_Grid in read-only mode to display selected
rows from a TIB_Query component and have other components to edit the
fields. I am using TIB_LookupCombo components as well as some other
controls.

Problem: I am unable to change the ProgramDescription data in the
field referenced by the LookupCombo box. The data displays correctly
in the lookupcombo and all the values are shown correctly in the
dropdown when selected. Yet, I am unable to change the value of the
field.

Details: (hopefully I am providing all relevant information)

Using Delphi 6 with IBO v4 something (forget exactly).

Primary Table (IB_Query component)
"quProgram" with "dsProgram" as datasource

Select
(Select ProgramDescription
from HBProgram
where CP.ProgramID = HBProgram.ProgramID) as ProgramDescription
, (select (Select FULLNAME FROM FORMATNAME(
person.firstname,
person.middlename,
person.lastname, 'LNF'))
from CASEMANAGER join Person P on CaseManager.PersonID =
P.PersonID
where CP.CaseManagerID = CaseManager.CaseManagerID) as
CounselorName
, CP.IsPrimary
, CP.DATESTARTED
. . . (many other fields ommitted)
FROM CASEPROGRAM CP
where CP.CaseID = :CaseID

Column Attributes:
ISPRIMARY=BOOLEAN=1,0
ISCLOSED=BOOLEAN=1,0
HSDFELIGIBLE=BOOLEAN=1,0
PROGRAMDESCRIPTION=COMPUTED
COUNSELORNAME=COMPUTED


Lookup Table for ProgramDescription (IB_Query component)
"quHBProgram" with data source of "dsHBProgram"

SELECT ProgramCode
, ProgramDescription
, ProgramID
FROM HBProgram

KeyLinks: HBProgram.ProgramID=CaseProgram.ProgramID
KeyDescLinks: HBProgram.ProgramDescription=ProgramDescription
OrderingItems:
PROGRAMCODE=PROGRAMCODE;PROGRAMCODE DESC
PROGRAMDESCRIPTION=PROGRAMDESCRIPTION;PROGRAMDESCRIPTION DESC
OrderingLinks:
PROGRAMCODE=1
PROGRAMDESCRIPTION=2

Property KeySource: "dsProgram"



DDL for relevant Tables

/* Table: CASEPROGRAM */

CREATE TABLE CASEPROGRAM (
CASEPROGRAMID ID NOT NULL,
CASEID ID NOT NULL,
PROGRAMID ID NOT NULL,
CASEMANAGERID ID NOT NULL,
ISPRIMARY SMALLINT,
DATESTARTED DATE,
DATECLOSED DATE,
HUDINCODE LOOKUPCODE,
HUDINDATE DATE,
HUDOUTCODE LOOKUPCODE,
HUDOUTDATE DATE,
REFERREDBYID ID NOT NULL,
COMMENTID ID,
CONTRACTID ID,
CLOSE_REASON LOOKUPCODE,
CLOSE_DESTINATION LOOKUPCODE,
CLOSE_MONTHLYINCOME DOUBLE PRECISION,
CLOSE_SUMMARYCOMMENTID ID,
HSDFELIGIBLE SMALLINT,
STEPSPHASE CHAR (1),
INITIALCONTACTDATE DATE


/* Primary keys definition */

ALTER TABLE CASEPROGRAM ADD CONSTRAINT PK_CASEPROGRAM PRIMARY KEY
(CASEPROGRAMID);


/* Foreign keys definition */

ALTER TABLE CASEPROGRAM ADD CONSTRAINT FK_CASEPROGRAM_CASE FOREIGN
KEY (CASEID) REFERENCES CASE (CASEID);
ALTER TABLE CASEPROGRAM ADD CONSTRAINT FK_CASEPROGRAM_CASEMGR
FOREIGN KEY (CASEMANAGERID) REFERENCES CASEMANAGER (CASEMANAGERID);
ALTER TABLE CASEPROGRAM ADD CONSTRAINT FK_CASEPROGRAM_COMMENT
FOREIGN KEY (COMMENTID) REFERENCES COMMENT (COMMENTID);
ALTER TABLE CASEPROGRAM ADD CONSTRAINT FK_CASEPROGRAM_CONTRACT
FOREIGN KEY (CONTRACTID) REFERENCES REFCONTRACT (CONTRACTID);
ALTER TABLE CASEPROGRAM ADD CONSTRAINT FK_CASEPROGRAM_ORG FOREIGN
KEY (REFERREDBYID) REFERENCES ORGANIZATION (ORGANIZATIONID);
ALTER TABLE CASEPROGRAM ADD CONSTRAINT FK_CLOSE_DESTINATION FOREIGN
KEY (CLOSE_DESTINATION) REFERENCES REFCLOSEDESTINATION (REFCODE);
ALTER TABLE CASEPROGRAM ADD CONSTRAINT FK_CLOSE_REASON FOREIGN KEY
(CLOSE_REASON) REFERENCES REFCLOSEREASON (REFCODE);
ALTER TABLE CASEPROGRAM ADD CONSTRAINT FK_PROGRAMID FOREIGN KEY
(PROGRAMID) REFERENCES HBPROGRAM (PROGRAMID);


/* Indices definition */

CREATE INDEX IDX_CP_CONTRACTID ON CASEPROGRAM (CONTRACTID);
CREATE INDEX IDX_CP_PROGRAMID ON CASEPROGRAM (PROGRAMID);
CREATE INDEX "IDX_DateClosed" ON CASEPROGRAM (DATECLOSED);
CREATE INDEX "IDX_DateStarted" ON CASEPROGRAM (DATESTARTED);


/* Table: HBPROGRAM */

CREATE TABLE HBPROGRAM (
PROGRAMID ID NOT NULL,
PROGRAMCODE LOOKUPCODE,
PROGRAMDESCRIPTION VARCHAR (50),

/* Primary keys definition */

ALTER TABLE HBPROGRAM ADD CONSTRAINT PK_HBPROGRAM PRIMARY KEY
(PROGRAMID);


/* Indices definition */

CREATE INDEX IDX_HBPROGRAM_PROGRAMCODE ON HBPROGRAM (PROGRAMCODE);

regards,
Phil Horst