APL. Try APL. 64,000 lines down to 18. Get your 1,000 lines down to 2!
You even get arrays!
Just don't try to understand it six months later.
Bruce
Bruce A. Chitiea | SafeSectors, Inc.
112 Harvard Ave #272 | Claremont CA 91711-4716 | USA
[email protected] | +011 (909) 238-9012 c | +011 (909) 912-8678 f
------ Original Message ------
From: [email protected]
To: [email protected]
Sent: 7/4/2021 3:26:26 PM
Subject: RE: [RBASE-L] - UPDATE a column WHERE a dot is missing in the
end?
Agreed. I am in the process of reviewing a program I wrote 19 years ago
that has several levels of Cursors and I hope I can simplify it quite a
bit; I have to go through app. 1,000 lines of code...
Javier,
Javier Valencia, PE
913-915-3137
From:[email protected] <[email protected]> On Behalf Of
Buddy Walker
Sent: Sunday, July 4, 2021 6:09 AM
To:[email protected]
Subject: RE: [RBASE-L] - UPDATE a column WHERE a dot is missing in the
end?
Javier
I agree with you. I would sooner do it with one command, that’s I why
I started out as “if all else fails”. Sometimes the declare cursor is
the only thing that works .
Happy 4th everyone
Buddy
From:[email protected] <[email protected]> On Behalf Of
[email protected]
Sent: Saturday, July 3, 2021 4:29 PM
To:[email protected]
Subject: RE: [RBASE-L] - UPDATE a column WHERE a dot is missing in the
end?
Buddy,
I am using SQL statements more often now where I used Cursors before.
Using your code, you can combine getting the last character and string
length to create the condition.
SET VAR vColLength = (SLEN(.vColValue))
SET VAR vColLastChar = (SGET(.vColValue,1,.vColLength))
UPDATE johantab SET kalla2 = (kalla2 + '.') WHERE (SGET(kalla2,1,
(SLEN(kalla2)))) <> ‘.’
*Might need to check parentheses 😊
Having said that, Karen’s solution:
UPDATE johantab SET kalla2 = (kalla2 + '.') WHERE kalla2 NOT LIKE '%.'
is more elegant/simpler.
It would be interesting to see if one runs faster than the other and I
guess it would depend on the size of column kalla2, but with a one time
update of under 8,000 records, it is really not relevant.
I am currently working with a table with 170,000+ records where the
process requires a number of updates and the process is run multiple
time, so execution time is definitely a concern.
Javier,
Javier Valencia, PE
913-915-3137
From:[email protected] <[email protected]> On Behalf Of
Buddy Walker
Sent: Saturday, July 3, 2021 1:53 PM
To:[email protected]
Subject: RE: [RBASE-L] - UPDATE a column WHERE a dot is missing in the
end?
Bo
If all else fails then try looping through table with declare cursor
I’m assuming there could be a dot anywhere in the column but you also
need one at the end.
Buddy
---Code Starts Here
SET VAR vColValue TEXT
SET VAR vColLength INTEGER
SET VAR vDot = ('.')
DECLARE C1 CURSOR FOR SELECT kalla2 +
FROM SomeTable
OPEN c1
FETCH c1 INTO +
vColValue INDICATOR iv1
WHILE SQLCODE <> 100 THEN
SET VAR vColLength = (SLEN(.vColValue))
SET VAR vColLastChar = (SGET(.vColValue,1,.vColLength))
IF vColLastChar <> .vDot THEN
SET VAR vColValue = (.vColValue + .vDot)
UPDATE SomeTable SET kalla2 = .vColValue WHERE CURRENT OF C1
ENDIF
SET VAR vColLength = 0
SET VAR vColLastChar = NULL
SET VAR vColValue = NULL
FETCH c1 INTO +
vColValue INDICATOR iv1
ENDWHILE
DROP CURSOR c1
CLE VAR vColValue
RETURN--Code Ends Here
From:[email protected] <[email protected]> On Behalf Of
Bo Franzén
Sent: Saturday, July 3, 2021 10:43 AM
To: R:BASE <[email protected]>
Subject: [RBASE-L] - UPDATE a column WHERE a dot is missing in the end?
Dear R:BASE!
I have a price database (Middle Ages) that is going to be printed in
due time. A column, källa2, with the (often printed) source in a TEXT
FORMAT often lacks a dot [.] in the end. How to UPDATE all rows that
lack a dot? I have tried:
R>UPDATE johantab SET källa2 = LAST LIKE '%.' WHERE källa2 LAST NOT
LIKE '%.'
-ERROR- Column källa2 must be a valid TEXT. ( 122)
Strange, since källa2 is a TEXT column. Operators change over time.
Probably I'm behind. One way would be to add a dot to all rows in order
to SRPL '..' with '.' But that did not work either:
R>UPDATE johantab SET källa2 = LAST LIKE '%.'
-ERROR- Column källa2 must be a valid TEXT. ( 122)
To UPDATE 7733 columns by hand seems like a terrible waste of time.
But, as said, I am probably behind.
Bo Franzén
Department of Economic History
Stockholm University
R>COMPUTE ALL tran_id FROM johantab WHERE källa2 LAST NOT LIKE '%.'
tran_id Count = 7733
Rows = 8008
--
For group guidelines, visit
http://www.rbase.com/support/usersgroup_guidelines.php
---
You received this message because you are subscribed to the Google
Groups "RBASE-L" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rbase-l/28791a1702b0408da38541b47ad63903%40ekohist.su.se
<https://groups.google.com/d/msgid/rbase-l/28791a1702b0408da38541b47ad63903%40ekohist.su.se?utm_medium=email&utm_source=footer>.
--
For group guidelines, visit
http://www.rbase.com/support/usersgroup_guidelines.php
---
You received this message because you are subscribed to the Google
Groups "RBASE-L" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rbase-l/002201d7703c%24a7a228d0%24f6e67a70%24%40comcast.net
<https://groups.google.com/d/msgid/rbase-l/002201d7703c%24a7a228d0%24f6e67a70%24%40comcast.net?utm_medium=email&utm_source=footer>.
--
For group guidelines, visit
http://www.rbase.com/support/usersgroup_guidelines.php
---
You received this message because you are subscribed to the Google
Groups "RBASE-L" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rbase-l/!%26!AAAAAAAAAAAYAAAAAAAAAG1gU%2BA71stIig71BAFnx9iihQAAEAAAAA0VCJ/KWT5Nro6SIEyxOKwBAAAAAA%3D%3D%40vtgonline.com
<https://groups.google.com/d/msgid/rbase-l/!%26!AAAAAAAAAAAYAAAAAAAAAG1gU%2BA71stIig71BAFnx9iihQAAEAAAAA0VCJ/KWT5Nro6SIEyxOKwBAAAAAA%3D%3D%40vtgonline.com?utm_medium=email&utm_source=footer>.
--
For group guidelines, visit
http://www.rbase.com/support/usersgroup_guidelines.php
---
You received this message because you are subscribed to the Google
Groups "RBASE-L" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rbase-l/001701d770c5%240ecaa9f0%242c5ffdd0%24%40comcast.net
<https://groups.google.com/d/msgid/rbase-l/001701d770c5%240ecaa9f0%242c5ffdd0%24%40comcast.net?utm_medium=email&utm_source=footer>.
--
For group guidelines, visit
http://www.rbase.com/support/usersgroup_guidelines.php
---
You received this message because you are subscribed to the Google
Groups "RBASE-L" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rbase-l/!%26!AAAAAAAAAAAYAAAAAAAAAG1gU%2BA71stIig71BAFnx9iihQAAEAAAAB1%2BQSE47WBMoZNivDJZH/8BAAAAAA%3D%3D%40vtgonline.com
<https://groups.google.com/d/msgid/rbase-l/!%26!AAAAAAAAAAAYAAAAAAAAAG1gU%2BA71stIig71BAFnx9iihQAAEAAAAB1%2BQSE47WBMoZNivDJZH/8BAAAAAA%3D%3D%40vtgonline.com?utm_medium=email&utm_source=footer>.
--
For group guidelines, visit
http://www.rbase.com/support/usersgroup_guidelines.php
---
You received this message because you are subscribed to the Google Groups "RBASE-L" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rbase-l/em1fae5be2-88d4-4e66-a6ef-1843c96c45fa%40pathfinder.