Which RDD Class should be used for DBF/DBZ/DBV

Public support forum for peer to peer support with related to the Visual Objects and Vulcan.NET products
ArunBerlin
Posts: 33
Joined: Tue Oct 27, 2020 1:19 pm
Location: India

Which RDD Class should be used for DBF/DBZ/DBV

Post by ArunBerlin »

I've used classes DBFNTX and DBFCDX in VODBCreate. It produces DBF/DBT/DBZ and DBF/FPT/DBZ combinations.
DBV -Memo File
DBZ - Index File

But my requirement is DBF/DBV/DBZ.

The documentation doesn't provide any information regarding this.
Documentationhttps://www.xsharp.eu/runtimehelp/html/cat-RDD_Classes.htm class=""]Documentation[/url]

Let me know, if there are any options to create the DBF/DBV/DBZ combo.
Thank you
User avatar
robert
Posts: 4225
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Which RDD Class should be used for DBF/DBZ/DBV

Post by robert »

Arun,
You would have to use DBFMEMO RDD.
But we have not implemented that yet. :(
It is not a lot of work to do that, since we have all the components already (the DBV is a FPT with another extension) but we have simply not found the time to do it.

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
ArunBerlin
Posts: 33
Joined: Tue Oct 27, 2020 1:19 pm
Location: India

Which RDD Class should be used for DBF/DBZ/DBV

Post by ArunBerlin »

Thank you for the info
ArunBerlin
Posts: 33
Joined: Tue Oct 27, 2020 1:19 pm
Location: India

Which RDD Class should be used for DBF/DBZ/DBV

Post by ArunBerlin »

Hi Robert,

When can I expect this option(DBV/DBZ/DBF) to be released.
It will be really helpful for my development, if an approximate date can be specified.

Thanks.
User avatar
robert
Posts: 4225
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Which RDD Class should be used for DBF/DBZ/DBV

Post by robert »

Arun,

I will try to add this in the next build.
Please send me some example files so I can test it.

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
ArunBerlin
Posts: 33
Joined: Tue Oct 27, 2020 1:19 pm
Location: India

Which RDD Class should be used for DBF/DBZ/DBV

Post by ArunBerlin »

Thankyou Robert for considering the request.
I'm attaching a sample (DBF-DBZ-DBV Sample.zip) with this message.
Attachments
DBF-DBZ-DBV Sample.zip
(1.06 KiB) Downloaded 87 times
User avatar
robert
Posts: 4225
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Which RDD Class should be used for DBF/DBZ/DBV

Post by robert »

Arun,

Can you show a piece of example code how you are working with the file ?

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
ArunBerlin
Posts: 33
Joined: Tue Oct 27, 2020 1:19 pm
Location: India

Which RDD Class should be used for DBF/DBZ/DBV

Post by ArunBerlin »

Hi Robert,

Functional flow - Create DBV/DBZ - > Open the file -> Replace(append) the DBV content with a 'Data String'

Code:

Code: Select all


FUNCTION _DictCreate(pszDictName AS PSZ) AS LONG PASCAL
   LOCAL cFile AS STRING
   LOCAL aStruc AS ARRAY
   LOCAL strRDDList AS _RDDLIST
   LOCAL nRet := 0 AS LONG

   SetAnsi(FALSE)
   SetCollation(#CLIPPER)
   SetDateCountry(XSharp.Core.Functions.BRITISH)
   SetCentury(TRUE)
   cFile := Psz2String(pszDictName) + '.DBZ' // Index file
   strRDDList := GetRDDList()
   aStruc := {{"DATA","M",10,0}}
   
   IF VODBCreate(cFile, aStruc, strRDDList, TRUE, "blob", NULL_STRING, FALSE, FALSE)
       nRet := 1
   ENDIF
RETURN nRet


INTERNAL FUNCTION GetRDDList() AS _RDDLIST
   LOCAL strRDDList AS _RDDLIST
   LOCAL DIM aRDDNames2[2] AS STRING
   LOCAL DIM aRDDNames3[3] AS STRING
   LOCAL dwRDDs AS DWORD
   
   dwRDDs := iif(Empty(NULL_SYMBOL), 2, 3)

   IF dwRDDs == 3
      aRDDNames3[1] := "CAVODBF"
      aRDDNames3[2] := #DBFNTX
      aRDDNames3[3] := NULL_SYMBOL     
      strRDDList := _RDDList{aRDDNames3}
   ELSE
      aRDDNames2[1] := "CAVODBF"
      aRDDNames2[2] := #DBFNTX
      strRDDList := _RDDList{aRDDNames2}
   ENDIF
RETURN strRDDList


FUNCTION _DictOpen(pszDictName AS STRING,nShare AS LONG,nRO AS LONG) AS LONG PASCAL
   LOCAL cFile,cAlias AS STRING
   LOCAL strRDDList AS _RDDLIST
   LOCAL nRet := 0 AS LONG
  
   SetAnsi(FALSE)
   SetCollation(#CLIPPER)
   SetDateCountry(XSharp.Core.Functions.BRITISH)
   SetCentury(TRUE)
   
   cFile := UPPER(pszDictName) + '.DBZ' // Index file
   cAlias := "__" + Str(100000 + VODBSetSelect(0),6,0)
   strRDDList := GetRDDList()
   IF VODBUseArea(TRUE, strRDDlist, cFile, cAlias, TRUE, TRUE) .and. !NetErr()
       nRet := (cAlias)->(VODBGetSelect())
   ENDIF  
RETURN nRet


FUNCTION _DictReplace(nArea AS LONG,pszBuffer AS PSZ,nSize AS LONG,nNew AS LONG) AS LONG PASCAL
   LOCAL nRet := 1 AS LONG
   LOCAL cData AS STRING
   LOCAL wCh AS WORD
   LOCAL sAsc AS SHORT
   Local mess 
   Local mess2 
   LOCAL oErr AS USUAL
   LOCAL ErrorStruct
   
   IF nNew == 1
      nRet := iif((nArea)->(VODBAppend(TRUE)) .and. !NetErr(),1,0)
   ENDIF
   
   IF nRet == 1
      cData := Mem2String(pszBuffer,nSize)
      FOR wCh := 1 UPTO SLen(cData)
         sAsc := Asc(CharPos(cData, wCh))
         IF sAsc >= 176
            cData := Stuff(cData, wCh, 1, CHR(sAsc - 48))
         ENDIF
      NEXT
 
      (nArea)->Data := cData
          
   ENDIF
RETURN nRet



User avatar
robert
Posts: 4225
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Which RDD Class should be used for DBF/DBZ/DBV

Post by robert »

Arun,

This is X# code..
Can you show the original VO code that you used for this.
I first want to see if I can create and open this file in VO before I even attempt to do it in X#.

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
AlainC
Posts: 10
Joined: Mon Nov 15, 2021 9:57 am

Which RDD Class should be used for DBF/DBZ/DBV

Post by AlainC »

Hi,

Here is a small class in VO to create and read a DBV file (see attachment).

Best regards
Alain
Attachments
testBLOB.txt
(1.28 KiB) Downloaded 87 times
Post Reply