× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Hi,

Before release V5R4 it is not possible to update joined tables.
With release V5R4 it is possible to create instead of triggers, that can be
registered for a SQL view.
The view itself can consist of several tables joined together

As for your problem is there a unique key available on your joined files?
If so you can execute either an SQL-Update or update with native I/O.

C/Exec SQL Update MyTable
C+ Set MyField1 = :HostVar1,
C+ MyField2 = :HostVar2
C+ Where Key1 = :HostKey1 and Key2 = :HostKey2
C/End-Exec

If you are not able to determine an unique key, you may return the relative
record no of the row and update the row with native I/O. Do not use an
SQL-Update with relative record no, because a table scan must be performed
which slows down performance for big files.

To get the relative record no use the SQL scalar function RRN

Mit freundlichen Grüßen / Best regards

Birgitta Hauser

"Shoot for the moon, even if you miss, you'll land among the stars." (Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok)
"What is worse than training your staff and losing them? Not training them
and keeping them!"

-----Ursprüngliche Nachricht-----
Von: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] Im Auftrag von
MKirkpatrick@xxxxxxxxxxxxxxxxx
Gesendet: Wednesday, August 29, 2007 18:44
An: midrange-l@xxxxxxxxxxxx
Betreff: Updating a record using embedded SQL


This is my first attempt at updating a record using SQL. I believe my
problem lies in the DECLARE stmt because of the JOIN:

declare c1 cursor for
SELECT h.office, chart, crtdat, undata, userid, offno
FROM NHISXX as h
LEFT JOIN NCUSTT as c ON h.office = c.office
WHERE h.rectyp = 'PA' and h.userid <> ' ' and h.office =
:pOffice;

I want to update a field in the NHISXX file but am not able to add the FOR
UPDATE OF clause to the above. I am using a cursor because of other
processing in the pgm.

My update statement is as follows:

update NHISXX set fill01 = 'X'
where current of c1;

Any suggestions on how to best handle this situation? Thanks.




This email and any files transmitted with it are confidential and intended
solely for the use of the individual or entity to whom they are addressed.
Unless you are the addressee (or authorized to receive for the addressee),
you may not use, copy or disclose to anyone this email or any information
contained in this email. If you have received this email in error, please
advise the sender by replying to this email, and delete this email
immediately. Please note that any views or opinions presented in this email
are solely those of the author and do not necessarily represent those of
Western Dental Services, Inc. Finally, the recipient should check this
email and any attachments for the presence of viruses. Western Dental
Services, Inc. accepts no liability for any damage caused by any virus
transmitted by this email.

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.