RE: tsunami help

new topic     » topic index » view thread      » older message » newer message

George Walters wrote:
> 
> 
> I'm trying to figure out how to use tsunami record manager. Here's my
> problem/question.
> 
> I have a record {1,250,"Company 250", 1,3....etc) which is a customer 
> setup
> record.
> 
> 1 = company number (integer) ( 2 digits max)
> 250 = customer number (integer) (6 digits max)
> 
> the key in EUdata base would be " 1    250"
> 
> rc = trmSegDef (1,"company", 1, 1, 2, 0)
> rc = trmSegDef (2,"CustNbr", 1, 2, 6, 0)
> 
> Is this how I would try to define the segments? Reading the doc it would
> seem that the segment fields for a key should be strings not integers or
> atoms. So I'm confused on how to get back a record once it's been 
> written.
> 
> record = GegEqual(atom hFile, 1 , {1, 250})............Is this how? Or 
> do I
> have to construct a string key and if so then I'm really confused how 
> the
> input and output get matched up.
> 
> thanks for any pointers.
> 
> george
> 
> I use strings for my keys.  Your seg defs are okay, except I would use a 
> 6 for the flag parameter:
rc = trmSegDef (1,"company", 1, 1, 2, 6)
rc = trmSegDef (2,"CustNbr", 1, 2, 6, 6)

The 6 means no duplicates allowed and no key compression used.
all the flags are listed below:

Here's one of my init files:

-- Diaginit.exw - by Ron Austin -- bubbashrimp
-- Initializes files using Tsunami Wrapper written
--                         by H.W. Overman -- euman

include trm_eu.ew
object result,
      EyePath,
          fio 

    
   EyePath = getenv("EYEDIR")
    puts(1,EyePath)
  fio = "Diagnosis.dat"
      if sequence(EyePath) then
    fio=EyePath&"\\Data\\Diagnosis.dat"
        end if
  
-- Step 1: define the Tsunami file ----------------------------

result = trm_FileDef(1, 0, 2) -- 1 page, no compression, 2 key segments

-- Step 2: define the Tsunami file's key segment(s) -----------

-- trmSegDef (segment#,index name,key #, start location, length, flags)
--flags
-- 1 - case sensitive
-- 2 - no duplicates
-- 4 - no compression
-- 8 - binary key
-- 2+4=6 -- no dups, no key compression
result = trm_SegDef(1, "Diag_Code", 1, 1, 6, 6)
result = trm_SegDef(2, "Diagnosis", 2, 8, 44, 4)

-- Step 3: - create the Tsunami file --------------------------
result = trm_Create(fio, 1)
--if  not result then
result = message_box(fio&" created successfully ","File Created ", 
MB_OK)
--end if

Notice that some of the statements have changed.  Euman added a "trm_" 
in front of all the statements to avoid possible clashes with statements 
from other sources.

so SegDef is now trm_SegDef, etc.

I'll send you my Diagnosis.exw program and the current version of 
trm_eu.ew and maybe that will help.

I first built a record by padding each field and & ing them together.  
Recently I changed and seperated the fields with a delimter (chr 127).  
This saves space as you don't have to have fixed field length/fixed 
record length records.  You do have to pad the keys though.  The 
routines for adding delimters and extracting the fields is in the 
program I am sending you.

You caught me at a bad time as I am leaving to go to a customer's 
location in West Palm Beach, FL and I might not come back.  (naw, I'll 
be back in 2-3 days)

If anyone else wants the program I'm sending to George, let me know.

Ron

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu