SD 0.9-1 Available for download

136 views
Skip to first unread message

Big River Guy

unread,
Apr 18, 2025, 6:29:18 PMApr 18
to Pick and MultiValue Databases
After a few months off, Don is back doing some light QA and posting these updates.  Don and Mark have updated the main repo of SD to version 0.9-1.  Development of SD is our hobby. Additional developer contributions would be welcomed. You may find SD appropriate in many situations where you need an open source multi-value database.  Changes for this release:

Installer: There is now a single installer that should work for both Fedora and Ubuntu based distros.  It has been tested on Fedora 42 and Ubuntu 25.04.

Procs: Due to popular demand PROC support is now included.

Tape system: The tape system is now available as an option during installation and can be used for backup and restore of accounts.

To download this update using git: 


or download a zip file at https://github/com/stringdatabase/sdb64

James A

unread,
Apr 18, 2025, 7:34:43 PMApr 18
to mvd...@googlegroups.com

Btw I had my son download SD and see if he could learn a bit of MV BASIC (he does some web/flutter/Python programming now).

 

But due to major syntactic differences from UV (which is all I’ve used for 30 years) and lack of good error messages, we didn’t get far.

 

If your curious: the first one that took a while to figure out (partially because I didn’t expect things to ‘just not work’…had I realized that, I would have suspected the syntax sooner): was ‘while readnext’.

 

We use this ‘everywhere’.. I just counted our UV codebase (most of the 337 lines are removed but I left a few to give you the idea of how we use it..):

 

>F WHILE READNEXT -C

 

starting search for -->WHILE READNEXT<--

grep -ni 'WHILE READNEXT' /u/dsisrc/DA.BP/* --exclude-dir=*

 

Searching DA.BP==================================================

 

0147 BATCH.SEND.PROCESS.EMAILS.V2 >loop while readnext batch_id do …

 

MANAGE.CLOSING.CONDS.V3 >loop while readnext ClosingId from ClosingIdList do

..

 

TotalHits = 337

 

 

--
You received this message because you are subscribed to
the "Pick and MultiValue Databases" group.
To post, email to: mvd...@googlegroups.com
To unsubscribe, email to: mvdbms+un...@googlegroups.com
For more options, visit http://groups.google.com/group/mvdbms
---
You received this message because you are subscribed to the Google Groups "Pick and MultiValue Databases" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mvdbms+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/mvdbms/19fde46a-80af-4bb0-a1be-69b63f0ba9c5n%40googlegroups.com.

Big River Guy

unread,
Apr 18, 2025, 10:06:47 PMApr 18
to Pick and MultiValue Databases
SD is a fork of ScarletDME which was a fork of the GPL version of OpenQM in 2007.
The syntax is similar to other multi-value databases, but not identical. 

As far as I can tell, the WHILE READNEXT syntax is available in Universe and jBase 
but not in D3, UniData, OpenInsight or OpenQM.

I suppose the difference is that in some dialects READNEXT is a function that returns a value
and in others a statement.

You can find the documentation for the basic syntax used by OpenQM/ScarletDME/SD at

In most multi-value dialects I have used we would do something like:

OPEN "VOC" TO VOC.FILE THEN
   SELECT VOC.FILE
   LOOP
      READNEXT ID THEN
         PRINT ID
      END ELSE
          EXIT
      END
   REPEAT
END

Wol

unread,
Apr 19, 2025, 2:49:41 PMApr 19
to mvd...@googlegroups.com
On 19/04/2025 00:34, James A wrote:
> If your curious: the first one that took a while to figure out
> (partially because I didn’t expect things to ‘just not work’…had I
> realized that, I would have suspected the syntax sooner): was ‘while
> readnext’.

That does surprise me a bit. SD and UV are both INFORMATION derivatives,
so I wouldn't expect problems.

I have been plonked in front of a d3 system, and because I only knew
INFORMATION/UV, I struggled badly.

And the interviewers completely failed to understand the problem -
"they're both Pick systems, aren't they?". I guess i dodged a bullet by
not getting that job.

Cheers,
Wol

Rob Allen

unread,
Apr 25, 2025, 5:40:10 PMApr 25
to Pick and MultiValue Databases
Reality has "WHILE READNEXT" also. It's very useful.

Rob

Nextjob

unread,
Apr 25, 2025, 6:42:07 PMApr 25
to mvd...@googlegroups.com
It appears the ability to use readnext as a function was added to QM sometime after 2.6-6.
$MODE compiler directive:
CONDITIONAL.STATEMENTS  Allow most statements that have a THEN/ELSE clause to be used as conditional elements inWHILE or UNTIL.

One could always use a local function to mimic:

* rdnxt
deffun myreadnext(id) LOCAL

open 'CUSTOMERS' to cm else stop 'cannot open customers'
select cm

loop
while myreadnext(id)
  crt id
repeat
stop

local function myreadnext(id)
  readnext id then
    return @True
  end else
    return @False
  end
end

end


--
You received this message because you are subscribed to
the "Pick and MultiValue Databases" group.
To post, email to: mvd...@googlegroups.com
To unsubscribe, email to: mvdbms+un...@googlegroups.com
For more options, visit http://groups.google.com/group/mvdbms
---
You received this message because you are subscribed to the Google Groups "Pick and MultiValue Databases" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mvdbms+un...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages