// All RDD Drivers Test — DBFNTX, DBFCDX, SIXCDX, DBFNSX simultaneously // Copyright (c) 2026 Charles KWON OhJun (charleskwonohjun@gmail.com) FUNCTION Main() LOCAL i ? "============================================" ? " All RDD Drivers Simultaneous Test" ? "============================================" ? "" // Show available drivers ? "Available drivers:", RddList() ? "Default RDD:", RddName() ? "" // === Create 4 databases === ? "1. Creating 4 databases..." dbCreate("rdd_ntx", {{"ID","N",6,0},{"NAME","C",15,0},{"TYPE","C",10,0}}) dbCreate("rdd_cdx", {{"ID","N",6,0},{"NAME","C",15,0},{"TYPE","C",10,0}}) dbCreate("rdd_six", {{"ID","N",6,0},{"NAME","C",15,0},{"TYPE","C",10,0}}) dbCreate("rdd_nsx", {{"ID","N",6,0},{"NAME","C",15,0},{"TYPE","C",10,0}}) ? " 4 databases created" ? "" // === Open each with different VIA driver === ? "2. Opening with different drivers..." SELECT 1 USE "rdd_ntx" ALIAS NTX_DB ? " Area 1: DBFNTX" SELECT 2 USE "rdd_cdx" ALIAS CDX_DB ? " Area 2: DBFCDX" SELECT 3 USE "rdd_six" ALIAS SIX_DB ? " Area 3: SIXCDX" SELECT 4 USE "rdd_nsx" ALIAS NSX_DB ? " Area 4: DBFNSX" ? "" // === Populate all areas === ? "3. Populating all areas with 30 records each..." FOR i := 1 TO 30 SELECT 1 APPEND BLANK FieldPut(1, i) FieldPut(2, {"Alpha","Bravo","Charlie","Delta","Echo","Fox"}[Int(Mod(i-1,6))+1]) FieldPut(3, "NTX") SELECT 2 APPEND BLANK FieldPut(1, i) FieldPut(2, {"Alpha","Bravo","Charlie","Delta","Echo","Fox"}[Int(Mod(i-1,6))+1]) FieldPut(3, "CDX") SELECT 3 APPEND BLANK FieldPut(1, i) FieldPut(2, {"Alpha","Bravo","Charlie","Delta","Echo","Fox"}[Int(Mod(i-1,6))+1]) FieldPut(3, "SIX") SELECT 4 APPEND BLANK FieldPut(1, i) FieldPut(2, {"Alpha","Bravo","Charlie","Delta","Echo","Fox"}[Int(Mod(i-1,6))+1]) FieldPut(3, "NSX") NEXT SELECT 1 ? " NTX records:", RecCount() SELECT 2 ? " CDX records:", RecCount() SELECT 3 ? " SIX records:", RecCount() SELECT 4 ? " NSX records:", RecCount() ? "" // === Create indexes on all === ? "4. Creating indexes..." SELECT 1 INDEX ON NAME TO rdd_ntx_idx ? " NTX index created" SELECT 2 INDEX ON NAME TO rdd_cdx_idx ? " CDX index created" SELECT 3 INDEX ON NAME TO rdd_six_idx ? " SIX index created" SELECT 4 INDEX ON NAME TO rdd_nsx_idx ? " NSX index created" ? "" // === Navigate each in index order === ? "5. First/Last by index order:" SELECT 1 GO TOP ? " NTX first:", AllTrim(FieldGet(2)), "type:", AllTrim(FieldGet(3)) GO BOTTOM ? " NTX last:", AllTrim(FieldGet(2)) SELECT 2 GO TOP ? " CDX first:", AllTrim(FieldGet(2)), "type:", AllTrim(FieldGet(3)) GO BOTTOM ? " CDX last:", AllTrim(FieldGet(2)) SELECT 3 GO TOP ? " SIX first:", AllTrim(FieldGet(2)), "type:", AllTrim(FieldGet(3)) SELECT 4 GO TOP ? " NSX first:", AllTrim(FieldGet(2)), "type:", AllTrim(FieldGet(3)) ? "" // === SEEK in each === ? "6. SEEK 'Delta' in each:" SELECT 1 SEEK "Delta" ? " NTX: Found=", Found(), "ID=", FieldGet(1) SELECT 2 SEEK "Delta" ? " CDX: Found=", Found(), "ID=", FieldGet(1) SELECT 3 SEEK "Delta" ? " SIX: Found=", Found(), "ID=", FieldGet(1) SELECT 4 SEEK "Delta" ? " NSX: Found=", Found(), "ID=", FieldGet(1) ? "" // === SIX functions === ? "7. HBSIX functions:" ? " sx_IsFPT():", sx_IsFPT() ? " sx_IsDBT():", sx_IsDBT() ? " sx_AutoOpen():", sx_AutoOpen() ? "" // === Close all === ? "8. Closing all areas..." SELECT 4 USE SELECT 3 USE SELECT 2 USE SELECT 1 USE ? " All closed." ? "" ? "============================================" ? " All RDD Drivers Test PASSED!" ? "============================================" RETURN NIL