From 5d8a67de95b022e092ab9007131b460f08250ca2 Mon Sep 17 00:00:00 2001 From: Phillip Sawyer <30532122+Azer7@users.noreply.github.com> Date: Wed, 26 Aug 2020 23:51:57 -0600 Subject: [PATCH] Added .NET (VB & C#) Interfaces, C# Test, .NET reference guides, and .NET example projects --- books/CSharp-readme.html | 255 ++ books/CSharp_Reference_Guide.chm | Bin 0 -> 465820 bytes books/CSharp_User_Guide.chm | Bin 0 -> 399547 bytes books/VBNET-readme.html | 132 + examples/Projects/CSharp/c4ap/App.ico | Bin 0 -> 1078 bytes examples/Projects/CSharp/c4ap/AssemblyInfo.cs | 58 + examples/Projects/CSharp/c4ap/c4ap.csproj | 102 + examples/Projects/VB.NET/EXAMPLE.vbproj | 154 + examples/Projects/VB.NET/ExampleFrm.resX | 117 + examples/Projects/VB.NET/ExampleFrm.vb | 121 + examples/source/CSharp/Append.cs | 49 + examples/source/CSharp/BANK.cs | 78 + examples/source/CSharp/CHAP14EG.cs | 30 + examples/source/CSharp/COPYDAT2.cs | 45 + examples/source/CSharp/COPYDATA.cs | 32 + examples/source/CSharp/CUSTLIST.cs | 49 + examples/source/CSharp/DATAINFO.cs | 59 + examples/source/CSharp/DELETION.cs | 75 + examples/source/CSharp/MULTI.cs | 135 + examples/source/CSharp/NEWLIST.cs | 126 + examples/source/CSharp/NEWLIST2.cs | 144 + examples/source/CSharp/NOGROUP.cs | 48 + examples/source/CSharp/NOGROUP2.cs | 46 + examples/source/CSharp/RELATE1.cs | 86 + examples/source/CSharp/RELATE2.cs | 61 + examples/source/CSharp/RELATE3.cs | 101 + examples/source/CSharp/RELATE4.cs | 92 + examples/source/CSharp/REUSE.cs | 52 + examples/source/CSharp/SEEKER.cs | 141 + examples/source/CSharp/SHOWDAT2.cs | 59 + examples/source/CSharp/SHOWDATA.cs | 39 + examples/source/CSharp/SHOWLST2.cs | 105 + examples/source/CSharp/TRANSFER.cs | 111 + examples/source/CSharp/ex0.cs | 29 + examples/source/CSharp/ex1.cs | 36 + examples/source/CSharp/ex10.cs | 25 + examples/source/CSharp/ex100.cs | 30 + examples/source/CSharp/ex101.cs | 31 + examples/source/CSharp/ex102.cs | 26 + examples/source/CSharp/ex104.cs | 25 + examples/source/CSharp/ex105.cs | 31 + examples/source/CSharp/ex106.cs | 27 + examples/source/CSharp/ex107.cs | 31 + examples/source/CSharp/ex108.cs | 30 + examples/source/CSharp/ex109.cs | 23 + examples/source/CSharp/ex11.cs | 47 + examples/source/CSharp/ex110.cs | 33 + examples/source/CSharp/ex111.cs | 25 + examples/source/CSharp/ex112.cs | 27 + examples/source/CSharp/ex113.cs | 34 + examples/source/CSharp/ex114.cs | 32 + examples/source/CSharp/ex13.cs | 43 + examples/source/CSharp/ex135.cs | 28 + examples/source/CSharp/ex136.cs | 40 + examples/source/CSharp/ex137.cs | 32 + examples/source/CSharp/ex138.cs | 27 + examples/source/CSharp/ex14.cs | 30 + examples/source/CSharp/ex140.cs | 48 + examples/source/CSharp/ex141.cs | 43 + examples/source/CSharp/ex142.cs | 40 + examples/source/CSharp/ex143.cs | 49 + examples/source/CSharp/ex144.cs | 49 + examples/source/CSharp/ex145.cs | 27 + examples/source/CSharp/ex15.cs | 34 + examples/source/CSharp/ex17.cs | 29 + examples/source/CSharp/ex18.cs | 28 + examples/source/CSharp/ex184.cs | 29 + examples/source/CSharp/ex186.cs | 26 + examples/source/CSharp/ex187.cs | 43 + examples/source/CSharp/ex188.cs | 30 + examples/source/CSharp/ex189.cs | 26 + examples/source/CSharp/ex19.cs | 32 + examples/source/CSharp/ex2.cs | 31 + examples/source/CSharp/ex20.cs | 27 + examples/source/CSharp/ex21.cs | 22 + examples/source/CSharp/ex22.cs | 19 + examples/source/CSharp/ex23.cs | 32 + examples/source/CSharp/ex24.cs | 28 + examples/source/CSharp/ex25.cs | 30 + examples/source/CSharp/ex26.cs | 24 + examples/source/CSharp/ex27.cs | 30 + examples/source/CSharp/ex28.cs | 28 + examples/source/CSharp/ex29.cs | 22 + examples/source/CSharp/ex30.cs | 40 + examples/source/CSharp/ex31.cs | 23 + examples/source/CSharp/ex32.cs | 20 + examples/source/CSharp/ex33.cs | 22 + examples/source/CSharp/ex34.cs | 21 + examples/source/CSharp/ex35.cs | 26 + examples/source/CSharp/ex36.cs | 41 + examples/source/CSharp/ex37.cs | 39 + examples/source/CSharp/ex38.cs | 27 + examples/source/CSharp/ex39.cs | 29 + examples/source/CSharp/ex4.cs | 35 + examples/source/CSharp/ex40.cs | 28 + examples/source/CSharp/ex41.cs | 24 + examples/source/CSharp/ex42.cs | 28 + examples/source/CSharp/ex43.cs | 36 + examples/source/CSharp/ex44.cs | 33 + examples/source/CSharp/ex45.cs | 24 + examples/source/CSharp/ex46.cs | 34 + examples/source/CSharp/ex47.cs | 24 + examples/source/CSharp/ex48.cs | 29 + examples/source/CSharp/ex49.cs | 27 + examples/source/CSharp/ex5.cs | 31 + examples/source/CSharp/ex50.cs | 26 + examples/source/CSharp/ex51.cs | 26 + examples/source/CSharp/ex52.cs | 37 + examples/source/CSharp/ex53.cs | 33 + examples/source/CSharp/ex54.cs | 32 + examples/source/CSharp/ex55.cs | 27 + examples/source/CSharp/ex56.cs | 39 + examples/source/CSharp/ex57.cs | 30 + examples/source/CSharp/ex58.cs | 27 + examples/source/CSharp/ex6.cs | 26 + examples/source/CSharp/ex60.cs | 33 + examples/source/CSharp/ex61.cs | 31 + examples/source/CSharp/ex62.cs | 26 + examples/source/CSharp/ex63.cs | 48 + examples/source/CSharp/ex64.cs | 37 + examples/source/CSharp/ex65.cs | 37 + examples/source/CSharp/ex66.cs | 34 + examples/source/CSharp/ex67.cs | 34 + examples/source/CSharp/ex68.cs | 28 + examples/source/CSharp/ex69.cs | 33 + examples/source/CSharp/ex7.cs | 25 + examples/source/CSharp/ex70.cs | 28 + examples/source/CSharp/ex71.cs | 31 + examples/source/CSharp/ex8.cs | 30 + examples/source/CSharp/ex92.cs | 26 + examples/source/CSharp/ex93.cs | 25 + examples/source/CSharp/ex94.cs | 27 + examples/source/CSharp/ex96.cs | 27 + examples/source/CSharp/ex97.cs | 69 + examples/source/CSharp/ex99.cs | 34 + examples/source/VB.NET/EX0.vb | 39 + examples/source/VB.NET/EX1.vb | 57 + examples/source/VB.NET/EX10.vb | 52 + examples/source/VB.NET/EX100.vb | 38 + examples/source/VB.NET/EX101.vb | 49 + examples/source/VB.NET/EX102.vb | 56 + examples/source/VB.NET/EX11.vb | 51 + examples/source/VB.NET/EX12.vb | 64 + examples/source/VB.NET/EX13.vb | 39 + examples/source/VB.NET/EX14.vb | 63 + examples/source/VB.NET/EX15.vb | 39 + examples/source/VB.NET/EX16.vb | 39 + examples/source/VB.NET/EX17.vb | 43 + examples/source/VB.NET/EX18.vb | 28 + examples/source/VB.NET/EX19.vb | 46 + examples/source/VB.NET/EX2.vb | 44 + examples/source/VB.NET/EX20.vb | 44 + examples/source/VB.NET/EX21.vb | 39 + examples/source/VB.NET/EX22.vb | 35 + examples/source/VB.NET/EX23.vb | 38 + examples/source/VB.NET/EX24.vb | 29 + examples/source/VB.NET/EX25.vb | 50 + examples/source/VB.NET/EX26.vb | 34 + examples/source/VB.NET/EX27.vb | 33 + examples/source/VB.NET/EX28.vb | 36 + examples/source/VB.NET/EX29.vb | 30 + examples/source/VB.NET/EX3.vb | 44 + examples/source/VB.NET/EX30.vb | 44 + examples/source/VB.NET/EX31.vb | 46 + examples/source/VB.NET/EX32.vb | 59 + examples/source/VB.NET/EX33.vb | 54 + examples/source/VB.NET/EX34.vb | 38 + examples/source/VB.NET/EX35.vb | 38 + examples/source/VB.NET/EX36.vb | 35 + examples/source/VB.NET/EX37.vb | 32 + examples/source/VB.NET/EX38.vb | 33 + examples/source/VB.NET/EX39.vb | 40 + examples/source/VB.NET/EX4.vb | 45 + examples/source/VB.NET/EX40.vb | 39 + examples/source/VB.NET/EX41.vb | 41 + examples/source/VB.NET/EX42.vb | 32 + examples/source/VB.NET/EX43.vb | 34 + examples/source/VB.NET/EX44.vb | 34 + examples/source/VB.NET/EX45.vb | 35 + examples/source/VB.NET/EX46.vb | 32 + examples/source/VB.NET/EX47.vb | 41 + examples/source/VB.NET/EX48.vb | 43 + examples/source/VB.NET/EX49.vb | 38 + examples/source/VB.NET/EX5.vb | 37 + examples/source/VB.NET/EX50.vb | 35 + examples/source/VB.NET/EX51.vb | 50 + examples/source/VB.NET/EX52.vb | 42 + examples/source/VB.NET/EX53.vb | 37 + examples/source/VB.NET/EX54.vb | 54 + examples/source/VB.NET/EX55.vb | 34 + examples/source/VB.NET/EX56.vb | 34 + examples/source/VB.NET/EX57.vb | 34 + examples/source/VB.NET/EX58.vb | 72 + examples/source/VB.NET/EX59.vb | 47 + examples/source/VB.NET/EX6.vb | 39 + examples/source/VB.NET/EX60.vb | 44 + examples/source/VB.NET/EX61.vb | 40 + examples/source/VB.NET/EX62.vb | 35 + examples/source/VB.NET/EX63.vb | 39 + examples/source/VB.NET/EX64.vb | 46 + examples/source/VB.NET/EX65.vb | 37 + examples/source/VB.NET/EX66.vb | 38 + examples/source/VB.NET/EX67.vb | 59 + examples/source/VB.NET/EX68.vb | 25 + examples/source/VB.NET/EX69.vb | 21 + examples/source/VB.NET/EX7.vb | 36 + examples/source/VB.NET/EX70.vb | 22 + examples/source/VB.NET/EX71.vb | 22 + examples/source/VB.NET/EX72.vb | 27 + examples/source/VB.NET/EX73.vb | 23 + examples/source/VB.NET/EX74.vb | 27 + examples/source/VB.NET/EX75.vb | 41 + examples/source/VB.NET/EX76.vb | 27 + examples/source/VB.NET/EX77.vb | 42 + examples/source/VB.NET/EX78.vb | 35 + examples/source/VB.NET/EX79.vb | 28 + examples/source/VB.NET/EX8.vb | 52 + examples/source/VB.NET/EX80.vb | 35 + examples/source/VB.NET/EX81.vb | 40 + examples/source/VB.NET/EX82.vb | 40 + examples/source/VB.NET/EX83.vb | 34 + examples/source/VB.NET/EX84.vb | 64 + examples/source/VB.NET/EX85.vb | 58 + examples/source/VB.NET/EX86.vb | 41 + examples/source/VB.NET/EX87.vb | 40 + examples/source/VB.NET/EX88.vb | 39 + examples/source/VB.NET/EX89.vb | 42 + examples/source/VB.NET/EX9.vb | 35 + examples/source/VB.NET/EX90.vb | 40 + examples/source/VB.NET/EX91.vb | 28 + examples/source/VB.NET/EX92.vb | 31 + examples/source/VB.NET/EX93.vb | 50 + examples/source/VB.NET/EX94.vb | 53 + examples/source/VB.NET/EX95.vb | 35 + examples/source/VB.NET/EX96.vb | 76 + examples/source/VB.NET/EX97.vb | 77 + examples/source/VB.NET/EX98.vb | 68 + examples/source/VB.NET/EX99.vb | 41 + interfaces/CSharp/Codebase.cs | 3183 +++++++++++++++++ interfaces/VB.NET/CodeBase.vb | 1689 +++++++++ test/CSharp/t4all.cs | 695 ++++ 241 files changed, 15684 insertions(+) create mode 100644 books/CSharp-readme.html create mode 100644 books/CSharp_Reference_Guide.chm create mode 100644 books/CSharp_User_Guide.chm create mode 100644 books/VBNET-readme.html create mode 100644 examples/Projects/CSharp/c4ap/App.ico create mode 100644 examples/Projects/CSharp/c4ap/AssemblyInfo.cs create mode 100644 examples/Projects/CSharp/c4ap/c4ap.csproj create mode 100644 examples/Projects/VB.NET/EXAMPLE.vbproj create mode 100644 examples/Projects/VB.NET/ExampleFrm.resX create mode 100644 examples/Projects/VB.NET/ExampleFrm.vb create mode 100644 examples/source/CSharp/Append.cs create mode 100644 examples/source/CSharp/BANK.cs create mode 100644 examples/source/CSharp/CHAP14EG.cs create mode 100644 examples/source/CSharp/COPYDAT2.cs create mode 100644 examples/source/CSharp/COPYDATA.cs create mode 100644 examples/source/CSharp/CUSTLIST.cs create mode 100644 examples/source/CSharp/DATAINFO.cs create mode 100644 examples/source/CSharp/DELETION.cs create mode 100644 examples/source/CSharp/MULTI.cs create mode 100644 examples/source/CSharp/NEWLIST.cs create mode 100644 examples/source/CSharp/NEWLIST2.cs create mode 100644 examples/source/CSharp/NOGROUP.cs create mode 100644 examples/source/CSharp/NOGROUP2.cs create mode 100644 examples/source/CSharp/RELATE1.cs create mode 100644 examples/source/CSharp/RELATE2.cs create mode 100644 examples/source/CSharp/RELATE3.cs create mode 100644 examples/source/CSharp/RELATE4.cs create mode 100644 examples/source/CSharp/REUSE.cs create mode 100644 examples/source/CSharp/SEEKER.cs create mode 100644 examples/source/CSharp/SHOWDAT2.cs create mode 100644 examples/source/CSharp/SHOWDATA.cs create mode 100644 examples/source/CSharp/SHOWLST2.cs create mode 100644 examples/source/CSharp/TRANSFER.cs create mode 100644 examples/source/CSharp/ex0.cs create mode 100644 examples/source/CSharp/ex1.cs create mode 100644 examples/source/CSharp/ex10.cs create mode 100644 examples/source/CSharp/ex100.cs create mode 100644 examples/source/CSharp/ex101.cs create mode 100644 examples/source/CSharp/ex102.cs create mode 100644 examples/source/CSharp/ex104.cs create mode 100644 examples/source/CSharp/ex105.cs create mode 100644 examples/source/CSharp/ex106.cs create mode 100644 examples/source/CSharp/ex107.cs create mode 100644 examples/source/CSharp/ex108.cs create mode 100644 examples/source/CSharp/ex109.cs create mode 100644 examples/source/CSharp/ex11.cs create mode 100644 examples/source/CSharp/ex110.cs create mode 100644 examples/source/CSharp/ex111.cs create mode 100644 examples/source/CSharp/ex112.cs create mode 100644 examples/source/CSharp/ex113.cs create mode 100644 examples/source/CSharp/ex114.cs create mode 100644 examples/source/CSharp/ex13.cs create mode 100644 examples/source/CSharp/ex135.cs create mode 100644 examples/source/CSharp/ex136.cs create mode 100644 examples/source/CSharp/ex137.cs create mode 100644 examples/source/CSharp/ex138.cs create mode 100644 examples/source/CSharp/ex14.cs create mode 100644 examples/source/CSharp/ex140.cs create mode 100644 examples/source/CSharp/ex141.cs create mode 100644 examples/source/CSharp/ex142.cs create mode 100644 examples/source/CSharp/ex143.cs create mode 100644 examples/source/CSharp/ex144.cs create mode 100644 examples/source/CSharp/ex145.cs create mode 100644 examples/source/CSharp/ex15.cs create mode 100644 examples/source/CSharp/ex17.cs create mode 100644 examples/source/CSharp/ex18.cs create mode 100644 examples/source/CSharp/ex184.cs create mode 100644 examples/source/CSharp/ex186.cs create mode 100644 examples/source/CSharp/ex187.cs create mode 100644 examples/source/CSharp/ex188.cs create mode 100644 examples/source/CSharp/ex189.cs create mode 100644 examples/source/CSharp/ex19.cs create mode 100644 examples/source/CSharp/ex2.cs create mode 100644 examples/source/CSharp/ex20.cs create mode 100644 examples/source/CSharp/ex21.cs create mode 100644 examples/source/CSharp/ex22.cs create mode 100644 examples/source/CSharp/ex23.cs create mode 100644 examples/source/CSharp/ex24.cs create mode 100644 examples/source/CSharp/ex25.cs create mode 100644 examples/source/CSharp/ex26.cs create mode 100644 examples/source/CSharp/ex27.cs create mode 100644 examples/source/CSharp/ex28.cs create mode 100644 examples/source/CSharp/ex29.cs create mode 100644 examples/source/CSharp/ex30.cs create mode 100644 examples/source/CSharp/ex31.cs create mode 100644 examples/source/CSharp/ex32.cs create mode 100644 examples/source/CSharp/ex33.cs create mode 100644 examples/source/CSharp/ex34.cs create mode 100644 examples/source/CSharp/ex35.cs create mode 100644 examples/source/CSharp/ex36.cs create mode 100644 examples/source/CSharp/ex37.cs create mode 100644 examples/source/CSharp/ex38.cs create mode 100644 examples/source/CSharp/ex39.cs create mode 100644 examples/source/CSharp/ex4.cs create mode 100644 examples/source/CSharp/ex40.cs create mode 100644 examples/source/CSharp/ex41.cs create mode 100644 examples/source/CSharp/ex42.cs create mode 100644 examples/source/CSharp/ex43.cs create mode 100644 examples/source/CSharp/ex44.cs create mode 100644 examples/source/CSharp/ex45.cs create mode 100644 examples/source/CSharp/ex46.cs create mode 100644 examples/source/CSharp/ex47.cs create mode 100644 examples/source/CSharp/ex48.cs create mode 100644 examples/source/CSharp/ex49.cs create mode 100644 examples/source/CSharp/ex5.cs create mode 100644 examples/source/CSharp/ex50.cs create mode 100644 examples/source/CSharp/ex51.cs create mode 100644 examples/source/CSharp/ex52.cs create mode 100644 examples/source/CSharp/ex53.cs create mode 100644 examples/source/CSharp/ex54.cs create mode 100644 examples/source/CSharp/ex55.cs create mode 100644 examples/source/CSharp/ex56.cs create mode 100644 examples/source/CSharp/ex57.cs create mode 100644 examples/source/CSharp/ex58.cs create mode 100644 examples/source/CSharp/ex6.cs create mode 100644 examples/source/CSharp/ex60.cs create mode 100644 examples/source/CSharp/ex61.cs create mode 100644 examples/source/CSharp/ex62.cs create mode 100644 examples/source/CSharp/ex63.cs create mode 100644 examples/source/CSharp/ex64.cs create mode 100644 examples/source/CSharp/ex65.cs create mode 100644 examples/source/CSharp/ex66.cs create mode 100644 examples/source/CSharp/ex67.cs create mode 100644 examples/source/CSharp/ex68.cs create mode 100644 examples/source/CSharp/ex69.cs create mode 100644 examples/source/CSharp/ex7.cs create mode 100644 examples/source/CSharp/ex70.cs create mode 100644 examples/source/CSharp/ex71.cs create mode 100644 examples/source/CSharp/ex8.cs create mode 100644 examples/source/CSharp/ex92.cs create mode 100644 examples/source/CSharp/ex93.cs create mode 100644 examples/source/CSharp/ex94.cs create mode 100644 examples/source/CSharp/ex96.cs create mode 100644 examples/source/CSharp/ex97.cs create mode 100644 examples/source/CSharp/ex99.cs create mode 100644 examples/source/VB.NET/EX0.vb create mode 100644 examples/source/VB.NET/EX1.vb create mode 100644 examples/source/VB.NET/EX10.vb create mode 100644 examples/source/VB.NET/EX100.vb create mode 100644 examples/source/VB.NET/EX101.vb create mode 100644 examples/source/VB.NET/EX102.vb create mode 100644 examples/source/VB.NET/EX11.vb create mode 100644 examples/source/VB.NET/EX12.vb create mode 100644 examples/source/VB.NET/EX13.vb create mode 100644 examples/source/VB.NET/EX14.vb create mode 100644 examples/source/VB.NET/EX15.vb create mode 100644 examples/source/VB.NET/EX16.vb create mode 100644 examples/source/VB.NET/EX17.vb create mode 100644 examples/source/VB.NET/EX18.vb create mode 100644 examples/source/VB.NET/EX19.vb create mode 100644 examples/source/VB.NET/EX2.vb create mode 100644 examples/source/VB.NET/EX20.vb create mode 100644 examples/source/VB.NET/EX21.vb create mode 100644 examples/source/VB.NET/EX22.vb create mode 100644 examples/source/VB.NET/EX23.vb create mode 100644 examples/source/VB.NET/EX24.vb create mode 100644 examples/source/VB.NET/EX25.vb create mode 100644 examples/source/VB.NET/EX26.vb create mode 100644 examples/source/VB.NET/EX27.vb create mode 100644 examples/source/VB.NET/EX28.vb create mode 100644 examples/source/VB.NET/EX29.vb create mode 100644 examples/source/VB.NET/EX3.vb create mode 100644 examples/source/VB.NET/EX30.vb create mode 100644 examples/source/VB.NET/EX31.vb create mode 100644 examples/source/VB.NET/EX32.vb create mode 100644 examples/source/VB.NET/EX33.vb create mode 100644 examples/source/VB.NET/EX34.vb create mode 100644 examples/source/VB.NET/EX35.vb create mode 100644 examples/source/VB.NET/EX36.vb create mode 100644 examples/source/VB.NET/EX37.vb create mode 100644 examples/source/VB.NET/EX38.vb create mode 100644 examples/source/VB.NET/EX39.vb create mode 100644 examples/source/VB.NET/EX4.vb create mode 100644 examples/source/VB.NET/EX40.vb create mode 100644 examples/source/VB.NET/EX41.vb create mode 100644 examples/source/VB.NET/EX42.vb create mode 100644 examples/source/VB.NET/EX43.vb create mode 100644 examples/source/VB.NET/EX44.vb create mode 100644 examples/source/VB.NET/EX45.vb create mode 100644 examples/source/VB.NET/EX46.vb create mode 100644 examples/source/VB.NET/EX47.vb create mode 100644 examples/source/VB.NET/EX48.vb create mode 100644 examples/source/VB.NET/EX49.vb create mode 100644 examples/source/VB.NET/EX5.vb create mode 100644 examples/source/VB.NET/EX50.vb create mode 100644 examples/source/VB.NET/EX51.vb create mode 100644 examples/source/VB.NET/EX52.vb create mode 100644 examples/source/VB.NET/EX53.vb create mode 100644 examples/source/VB.NET/EX54.vb create mode 100644 examples/source/VB.NET/EX55.vb create mode 100644 examples/source/VB.NET/EX56.vb create mode 100644 examples/source/VB.NET/EX57.vb create mode 100644 examples/source/VB.NET/EX58.vb create mode 100644 examples/source/VB.NET/EX59.vb create mode 100644 examples/source/VB.NET/EX6.vb create mode 100644 examples/source/VB.NET/EX60.vb create mode 100644 examples/source/VB.NET/EX61.vb create mode 100644 examples/source/VB.NET/EX62.vb create mode 100644 examples/source/VB.NET/EX63.vb create mode 100644 examples/source/VB.NET/EX64.vb create mode 100644 examples/source/VB.NET/EX65.vb create mode 100644 examples/source/VB.NET/EX66.vb create mode 100644 examples/source/VB.NET/EX67.vb create mode 100644 examples/source/VB.NET/EX68.vb create mode 100644 examples/source/VB.NET/EX69.vb create mode 100644 examples/source/VB.NET/EX7.vb create mode 100644 examples/source/VB.NET/EX70.vb create mode 100644 examples/source/VB.NET/EX71.vb create mode 100644 examples/source/VB.NET/EX72.vb create mode 100644 examples/source/VB.NET/EX73.vb create mode 100644 examples/source/VB.NET/EX74.vb create mode 100644 examples/source/VB.NET/EX75.vb create mode 100644 examples/source/VB.NET/EX76.vb create mode 100644 examples/source/VB.NET/EX77.vb create mode 100644 examples/source/VB.NET/EX78.vb create mode 100644 examples/source/VB.NET/EX79.vb create mode 100644 examples/source/VB.NET/EX8.vb create mode 100644 examples/source/VB.NET/EX80.vb create mode 100644 examples/source/VB.NET/EX81.vb create mode 100644 examples/source/VB.NET/EX82.vb create mode 100644 examples/source/VB.NET/EX83.vb create mode 100644 examples/source/VB.NET/EX84.vb create mode 100644 examples/source/VB.NET/EX85.vb create mode 100644 examples/source/VB.NET/EX86.vb create mode 100644 examples/source/VB.NET/EX87.vb create mode 100644 examples/source/VB.NET/EX88.vb create mode 100644 examples/source/VB.NET/EX89.vb create mode 100644 examples/source/VB.NET/EX9.vb create mode 100644 examples/source/VB.NET/EX90.vb create mode 100644 examples/source/VB.NET/EX91.vb create mode 100644 examples/source/VB.NET/EX92.vb create mode 100644 examples/source/VB.NET/EX93.vb create mode 100644 examples/source/VB.NET/EX94.vb create mode 100644 examples/source/VB.NET/EX95.vb create mode 100644 examples/source/VB.NET/EX96.vb create mode 100644 examples/source/VB.NET/EX97.vb create mode 100644 examples/source/VB.NET/EX98.vb create mode 100644 examples/source/VB.NET/EX99.vb create mode 100644 interfaces/CSharp/Codebase.cs create mode 100644 interfaces/VB.NET/CodeBase.vb create mode 100644 test/CSharp/t4all.cs diff --git a/books/CSharp-readme.html b/books/CSharp-readme.html new file mode 100644 index 0000000..37fc771 --- /dev/null +++ b/books/CSharp-readme.html @@ -0,0 +1,255 @@ + + +CodeBase for C# + + + + + +

CodeBase for C# - ReadMe

+ +

Copyright ©1988-2007 Sequiter Inc.  All rights reserved.

+ +
+ +

This document contains useful information on how to use the CodeBase CSharp API with +Microsoft Visual Studio.

+ +

Installation

+ +

The files within this ZIP file are intended to add C# support to the base CodeBase for Windows installation. Before extracting this ZIP file, download and install one of the builds on the CodeBase for Windows download page.

+ +

Once you have downloaded and installed one of the builds on the CodeBase for Windows download page, extract this ZIP file to the same location as where you installed CodeBase for Windows. For example, if you installed CodeBase to C:\codebase\, extract this ZIP file to C:\codebase\. + +

Installed Files

+ +

After extracting this ZIP file, you should have +the following additional files and folders. (The list below includes only the files and folders that this ZIP file adds to the CodeBase installation; it does not describe the components of the base CodeBase installation.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
C:\codebase 
\books 
+ CSharp_Reference_Guide.chm
+ CSharp_User_Guide.chm +
Documentation for the CodeBase C# API
\examples 
\Source 
\CSharpSample source code featured in the documentation.
\source 
+ codebase.cs + CodeBase class module
+ +

Required Files

+ +

To use CodeBase in a C# project, use the Project|Add Existing Item... +menu command in your Visual Studio IDE to add codebase.cs to the +project.  Then, add

+ +

using CodeBase;

+ +

to your source code files that will be using the CodeBase C# classes.

+ +

After you have built your C# application, copy the files in CodeBase's DLL32 folder to a location where +your application can access it, ideally in the same folder as the +application or in the Windows System32 folder.

+ +

Building and Running Examples

+ +

The examples featured in the documentation are included as +.CS files in the Examples\Source\CSharp +folder.

+ +

To build and run these examples, the project c4ap.csproj has +been included for you in the Examples\Projects\CSharp folder. +The c4ap project +includes a dummy source file called example.cs. To build one of the +examples, you would do one of the following.

+ + + +

Information for Users Transitioning from CodeBase for C++ to CodeBase for C#

+ +

If you have been using CodeBase previously with C++ and are making a +transition to C#, the following information will be useful for understanding +the differences between the two.

+ +

This version of CodeBase for C# includes classes corresponding to the most +often used classes from the C++ version:

+ + + +

Almost all the class descriptions in the CodeBase C++ Reference Guide are applicable +to the C# classes. The minor differences are outlined below:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
In the C++ APIIn the C# API
+ Parameters and return values + implemented as long data type (e.g. Data4::go(long)) + + Implemented as int data type + (e.g. Data4::go(int)) +
+ Parameters and return values + implemented as char pointer (e.g. char *Data4::alias()) + + Implemented as string (e.g. string Data4::alias()) +
Constants (e.g. r4success) + Constant members of the Code4 class + (e.g. Code4.r4success) +
Code4::unlockAuto(), Code4::unlockAuto(int)Code4.unlockAuto class property
Data4::check()Data4.checkIndex()
Data4::lock()Data4.lockRecord()
Data4::log()Data4.log class property
Data4::position(), Data4::position(double)Data4.position class property
Data4::record()Not available
Expr4::null()Expr4.isNull()
Expr4::true()Expr4.isTrue()
Field4::assignLong(long)Not available
Field4::operator charField4.getChar()
Field4::operator doubleField4.getDouble()
Field4::operator intField4.getInt()
Field4::operator longNot available
Field4::null()Field4.isNull()
Field4::true()Field4.isTrue()
Field4::ptr()Not available
Index4::create()Not available; index creation is done through the Data4::create() method
Index4::tagAdd()Not available
+ + + diff --git a/books/CSharp_Reference_Guide.chm b/books/CSharp_Reference_Guide.chm new file mode 100644 index 0000000000000000000000000000000000000000..499930c4ab0d7a84edf30643da069cd2b9f5cb64 GIT binary patch literal 465820 zcmeFabzBwQ6EJ@16e;OWQBpualmQ9x1<5s(xV zDV5*eyP&}1^LzOI@xGt;50?+j?w*-5bLPy>nKS3?BB!b%g93p-ZUetaz^}pE1_vyB z2n7EJl4pU(D}oeUNZNCT*(HKw*KmCJK?VZIoqedP44%B)hd<$!0>>jt4De+Cubiri zGQ3C?_{E0b19&0>0RD>#zXlGtTzkNQ20$#}rbQ&OE+_pfg5+&bCO9p;{NPYlxGK*M z+=CzRd+_>^xPU+CT#OPbDw0UBC$rjEm|ToTQL4v&*;Rx`@#^Pd9lDH

vb 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%0A|1L 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 literal 0 HcmV?d00001 diff --git a/books/CSharp_User_Guide.chm b/books/CSharp_User_Guide.chm new file mode 100644 index 0000000000000000000000000000000000000000..27cfab968826bfe3a061d55e91f148846ebbc00c GIT binary patch literal 399547 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

ARk;GU^-$pI$viw`OPnC#jQ=$c6I_Z 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 z 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 literal 0 HcmV?d00001 diff --git a/books/VBNET-readme.html b/books/VBNET-readme.html new file mode 100644 index 0000000..64a484a --- /dev/null +++ b/books/VBNET-readme.html @@ -0,0 +1,132 @@ + + +CodeBase for VB.NET + + + + + +

CodeBase for VB.NET - ReadMe

+ +

Copyright ©1988-2008 Sequiter Inc.  All rights reserved.

+ +
+ +

This document contains useful information on how to use the CodeBase VB.NET API with +Microsoft Visual Studio.

+ +

Installation

+ +

The files within this ZIP file are intended to add VB.NET support to the base +CodeBase for Windows installation. Before extracting this ZIP file, download +and install one of the builds on the CodeBase for Windows download page.

+ +

Once you have downloaded and installed one of the builds on the CodeBase +for Windows download page, extract this ZIP file to the same location as +where you installed CodeBase for Windows. For example, if you installed +CodeBase to C:\codebase\, extract this ZIP file to C:\codebase\.

+ +

Installed Files

+ +

After extracting this ZIP file, you should have the following +additional files and folders. (The list below includes only the files +and folders that this ZIP file adds to the CodeBase installation; it +does not describe the components of the base CodeBase installation.)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
C:\codebase 
\books 
+ VB_Reference_Guide.chm
+ VB_Users_Guide.chm +
Documentation for the CodeBase VB.NET API
\examples 
\Source 
\VBNETSample source code featured in the documentation.
\source 
+ codebase.vb + CodeBase VB.NET module
+ +

Required Files & References

+ +

To use CodeBase in a VB.NET project, add the following components to your project: +

    +
  • CodeBase VB.NET module (codebase.vb). Use the Project|Add Existing Item... +menu command and browse to codebase.vb.
  • +
  • Microsoft.VisualBasic.Compatibility reference. Use the Project|Add Reference... +menu command, select the .NET tab and browse to +Microsoft.VisualBasic.Compatibility
  • +
+

+ +

After you have built your application, copy the files in CodeBase's DLL32 folder to a location where +your application can access it, ideally in the same folder as the +application or in the Windows System32 folder.

+ +

Building and Running Examples

+ +

The examples featured in the documentation are included as +.vb files in the Examples\Source\VBNET +folder.

+ +

To build and run these examples, the project EXAMPLE.vbproj has +been included for you in the Examples\Projects\VBNET folder. +This project +includes a dummy source file called example.vb. To build one of the +examples, you would do one of the following.

+ +
    +
  • Make a copy of the .vb file and name it example.vb, or
  • +
  • + Replace the project's reference to example.vb + with a reference to the .vb file you wish to use. +
  • +
+ + + diff --git a/examples/Projects/CSharp/c4ap/App.ico b/examples/Projects/CSharp/c4ap/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/examples/Projects/CSharp/c4ap/AssemblyInfo.cs b/examples/Projects/CSharp/c4ap/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/examples/Projects/CSharp/c4ap/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/examples/Projects/CSharp/c4ap/c4ap.csproj b/examples/Projects/CSharp/c4ap/c4ap.csproj new file mode 100644 index 0000000..f9f8164 --- /dev/null +++ b/examples/Projects/CSharp/c4ap/c4ap.csproj @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/Projects/VB.NET/EXAMPLE.vbproj b/examples/Projects/VB.NET/EXAMPLE.vbproj new file mode 100644 index 0000000..a5d2862 --- /dev/null +++ b/examples/Projects/VB.NET/EXAMPLE.vbproj @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/Projects/VB.NET/ExampleFrm.resX b/examples/Projects/VB.NET/ExampleFrm.resX new file mode 100644 index 0000000..063f434 --- /dev/null +++ b/examples/Projects/VB.NET/ExampleFrm.resX @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + Public + + + Public + + + Public + + + Public + + + Form1 + + \ No newline at end of file diff --git a/examples/Projects/VB.NET/ExampleFrm.vb b/examples/Projects/VB.NET/ExampleFrm.vb new file mode 100644 index 0000000..c067d33 --- /dev/null +++ b/examples/Projects/VB.NET/ExampleFrm.vb @@ -0,0 +1,121 @@ +Option Strict Off +Option Explicit On +Friend Class Form1 + Inherits System.Windows.Forms.Form +#Region "Windows Form Designer generated code " + Public Sub New() + MyBase.New() + If m_vb6FormDefInstance Is Nothing Then + If m_InitializingDefInstance Then + m_vb6FormDefInstance = Me + Else + Try + 'For the start-up form, the first instance created is the default instance. + If System.Reflection.Assembly.GetExecutingAssembly.EntryPoint.DeclaringType Is Me.GetType Then + m_vb6FormDefInstance = Me + End If + Catch + End Try + End If + End If + 'This call is required by the Windows Form Designer. + InitializeComponent() + End Sub + 'Form overrides dispose to clean up the component list. + Protected Overloads Overrides Sub Dispose(ByVal Disposing As Boolean) + If Disposing Then + If Not components Is Nothing Then + components.Dispose() + End If + End If + MyBase.Dispose(Disposing) + End Sub + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + Public ToolTip1 As System.Windows.Forms.ToolTip + Public WithEvents Command1 As System.Windows.Forms.Button + Public WithEvents Label1 As System.Windows.Forms.Label + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + Public WithEvents ListBox1 As System.Windows.Forms.ListBox + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components) + Me.Command1 = New System.Windows.Forms.Button() + Me.Label1 = New System.Windows.Forms.Label() + Me.ListBox1 = New System.Windows.Forms.ListBox() + Me.SuspendLayout() + ' + 'Command1 + ' + Me.Command1.BackColor = System.Drawing.SystemColors.Control + Me.Command1.Cursor = System.Windows.Forms.Cursors.Default + Me.Command1.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Command1.ForeColor = System.Drawing.SystemColors.ControlText + Me.Command1.Location = New System.Drawing.Point(170, 300) + Me.Command1.Name = "Command1" + Me.Command1.RightToLeft = System.Windows.Forms.RightToLeft.No + Me.Command1.Size = New System.Drawing.Size(111, 31) + Me.Command1.TabIndex = 0 + Me.Command1.Text = "CLICK" + ' + 'Label1 + ' + Me.Label1.BackColor = System.Drawing.SystemColors.Window + Me.Label1.Cursor = System.Windows.Forms.Cursors.Default + Me.Label1.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label1.ForeColor = System.Drawing.SystemColors.WindowText + Me.Label1.Location = New System.Drawing.Point(60, 340) + Me.Label1.Name = "Label1" + Me.Label1.RightToLeft = System.Windows.Forms.RightToLeft.No + Me.Label1.Size = New System.Drawing.Size(342, 22) + Me.Label1.TabIndex = 1 + Me.Label1.Text = "Click the button to execute the example code" + ' + 'ListBox1 + ' + Me.ListBox1.ItemHeight = 16 + Me.ListBox1.Location = New System.Drawing.Point(8, 8) + Me.ListBox1.Name = "ListBox1" + Me.ListBox1.Size = New System.Drawing.Size(432, 276) + Me.ListBox1.TabIndex = 2 + ' + 'Form1 + ' + Me.AutoScaleBaseSize = New System.Drawing.Size(7, 15) + Me.BackColor = System.Drawing.SystemColors.Window + Me.ClientSize = New System.Drawing.Size(451, 398) + Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.ListBox1, Me.Command1, Me.Label1}) + Me.Font = New System.Drawing.Font("Arial", 7.8!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.ForeColor = System.Drawing.SystemColors.WindowText + Me.Location = New System.Drawing.Point(73, 128) + Me.Name = "Form1" + Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual + Me.Text = "Form1" + Me.ResumeLayout(False) + + End Sub +#End Region +#Region "Upgrade Support " + Private Shared m_vb6FormDefInstance As Form1 + Private Shared m_InitializingDefInstance As Boolean + Public Shared Property DefInstance() As Form1 + Get + If m_vb6FormDefInstance Is Nothing OrElse m_vb6FormDefInstance.IsDisposed Then + m_InitializingDefInstance = True + m_vb6FormDefInstance = New Form1() + m_InitializingDefInstance = False + End If + DefInstance = m_vb6FormDefInstance + End Get + Set + m_vb6FormDefInstance = Value + End Set + End Property +#End Region + + Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click + ExCode(Me) + End Sub +End Class \ No newline at end of file diff --git a/examples/source/CSharp/Append.cs b/examples/source/CSharp/Append.cs new file mode 100644 index 0000000..30012ab --- /dev/null +++ b/examples/source/CSharp/Append.cs @@ -0,0 +1,49 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class APPEND + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4(); + cb.optimize = Code4.OPT4ALL ; + cb.optimizeWrite = Code4.OPT4ALL ; + + Data4 dataFrom = new Data4( cb, "from_dbf") ; + Data4 dataTo = new Data4( cb, "to_dbf" ) ; + + cb.exitTest( ) ; + + Field4 infoFrom = new Field4( dataFrom, "NAME" ) ; + Field4 infoTo = new Field4( dataTo, "FNAME" ) ; + + cb.optStart( ) ; + + cb.lockAttempts = 1 ; + int rc1 = dataFrom.lockAll( ) ; + int rc2 = dataTo.lockAll( ) ; + + if( rc1 != 0 || rc2 != 0 ) + { + Console.WriteLine( "Locking Failed" ) ; + cb.exit( ) ; + } + + for( int rc = dataFrom.top( ); rc == 0; rc = dataFrom.skip( ) ) + { + dataTo.appendStart( ) ; + infoTo.assignField( ref infoFrom ) ; + dataTo.append( ) ; + } + + dataFrom.unlock( ) ; + dataTo.unlock( ) ; + + cb.closeAll( ) ; + cb.initUndo( ) ; + } + } +} diff --git a/examples/source/CSharp/BANK.cs b/examples/source/CSharp/BANK.cs new file mode 100644 index 0000000..746810c --- /dev/null +++ b/examples/source/CSharp/BANK.cs @@ -0,0 +1,78 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class BANK + { + static Code4 codeBase = new Code4() ; + static Data4 dataFile = new Data4() ; + static Field4 acctNo ; + static Field4 balance ; + static Tag4 acctTag = new Tag4() ; + static Tag4 balTag = new Tag4() ; + + static Field4info fieldInfo = new Field4info( ref codeBase ) ; + static Tag4info tagInfo = new Tag4info( codeBase ) ; + + static void OpenDataFile( ) + { + fieldInfo.add( "ACCT_NO", Code4.r4num, 5, 0, 0) ; + fieldInfo.add( "BALANCE", Code4.r4num, 8, 2, 0) ; + + tagInfo.add( "ACCT_TAG", "ACCT_NO", "", 0, 0 ) ; + tagInfo.add( "BAL_TAG", "BALANCE", "", 0, 0 ) ; + + dataFile.create( ref codeBase, "BANKDATA.DBF", ref fieldInfo, ref tagInfo ) ; + + acctNo = new Field4( dataFile, "ACCT_NO" ) ; + balance = new Field4( dataFile, "BALANCE" ) ; + + acctTag.init( dataFile, "ACCT_TAG" ) ; + balTag.init( dataFile, "BAL_TAG" ) ; + } + + static void PrintRecords( ) + { + Console.WriteLine("printrecords\n") ; + for( int rc = dataFile.top( ); rc == Code4.r4success; + rc = dataFile.skip( )) + { + Console.WriteLine("-------------------------------\n" + + "Account Number: {0}\nBalance : {1}\n", + acctNo.str( ), balance.str( ) ) ; + } + } + + static void AddNewRecord(int acct, double bal ) + { + dataFile.lockAll( ) ; + dataFile.appendStart( ) ; + dataFile.blank( ) ; + + acctNo.assignInt( acct ) ; + balance.assignDouble( bal ) ; + + dataFile.append( ) ; + dataFile.unlock( ) ; + } + + [STAThread] + static void Main(string[] args) + { + codeBase.errOpen = 1; + codeBase.safety = 0; + + OpenDataFile( ) ; + + AddNewRecord(12345,600.00); + + AddNewRecord(55555,300.00); + + PrintRecords( ) ; + + codeBase.closeAll( ) ; + codeBase.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/CHAP14EG.cs b/examples/source/CSharp/CHAP14EG.cs new file mode 100644 index 0000000..8dd52da --- /dev/null +++ b/examples/source/CSharp/CHAP14EG.cs @@ -0,0 +1,30 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class CHAP14EG + { + static int openFileEx( ref Code4 codeBase, Data4 data, string name) + { + short oldAccessMode = codeBase.accessMode ; + codeBase.accessMode = Code4.OPEN4DENY_RW ; + + data.open( ref codeBase, name ) ; + + codeBase.accessMode = oldAccessMode ; + + return data.isValid( ) ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 db = new Data4() ; + openFileEx( ref cb, db, "INFO" ) ; + cb.closeAll( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/COPYDAT2.cs b/examples/source/CSharp/COPYDAT2.cs new file mode 100644 index 0000000..b773ca2 --- /dev/null +++ b/examples/source/CSharp/COPYDAT2.cs @@ -0,0 +1,45 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class COPYDAT2 + { + [STAThread] + static void Main(string[] args) + { + if(args.Length != 2) + { + Console.WriteLine( "USAGE: COPYDATA " ) ; + } + else + { + Code4 codeBase = new Code4(); + codeBase.safety = 0; + Data4 dataFile = new Data4( codeBase, args.GetValue(0).ToString( ) ) ; + codeBase.exitTest( ) ; + + Field4info fields = new Field4info( dataFile ) ; //copy the fields + + //obtain the Index4 object of the production index if one exists + Index4 index = new Index4( ) ; + index = dataFile.index( dataFile.alias ) ; + + Data4 dataCopy = new Data4(); + + if( index.isValid( ) != 0 ) + { + Tag4info tags = new Tag4info( index ) ; + dataCopy.create( ref codeBase, args.GetValue(1).ToString( ), ref fields, ref tags ) ; + tags.free( ) ; + } + else + dataCopy.create( ref codeBase, args.GetValue(1).ToString( ), ref fields ) ; + + codeBase.closeAll( ) ; + fields.free( ) ; + codeBase.initUndo( ) ; + } + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/COPYDATA.cs b/examples/source/CSharp/COPYDATA.cs new file mode 100644 index 0000000..8a7c2f9 --- /dev/null +++ b/examples/source/CSharp/COPYDATA.cs @@ -0,0 +1,32 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class COPYDATA + { + [STAThread] + static void Main(string[] args) + { + if(args.Length != 2) + { + Console.WriteLine( "USAGE: COPYDATA " ) ; + } + else + { + Code4 codeBase = new Code4(); + Data4 dataFile = new Data4( codeBase, args.GetValue(0).ToString( ) ) ; + Data4 dataCopy = new Data4(); + codeBase.exitTest( ) ; + + Field4info fields = new Field4info( dataFile ) ; + codeBase.safety = 0; + dataCopy.create( ref codeBase, args.GetValue(1).ToString( ), ref fields ) ; + fields.free( ) ; + + codeBase.closeAll( ) ; + codeBase.initUndo( ) ; + } + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/CUSTLIST.cs b/examples/source/CSharp/CUSTLIST.cs new file mode 100644 index 0000000..e0caf5c --- /dev/null +++ b/examples/source/CSharp/CUSTLIST.cs @@ -0,0 +1,49 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class CUSTLIST + { + [STAThread] + static int Main(string[] args) + { + Code4 codeBase = new Code4() ; + Data4 dataFile = new Data4(codeBase, "data1.dbf" ) ; + Field4 fNameFld = new Field4( dataFile, "F_NAME" ) ; + Field4 lNameFld = new Field4( dataFile, "L_NAME" ) ; + Field4 addressFld = new Field4( dataFile, "ADDRESS" ) ; + Field4 ageFld = new Field4( dataFile, "AGE" ) ; + Field4 birthDateFld = new Field4( dataFile, "BIRTH_DATE" ) ; + Field4 marriedFld = new Field4( dataFile, "MARRIED" ) ; + Field4 amountFld = new Field4( dataFile, "AMOUNT" ) ; + Field4memo commentFld = new Field4memo( dataFile, "COMMENT" ); + + codeBase.exitTest( ) ; + + string birthDate ; + string purchased ; + string name ; + + for( int rc = dataFile.top( ); rc == Code4.r4success; rc = dataFile.skip( )) + { + purchased = amountFld.str() ; + birthDate = birthDateFld.str( ) ; + name = fNameFld.str( ) ; + name = name.Trim( ) ; + name = name + " " + lNameFld.str( ) ; + + Console.WriteLine("-------------------------------\nName : {0}\n" + + "Address : {1}\nAge : {2} Married : {3}\nBirth Date: {4}\n" + + "Comment: {5}\nPurchased this year:${6}", name.Trim(), addressFld.str( ), + ageFld.str( ), marriedFld.str( ), birthDateFld.str( ), + commentFld.str( ), purchased ) ; + } + + dataFile.close( ) ; + codeBase.initUndo( ) ; + + return 0 ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/DATAINFO.cs b/examples/source/CSharp/DATAINFO.cs new file mode 100644 index 0000000..fd4cb8e --- /dev/null +++ b/examples/source/CSharp/DATAINFO.cs @@ -0,0 +1,59 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class DATAINFO + { + [STAThread] + static int Main(string[] args) + { + if(args.Length != 1) + { + Console.WriteLine( " USAGE: DATAINFO \n" ) ; + } + else + { + Code4 codeBase = new Code4() ; + Data4 dataFile = new Data4( codeBase, args.GetValue(0).ToString() ) ; + codeBase.exitTest( ) ; + + int recCount = dataFile.recCount( ) ; + int numFields = dataFile.numFields( ) ; + uint recWidth = dataFile.recWidth( ) ; + string alias = dataFile.alias ; + + Console.WriteLine( "\t\t+---------------------------------+" ) ; + Console.WriteLine( "\t\t¦ Data File: {0, 12} ¦", args.GetValue(0) ) ; + Console.WriteLine( "\t\t¦ Alias : {0, 12} ¦", alias ) ; + Console.WriteLine( "\t\t¦ ¦" ) ; + Console.WriteLine( "\t\t¦ Number of Records: {0, 7} ¦", recCount ) ; + Console.WriteLine( "\t\t¦ Length of Record : {0, 7} ¦", recWidth ) ; + Console.WriteLine( "\t\t¦ Number of Fields : {0, 7} ¦", numFields ) ; + Console.WriteLine( "\t\t¦ ¦" ) ; + Console.WriteLine( "\t\t¦ Field Information : ¦\n" ) ; + Console.WriteLine( "\t\t¦---------------------------------¦\n"); + Console.WriteLine( "\t\t¦ Name ¦ type ¦ len ¦ dec ¦\n"); + Console.WriteLine( "\t\t¦------------+------+------+------¦\n"); + + for(short j = 1; j <= dataFile.numFields( ); j ++) + { + Field4 field = new Field4( dataFile, j ) ; + string name = field.name( ) ; + char type = (char ) field.type( ) ; + int len = (int) field.len( ) ; + int dec = field.decimals( ) ; + + Console.WriteLine( "\t\t¦ {0, 10} ¦ {1} ¦ {2,4} ¦ {3,4} ¦", + name, type, len, dec ) ; + + } + Console.WriteLine( "\t\t+---------------------------------+" ) ; + + dataFile.close( ) ; + codeBase.initUndo( ) ; + } + return 0; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/DELETION.cs b/examples/source/CSharp/DELETION.cs new file mode 100644 index 0000000..acc8783 --- /dev/null +++ b/examples/source/CSharp/DELETION.cs @@ -0,0 +1,75 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class DELETION + { + static void printDeleteStatus(int status,long recNo) + { + if(status != 0) + Console.WriteLine( "Record {0} - DELETED\n", recNo ) ; + else + Console.WriteLine( "Record {0} - NOT DELETED\n", recNo ) ; + } + + static void printRecords( Data4 dataFile) + { + int rc = 0, status; + int recNo; + + Console.WriteLine( "\n" ) ; + + dataFile.top( ) ; + while( rc != Code4.r4eof ) + { + recNo = dataFile.recNo( ) ; + status = dataFile.deleted( ) ; + printDeleteStatus( status, recNo ) ; + rc = dataFile.skip( ) ; + } + } + + [STAThread] + static void Main(string[] args) + { + Code4 codeBase = new Code4(); + Data4 dataFile = new Data4(); + Field4info fieldInfo = new Field4info( ref codeBase ) ; + fieldInfo.add( "DUMMY", 'C', 10, 0, 0 ) ; + fieldInfo.add( "MEMO", 'M', 10, 0, 0 ) ; + + int count; + + codeBase.safety = 0 ; + codeBase.errCreate = 0 ; + codeBase.lockEnforce = 1 ; + + dataFile.create(ref codeBase, "TUTOR5", ref fieldInfo ) ; + codeBase.exitTest( ) ; + + for(count = 0; count < 5; count ++) + dataFile.appendBlank( ) ; + + printRecords( dataFile ) ; + + dataFile.lockAll( ) ; + dataFile.go( 3 ) ; + dataFile.deleteRec( ) ; + dataFile.go( 1 ) ; + dataFile.deleteRec( ) ; + printRecords( dataFile ) ; + + dataFile.go( 3 ) ; + dataFile.recall( ) ; + printRecords( dataFile ) ; + + dataFile.pack( ) ; + dataFile.memoCompress( ) ; + printRecords( dataFile ) ; + + codeBase.closeAll( ) ; + codeBase.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/MULTI.cs b/examples/source/CSharp/MULTI.cs new file mode 100644 index 0000000..e9f51ed --- /dev/null +++ b/examples/source/CSharp/MULTI.cs @@ -0,0 +1,135 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class MULTI + { + static Code4 cb = new Code4() ; + static Data4 dataNames = new Data4() ; + static Field4 fieldName ; + static Tag4 tagName = new Tag4() ; + + static void addRecord() + { + Console.WriteLine( "Enter New Record\n" ) ; + string buf ; + for(;;) + { + buf = Console.ReadLine() ; + if (buf != "") break ; + } + + dataNames.appendStart( ) ; + fieldName.assign( buf ) ; + dataNames.append( ) ; + dataNames.unlock( ) ; + } + + static void findRecord() + { + Console.WriteLine( "Enter Name to Find" ) ; + string buf ; + for(;;) + { + buf = Console.ReadLine() ; + if (buf != "") break ; + } + + dataNames.select( tagName ) ; + dataNames.seek( buf ) ; + } + + static void modifyRecord() + { + short oldLockAttempts = cb.lockAttempts ; + cb.lockAttempts = 1 ; // Only make one lock attempt + + int rc = dataNames.lockRecord(dataNames.recNo( ) ) ; + if(rc == Code4.r4locked) + Console.WriteLine( "Record locked. Unable to Edit" ) ; + else + { + Console.WriteLine( "Enter Replacement Record" ) ; + string buf ; + for(;;) + { + buf = Console.ReadLine() ; + if (buf != "") break ; + } + + fieldName.assign( buf ) ; + dataNames.flush( ) ; + dataNames.unlock( ) ; + } + cb.lockAttempts = oldLockAttempts ; + } + + static void listData() + { + cb.optStart( ) ; + dataNames.optimize( Code4.OPT4ALL ) ; + dataNames.select( tagName ) ; + + for( dataNames.top( ); dataNames.eof( ) == 0; dataNames.skip( ) ) + Console.WriteLine("{0} {1}\n", dataNames.recNo( ), fieldName.str( ) ); + + dataNames.optimize( Code4.OPT4OFF ) ; + cb.optSuspend( ) ; + } + + [STAThread] + static void Main(string[] args) + { + cb.accessMode = Code4.OPEN4DENY_NONE ; + cb.readOnly = 0 ; + cb.readLock = 0 ; + cb.lockAttempts = Code4.WAIT4EVER ; + cb.lockEnforce = 1 ; + + dataNames.open( ref cb, "names" ) ; + cb.exitTest( ) ; + + fieldName = new Field4( dataNames, "NAME" ) ; + tagName.init( dataNames, "NAMENAME" ) ; + + dataNames.top( ) ; + + for(;;) + { + cb.errorCode = 0 ; + + Console.WriteLine( "Record #: {0} Name: {1}", + dataNames.recNo( ), fieldName.str( ) ) ; + + Console.WriteLine( "Enter Command ('a','f','l','m' or 'x') " ) ; + + int command ; + do + { + command = Console.Read() ; + } while (command == 10) ; + switch( command ) + { + case 'a': + addRecord( ) ; + break ; + case 'f': + findRecord( ) ; + break ; + case 'l': + listData( ) ; + break ; + case 'm': + modifyRecord( ) ; + break ; + case 'x': + cb.closeAll( ) ; + cb.initUndo( ) ; + cb.exit( ) ; + break; + } + } + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/NEWLIST.cs b/examples/source/CSharp/NEWLIST.cs new file mode 100644 index 0000000..1ea802d --- /dev/null +++ b/examples/source/CSharp/NEWLIST.cs @@ -0,0 +1,126 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class NEWLIST + { + static Code4 codeBase = new Code4() ; + static Data4 dataFile = new Data4() ; + static Field4 fName ; + static Field4 lName ; + static Field4 address ; + static Field4 age ; + static Field4 birthDate ; + static Field4 married ; + static Field4 amount ; + static Field4memo comment ; + + static void OpenDataFile( ) + { + Field4info fieldInfo = new Field4info( ref codeBase ) ; + + fieldInfo.add( "F_NAME", Code4.r4str, 10, 0, 0 ) ; + fieldInfo.add( "L_NAME", Code4.r4str, 10, 0, 0 ) ; + fieldInfo.add( "ADDRESS", Code4.r4str, 15, 0, 0 ) ; + fieldInfo.add( "AGE", Code4.r4num, 2, 0, 0 ) ; + fieldInfo.add( "BIRTH_DATE", Code4.r4date, 8, 0, 0 ) ; + fieldInfo.add( "MARRIED", Code4.r4log, 1, 0, 0 ) ; + fieldInfo.add( "AMOUNT", Code4.r4num, 7, 2, 0 ) ; + fieldInfo.add( "COMMENT", Code4.r4memo, 10, 0, 0 ) ; + + dataFile.open( ref codeBase, "people.dbf" ) ; + + if( dataFile.isValid( ) == 0 ) + dataFile.create( ref codeBase,"people.dbf", ref fieldInfo ) ; + + fName = new Field4( dataFile, "F_NAME") ; + lName = new Field4( dataFile, "L_NAME") ; + address = new Field4( dataFile, "ADDRESS") ; + age = new Field4( dataFile, "AGE") ; + birthDate = new Field4( dataFile, "BIRTH_DATE") ; + married = new Field4( dataFile, "MARRIED") ; + amount = new Field4( dataFile, "AMOUNT") ; + comment = new Field4memo( dataFile, "COMMENT") ; + } + + static void PrintRecords( ) + { + string bDate ; + string purchased ; + string name ; + + for( int rc = dataFile.top( ); rc == Code4.r4success; rc = dataFile.skip( )) + { + purchased = amount.str() ; + bDate = birthDate.str( ) ; + name = fName.str( ) ; + name = name.Trim( ) ; + name = name + " " + lName.str( ) ; + + Console.WriteLine("-------------------------------\nName : {0}\n" + + "Address : {1}\nAge : {2} Married : {3}\nBirth Date: {4}\n" + + "Comment: {5}\nPurchased this year:${6}", name.Trim(), address.str( ), + age.str( ), married.str( ), birthDate.str( ), + comment.str( ), purchased ) ; + } + } + + static void AddNewRecord(string fNameStr, string lNameStr, string addressStr + ,string dateStr, int marriedValue, double amountValue, string commentStr ) + { + dataFile.lockAll( ) ; + dataFile.appendStart( ) ; + dataFile.blank( ) ; + + fName.assign( fNameStr ) ; + lName.assign( lNameStr ) ; + address.assign( addressStr ) ; + + DateTime bDate = DateTime.ParseExact(dateStr, "yyyyMMdd", + System.Globalization.CultureInfo.CurrentCulture) ; + DateTime today = DateTime.Today ; + + TimeSpan span = today.Subtract( bDate ) ; + // approximate age -- ignore leap year + int ageValue = (int) span.Days / 365 ; + + age.assignInt( ageValue ) ; + birthDate.assign( bDate.ToString( "yyyyMMdd" ) ) ; + + if( marriedValue != 0 ) + married.assign( "T" ) ; + else + married.assign( "F" ) ; + + amount.assignDouble( amountValue ) ; + if( commentStr.Length > 0 ) + comment.assign( commentStr ) ; + + dataFile.append( ) ; + dataFile.unlock( ) ; + } + + [STAThread] + static int Main(string[] args) + { + codeBase.errOpen = 0; + codeBase.safety = 0; + codeBase.lockEnforce = 1 ; + + OpenDataFile( ) ; + + PrintRecords( ) ; + + AddNewRecord("Sarah", "Webber", "132-43 St.", "19600223", 1, 147.99, "New Customer"); + + AddNewRecord("John", "Albridge", "1232-76 Ave.", "19581012", 0, 98.99, "" ) ; + + PrintRecords( ) ; + + codeBase.closeAll( ) ; + codeBase.initUndo( ) ; + return 0 ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/NEWLIST2.cs b/examples/source/CSharp/NEWLIST2.cs new file mode 100644 index 0000000..892ddcd --- /dev/null +++ b/examples/source/CSharp/NEWLIST2.cs @@ -0,0 +1,144 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class NEWLIST2 + { + static Code4 codeBase = new Code4() ; + static Data4 dataFile = new Data4() ; + static Field4 fName ; + static Field4 lName ; + static Field4 address ; + static Field4 age ; + static Field4 birthDate ; + static Field4 married ; + static Field4 amount ; + static Field4memo comment ; + static Tag4 nameTag = new Tag4() ; + static Tag4 ageTag = new Tag4() ; + static Tag4 amountTag = new Tag4() ; + + static void CreateDataFile( ) + { + Field4info fieldInfo = new Field4info( ref codeBase ) ; + + fieldInfo.add( "F_NAME", Code4.r4str, 10, 0, 0 ) ; + fieldInfo.add( "L_NAME", Code4.r4str, 10, 0, 0 ) ; + fieldInfo.add( "ADDRESS", Code4.r4str, 15, 0, 0 ) ; + fieldInfo.add( "AGE", Code4.r4num, 2, 0, 0 ) ; + fieldInfo.add( "BIRTH_DATE", Code4.r4date, 8, 0, 0 ) ; + fieldInfo.add( "MARRIED", Code4.r4log, 1, 0, 0 ) ; + fieldInfo.add( "AMOUNT", Code4.r4num, 7, 2, 0 ) ; + fieldInfo.add( "COMMENT", Code4.r4memo, 10, 0, 0 ) ; + + Tag4info tagInfo = new Tag4info( codeBase ) ; + + tagInfo.add( "PPL_NAME", "F_NAME + L_NAME", ".NOT. DELETED()", 0, 0 ) ; + tagInfo.add( "PPL_ADDR", "ADDRESS", "", 0, 0 ) ; + tagInfo.add( "PPL_BRTH", "BIRTH_DATE", "AGE >= 18", 0, 0 ) ; + tagInfo.add( "PPL_AGE", "AGE", "", 0, 0 ) ; + tagInfo.add( "PPL_AMNT", "AMOUNT", "", 0, 0 ) ; + + dataFile.create( ref codeBase, "people.dbf", ref fieldInfo, ref tagInfo ) ; + + fName = new Field4( dataFile, "F_NAME") ; + lName = new Field4( dataFile, "L_NAME") ; + address = new Field4( dataFile, "ADDRESS") ; + age = new Field4( dataFile, "AGE") ; + birthDate = new Field4( dataFile, "BIRTH_DATE") ; + married = new Field4( dataFile, "MARRIED") ; + amount = new Field4( dataFile, "AMOUNT") ; + comment = new Field4memo( dataFile, "COMMENT") ; + + nameTag.init( dataFile, "PPL_NAME") ; + ageTag.init( dataFile, "PPL_AGE") ; + amountTag.init( dataFile, "PPL_AMNT") ; + } + + static void PrintRecords( ) + { + string bDate ; + string purchased ; + string name ; + + for( int rc = dataFile.top( ); rc == Code4.r4success; rc = dataFile.skip( )) + { + purchased = amount.str() ; + bDate = birthDate.str( ) ; + name = fName.str( ) ; + name = name.Trim( ) ; + name = name + " " + lName.str( ) ; + + Console.WriteLine("-------------------------------\nName : {0}\n" + + "Address : {1}\nAge : {2} Married : {3}\nBirth Date: {4}\n" + + "Comment: {5}\nPurchased this year:${6}", name.Trim(), address.str( ), + age.str( ), married.str( ), birthDate.str( ), + comment.str( ), purchased ) ; + } + } + + static void AddNewRecord(string fNameStr, string lNameStr, string addressStr + ,string dateStr, int marriedValue, double amountValue + ,string commentStr ) + { + dataFile.lockAll( ) ; + dataFile.appendStart( ) ; + dataFile.blank( ) ; + + fName.assign( fNameStr ) ; + lName.assign( lNameStr ) ; + address.assign( addressStr ) ; + + DateTime bDate = DateTime.ParseExact(dateStr, "yyyyMMdd", + System.Globalization.CultureInfo.CurrentCulture) ; + DateTime today = DateTime.Today ; + + TimeSpan span = today.Subtract( bDate ) ; + // approximate age -- ignore leap year + int ageValue = (int) span.Days / 365 ; + + age.assignInt( ageValue ) ; + birthDate.assign( bDate.ToString( "yyyyMMdd" ) ) ; + + if( marriedValue != 0 ) + married.assign( "T" ) ; + else + married.assign( "F" ) ; + + amount.assignDouble( amountValue ) ; + if( commentStr.Length > 0 ) + comment.assign( commentStr ) ; + + dataFile.append( ) ; + dataFile.unlock( ) ; + } + + [STAThread] + static void Main(string[] args) + { + codeBase.safety = 0 ; + codeBase.lockEnforce = 0 ; + + CreateDataFile( ) ; + + AddNewRecord( "Sarah", "Webber", "132-43 St.", "19600212", 1, 147.99 + , "New Customer"); + AddNewRecord("John", "Albridge", "1232-76 Ave.", "19581023", 0, 98.99, "" ) ; + + PrintRecords( ) ; + + dataFile.select( nameTag ) ; + PrintRecords( ) ; + + dataFile.select( ageTag ) ; + PrintRecords( ) ; + + dataFile.select( amountTag ) ; + PrintRecords( ) ; + + codeBase.closeAll( ) ; + codeBase.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/NOGROUP.cs b/examples/source/CSharp/NOGROUP.cs new file mode 100644 index 0000000..8159926 --- /dev/null +++ b/examples/source/CSharp/NOGROUP.cs @@ -0,0 +1,48 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class NOGROUP + { + static Code4 codeBase = new Code4() ; + static Data4 dataFile = new Data4() ; + static Tag4 nameTag = new Tag4() ; + static Tag4 ageTag = new Tag4() ; + static Tag4 idTag = new Tag4() ; + + [STAThread] + static void Main(string[] args) + { + codeBase.connect("","","","",""); + + if ( codeBase.indexExtension().ToUpper().Equals( "NTX" ) ) + { + codeBase.autoOpen = 0; + codeBase.safety = 0; + codeBase.accessMode = Code4.OPEN4DENY_RW ; + + Tag4info tagInfo = new Tag4info( codeBase ) ; + tagInfo.add( "STU_NAME", "L_NAME+F_NAME", "", 0, 0 ); + tagInfo.add( "STU_AGE", "AGE", "", 0, 0 ) ; + tagInfo.add( "STU_ID", "ID", "", 0, 0 ) ; + + dataFile.open( ref codeBase, "STUDENT.DBF" ) ; + Index4 index = new Index4() ; + index.create( ref dataFile, "", ref tagInfo ) ; + + nameTag.init( dataFile, "STU_NAME" ) ; + ageTag.init( dataFile, "STU_AGE" ) ; + idTag.init(dataFile, "STU_ID" ); + + codeBase.closeAll( ) ; + } + else + { + Console.Error.WriteLine( "This example is only for Clipper." ) ; + } + + codeBase.initUndo( ) ; + } + } +} diff --git a/examples/source/CSharp/NOGROUP2.cs b/examples/source/CSharp/NOGROUP2.cs new file mode 100644 index 0000000..a72689d --- /dev/null +++ b/examples/source/CSharp/NOGROUP2.cs @@ -0,0 +1,46 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class NOGROUP + { + static Code4 codeBase = new Code4() ; + static Data4 dataFile = new Data4() ; + static Tag4 nameTag = new Tag4() ; + static Tag4 ageTag = new Tag4() ; + static Tag4 idTag = new Tag4() ; + + static void printRecords( ) + { + + } + + [STAThread] + static void Main(string[] args) + { + codeBase.connect("","","","","") ; + + if ( codeBase.indexExtension().ToUpper().Equals( "NTX" ) ) + { + codeBase.autoOpen = 0 ; + codeBase.safety = 0 ; + + dataFile.open( ref codeBase, "STUDENT.DBF" ) ; + + nameTag.open( dataFile, "STU_NAME" ) ; + ageTag.open( dataFile, "STU_AGE" ) ; + idTag.open( dataFile, "STU_ID" ) ; + + dataFile.select( nameTag ) ; + printRecords(); + + codeBase.closeAll( ) ; + } + else + Console.Error.WriteLine( "This example is only for Clipper." ) ; + + codeBase.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/RELATE1.cs b/examples/source/CSharp/RELATE1.cs new file mode 100644 index 0000000..a9de0ec --- /dev/null +++ b/examples/source/CSharp/RELATE1.cs @@ -0,0 +1,86 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class RELATE1 + { + static Code4 codeBase = new Code4( 0 ) ; + static Data4 student = new Data4() ; + static Data4 enrolment = new Data4() ; + static Relate4 slave = new Relate4(); + static Relate4set master = new Relate4set(); + static Tag4 idTag = new Tag4() ; + static Tag4 nameTag = new Tag4(); + + static void openDataFiles( ) + { + codeBase.init( ) ; + + student.open( ref codeBase,"student" ) ; + enrolment.open( ref codeBase,"enroll"); + + nameTag.init( student,"STU_NAME"); + idTag.init( enrolment,"ENR_ID"); + + codeBase.exitTest( ) ; + } + + static void setRelation() + { + master.init( student ) ; + if( master.isValid( ) == 0) codeBase.exit(); + + Relate4 slave = new Relate4( master, enrolment, "ID", idTag) ; + + slave.type( Code4.relate4scan ) ; + master.top( ) ; + // 'slave' falls out of scope, but the relation remains + } + + static void printRecord() + { + Relate4iterator relation = new Relate4iterator( master) ; + Data4 data = new Data4() ; + + for( ; relation.isValid( ) != 0; relation.next( ) ) + { + data = relation.data( ) ; + + for(short j = 1; j <= data.numFields( ); j++ ) + { + Field4memo field = new Field4memo(data, j) ; + Console.WriteLine( field.str( ) ) ; + } + } + Console.WriteLine( "\n" ) ; + } + + static void listRecords() + { + int rc; + + for(rc = master.top( ); rc != Code4.r4eof; rc = master.skip( 1 ) ) + printRecord( ) ; + + Console.WriteLine( "\n" ) ; + + codeBase.unlock( ) ; + } + + [STAThread] + static void Main(string[] args) + { + openDataFiles( ) ; + + setRelation( ) ; + + listRecords( ) ; + + master.free( ) ; + + codeBase.closeAll( ) ; + codeBase.initUndo( ) ; + } + } +} diff --git a/examples/source/CSharp/RELATE2.cs b/examples/source/CSharp/RELATE2.cs new file mode 100644 index 0000000..bbbfccc --- /dev/null +++ b/examples/source/CSharp/RELATE2.cs @@ -0,0 +1,61 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class RELATE2 + { + static Code4 codeBase = new Code4() ; + static Data4 student = new Data4() ; + + static void openDataFiles( ) + { + student.open( ref codeBase, "student" ) ; + + codeBase.exitTest( ) ; + } + + static void printRecord( Data4 dataFile ) + { + for( short j=1; j <= dataFile.numFields( ); j++ ) + { + Field4memo field = new Field4memo( dataFile, j ) ; + Console.WriteLine( field.str( ) ) ; + } + + Console.WriteLine( "\n" ) ; + } + + static void query(Data4 dataFile + , string expr + , string order ) + { + Relate4set relation = new Relate4set( dataFile ) ; + if( relation.isValid( ) == 0 ) codeBase.exit( ) ; + + relation.querySet( expr ) ; + relation.sortSet( order ) ; + + for( int rc = relation.top( ); rc != Code4.r4eof; rc = relation.skip( 1 ) ) + printRecord( dataFile ) ; + + Console.WriteLine("\n") ; + + codeBase.unlock( ) ; + relation.free( ) ; + } + + [STAThread] + static void Main(string[] args) + { + openDataFiles( ) ; + + query( student, "AGE > 30", "" ) ; + + query( student, "UPPER(L_NAME) = 'MILLER'", "L_NAME + F_NAME" ) ; + + codeBase.closeAll( ) ; + codeBase.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/RELATE3.cs b/examples/source/CSharp/RELATE3.cs new file mode 100644 index 0000000..69135a9 --- /dev/null +++ b/examples/source/CSharp/RELATE3.cs @@ -0,0 +1,101 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class RELATE3 + { + static Code4 codeBase = new Code4() ; + static Data4 student = new Data4() ; + static Data4 enrolment = new Data4() ; + static Data4 classes = new Data4() ; + static Field4 studentId ; + static Field4 firstName ; + static Field4 lastName ; + static Field4 age ; + static Field4 classCode ; + static Field4 classTitle ; + static Tag4 idTag = new Tag4() ; + static Tag4 codeTag = new Tag4(); + static Relate4set classRel = new Relate4set() ; + static Relate4 studentRel = new Relate4() ; + static Relate4 enrollRel = new Relate4() ; + + static void openDataFiles() + { + student.open( ref codeBase, "student" ) ; + enrolment.open( ref codeBase, "enroll" ) ; + classes.open( ref codeBase, "classes" ) ; + studentId = new Field4( student, "ID" ) ; + firstName = new Field4( student, "F_NAME" ) ; + lastName = new Field4( student, "L_NAME" ) ; + age = new Field4( student, "AGE" ) ; + classCode = new Field4( classes, "CODE" ) ; + classTitle = new Field4( classes, "TITLE" ) ; + + idTag.init( student, "STU_ID" ) ; + codeTag.init( enrolment, "ENR_CODE" ) ; + + codeBase.exitTest( ) ; + } + + static void printStudents( ) + { + Console.WriteLine(" {0} {1} {2} {3}", + firstName.str( ), lastName.str( ), + studentId.str( ), age.str( ) ) ; + } + + static void setRelation( ) + { + classRel.init( classes ) ; + + enrollRel.init( classRel, enrolment, "CODE", codeTag ) ; + + studentRel.init( enrollRel, student, "STU_ID_TAG", idTag ) ; + } + + static void printStudentList( string expr, int direction ) + { + classRel.querySet( expr ) ; + classRel.sortSet( "student->L_NAME + student->F_NAME" ) ; + + enrollRel.type( Code4.relate4scan ) ; + + int rc, endValue ; + if( direction > 0 ) + { + rc = classRel.top( ) ; + endValue = Code4.r4eof ; + } + else + { + rc = classRel.bottom( ) ; + endValue = Code4.r4bof ; + } + Console.WriteLine("{0} {1}", classCode.str( ), classTitle.str( ) ) ; + + for ( ; rc != endValue ; rc = classRel.skip( direction ) ) + printStudents( ) ; + + Console.WriteLine( "\n" ) ; + } + + [STAThread] + static void Main(string[] args) + { + openDataFiles( ) ; + + setRelation( ) ; + + printStudentList( "CODE = 'MATH114 '", 1 ) ; + + printStudentList( "CODE = 'CMPT411 '", -1 ) ; + + codeBase.unlock( ) ; + classRel.free( ) ; + + codeBase.initUndo( ) ; + } + } +} diff --git a/examples/source/CSharp/RELATE4.cs b/examples/source/CSharp/RELATE4.cs new file mode 100644 index 0000000..0cc3fb8 --- /dev/null +++ b/examples/source/CSharp/RELATE4.cs @@ -0,0 +1,92 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class RELATE3 + { + static Code4 codeBase = new Code4( 0 ) ; + static Data4 student = new Data4() ; + static Data4 enrolment = new Data4() ; + static Field4 id ; + static Field4 fName ; + static Field4 lName ; + static Field4 age ; + static Field4 cCode ; + static Relate4 slave = new Relate4() ; + static Relate4set master = new Relate4set() ; + static Tag4 idTag = new Tag4() ; + static Tag4 nameTag = new Tag4() ; + + static void openDataFiles() + { + codeBase.init( ) ; + + student.open( ref codeBase,"student" ) ; + enrolment.open( ref codeBase,"enroll"); + + id = new Field4( student,"ID"); + fName = new Field4( student,"F_NAME"); + lName = new Field4( student,"L_NAME"); + age = new Field4( student,"AGE"); + cCode = new Field4( enrolment,"C_CODE_TAG"); + + nameTag.init( student,"STU_NAME"); + idTag.init( enrolment,"ENR_ID"); + + codeBase.exitTest( ) ; + } + + static void setRelation() + { + master.init( student ) ; + slave.init( master, enrolment, "ID", idTag); + } + + static void seek( Data4 dataFile, Tag4 tag, Relate4set relation, string key) + { + Tag4 oldTag = new Tag4() ; + + oldTag.initSelected( dataFile ) ; + dataFile.select( tag ) ; + + dataFile.seek( key ) ; + relation.doAll( ) ; + + dataFile.select( oldTag ) ; + } + + static void printRecord() + { + Console.WriteLine("{0} {1} {2} {3} {4}", + fName.str( ), lName.str( ), id.str( ), + age.str( ), cCode.str( )); + } + + [STAThread] + static void Main(string[] args) + { + openDataFiles( ) ; + + setRelation( ) ; + + seek( student + , nameTag + , master, "Tyler Harvey ") ; + + printRecord( ) ; + + seek( student + , nameTag + , master, "Miller Albert "); + + printRecord( ) ; + + codeBase.unlock( ) ; + master.free( ) ; + + codeBase.closeAll( ) ; + codeBase.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/REUSE.cs b/examples/source/CSharp/REUSE.cs new file mode 100644 index 0000000..d4e18dc --- /dev/null +++ b/examples/source/CSharp/REUSE.cs @@ -0,0 +1,52 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class REUSE + { + [STAThread] + static void Main(string[] args) + { + Code4 codeBase = new Code4(); + Data4 dataFile = new Data4(); + Field4info fieldInfo = new Field4info( ref codeBase ) ; + + fieldInfo.add( "FIELD1", 'C', 10, 0, 0 ) ; + + codeBase.safety = 0 ; + + dataFile.create(ref codeBase, "recycle", ref fieldInfo ) ; + codeBase.exitTest( ) ; + + Field4 field = new Field4(dataFile, 1); + + dataFile.appendStart(); + field.assign("One"); + dataFile.append(); + + dataFile.appendStart(); + field.assign("Two"); + dataFile.append(); + + dataFile.appendStart(); + field.assign("Three"); + dataFile.append(); + + MessageBox.Show("There are " + dataFile.recCount() + " records", "Information"); + + dataFile.go(2); + dataFile.deleteRec(); + dataFile.flush(); + + dataFile.appendStart(); + field.assign("Four"); + dataFile.append(); + + MessageBox.Show("There are " + dataFile.recCount() + " records", "Information"); + + codeBase.closeAll( ) ; + codeBase.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/SEEKER.cs b/examples/source/CSharp/SEEKER.cs new file mode 100644 index 0000000..7327472 --- /dev/null +++ b/examples/source/CSharp/SEEKER.cs @@ -0,0 +1,141 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class SEEKER + { + static Code4 codeBase = new Code4() ; + static Data4 dataFile = new Data4() ; + static Field4 fName ; + static Field4 lName ; + static Field4 address ; + static Field4 age ; + static Field4 birthDate ; + static Field4 married ; + static Field4 amount ; + static Field4memo comment ; + + static Tag4 nameTag = new Tag4() ; + static Tag4 ageTag = new Tag4() ; + static Tag4 amountTag = new Tag4() ; + static Tag4 addressTag = new Tag4() ; + static Tag4 birthdateTag = new Tag4() ; + + static void OpenDataFile( ) + { + Field4info fieldInfo = new Field4info( ref codeBase ) ; + + fieldInfo.add( "F_NAME", Code4.r4str, 10, 0, 0 ) ; + fieldInfo.add( "L_NAME", Code4.r4str, 10, 0, 0 ) ; + fieldInfo.add( "ADDRESS", Code4.r4str, 15, 0, 0 ) ; + fieldInfo.add( "AGE", Code4.r4num, 2, 0, 0 ) ; + fieldInfo.add( "BIRTH_DATE", Code4.r4date, 8, 0, 0 ) ; + fieldInfo.add( "MARRIED", Code4.r4log, 1, 0, 0 ) ; + fieldInfo.add( "AMOUNT", Code4.r4num, 7, 2, 0 ) ; + fieldInfo.add( "COMMENT", Code4.r4memo, 10, 0, 0 ) ; + + dataFile.open( ref codeBase, "people.dbf" ) ; + + fName = new Field4( dataFile, "F_NAME") ; + lName = new Field4( dataFile, "L_NAME") ; + address = new Field4( dataFile, "ADDRESS") ; + age = new Field4( dataFile, "AGE") ; + birthDate = new Field4( dataFile, "BIRTH_DATE") ; + married = new Field4( dataFile, "MARRIED") ; + amount = new Field4( dataFile, "AMOUNT") ; + comment = new Field4memo( dataFile, "COMMENT") ; + + nameTag.init( dataFile, "PPL_NAME" ) ; + addressTag.init( dataFile, "PPL_ADDR" ) ; + ageTag.init( dataFile, "PPL_AGE" ) ; + birthdateTag.init( dataFile, "PPL_BRTH" ) ; + amountTag.init( dataFile, "PPL_AMNT" ) ; + } + + static void seekStatus(int rc, ref string status) + { + switch(rc) + { + case Code4.r4success: + status = "r4success" ; + break; + + case Code4.r4eof: + status = "r4eof" ; + break; + + case Code4.r4after: + status = "r4after" ; + break; + + default: + status = "other" ; + break; + } + } + + static void printRecord( int rc ) + { + string bDate ; + string purchased ; + string name ; + string status = ""; + + seekStatus( rc, ref status ) ; + + purchased = amount.str() ; + bDate = birthDate.str( ) ; + name = fName.str( ) ; + name = name.Trim( ) ; + name = name + " " + lName.str( ) ; + + Console.WriteLine( "Seek status : {0}", status ) ; + Console.WriteLine("-------------------------------\nName : {0}\n" + + "Address : {1}\nAge : {2} Married : {3}\nBirth Date: {4}\n" + + "Comment: {5}\nPurchased this year:${6}\n", name.Trim(), address.str( ), + age.str( ), married.str( ), birthDate.str( ), + comment.str( ), purchased ) ; + } + + [STAThread] + static void Main(string[] args) + { + int rc; + + OpenDataFile( ) ; + + dataFile.select( addressTag ) ; + rc = dataFile.seek( "123 - 76 Ave ") ; + printRecord( rc ) ; + + rc = dataFile.seek( "12") ; + printRecord( rc ) ; + + rc = dataFile.seek( "12 ") ; + printRecord( rc ) ; + + dataFile.select( birthdateTag) ; + rc = dataFile.seek( "19581111") ; // October 11, 1958 + printRecord( rc ) ; + + dataFile.select( amountTag) ; + rc = dataFile.seek( 98.99) ; + printRecord( rc ) ; + + rc = dataFile.seek( " 98.99") ; + printRecord( rc ) ; + + //The following code finds all the occurences + //John Albridge in the tag + dataFile.select( nameTag) ; + rc = dataFile.seekNext( "John Albridge ") ; + + for ( ; rc == Code4.r4success; rc = dataFile.seekNext("John Albridge ") ) + printRecord( rc ); + + codeBase.closeAll( ) ; + codeBase.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/SHOWDAT2.cs b/examples/source/CSharp/SHOWDAT2.cs new file mode 100644 index 0000000..8cb0ae3 --- /dev/null +++ b/examples/source/CSharp/SHOWDAT2.cs @@ -0,0 +1,59 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class SHOWDAT2 + { + static Code4 codeBase = new Code4() ; + static Data4 dataFile = new Data4() ; + static Tag4 tag = new Tag4() ; + + static void printRecords( ) + { + for(int rc = dataFile.top( ); rc == Code4.r4success + ; rc = dataFile.skip( )) + { + for(short j = 1;j <= dataFile.numFields( ); j ++) + { + Field4memo field = new Field4memo( dataFile, j ) ; + Console.WriteLine( field.str( ) ) ; + } + Console.Write( "\n" ) ; + } + } + + [STAThread] + static void Main(string[] args) + { + if (args.Length != 1) + { + Console.WriteLine( "USAGE: SHOWDAT2 " ) ; + } + else + { + dataFile.open( ref codeBase, args.GetValue(0).ToString() ) ; + codeBase.exitTest( ) ; + + Console.WriteLine( "Data File {0} in Natural Order\n", args.GetValue(0) ) ; + printRecords( ) ; + + for( tag.initFirst( dataFile ); tag.isValid( ) != 0 + ; tag.initNext( )) + { + Console.WriteLine( "Press ENTER to continue:" ) ; + Console.ReadLine( ) ; + + Console.WriteLine( "Data File {0} sorted by Tag {1}\n", + args.GetValue(0).ToString(), tag.alias() ) ; + + dataFile.select( tag ) ; + printRecords( ) ; + } + + dataFile.close( ) ; + codeBase.initUndo( ) ; + } + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/SHOWDATA.cs b/examples/source/CSharp/SHOWDATA.cs new file mode 100644 index 0000000..2d10d88 --- /dev/null +++ b/examples/source/CSharp/SHOWDATA.cs @@ -0,0 +1,39 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class SHOWDATA + { + [STAThread] + static int Main(string[] args) + { + if (args.Length != 1) + { + Console.WriteLine( "USAGE: SHOWDATA " ) ; + } + else + { + Code4 codeBase = new Code4() ; + Data4 dataFile = new Data4( codeBase, args.GetValue(0).ToString() ) ; + codeBase.exitTest( ) ; + + int numFields = dataFile.numFields( ) ; + for( int rc = dataFile.top( ); rc == Code4.r4success ; rc = dataFile.skip( )) + { + for( short j = 1; j <= numFields; j++ ) + { + Field4memo field = new Field4memo( dataFile, j ) ; + Console.WriteLine( " {0}", field.str( ) ) ; + } + Console.Write( "\n" ) ; + } + + dataFile.close( ) ; + codeBase.initUndo( ) ; + } + + return 0 ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/SHOWLST2.cs b/examples/source/CSharp/SHOWLST2.cs new file mode 100644 index 0000000..8d94bd9 --- /dev/null +++ b/examples/source/CSharp/SHOWLST2.cs @@ -0,0 +1,105 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class SHOWLST2 + { + static Code4 codeBase = new Code4() ; + static Data4 dataFile = new Data4() ; + static Field4 fName ; + static Field4 lName ; + static Field4 address ; + static Field4 age ; + static Field4 birthDate ; + static Field4 married ; + static Field4 amount ; + static Field4memo comment ; + static Tag4 nameTag = new Tag4() ; + static Tag4 ageTag = new Tag4() ; + static Tag4 amountTag = new Tag4() ; + static Tag4 addressTag = new Tag4() ; + static Tag4 birthdateTag = new Tag4() ; + + static void OpenDataFile( ) + { + Tag4info tagInfo = new Tag4info( codeBase ) ; + + tagInfo.add( "PPL_NAME", "F_NAME + L_NAME", ".NOT. DELETED()", 0, 0 ) ; + tagInfo.add( "PPL_ADDR", "ADDRESS", "", 0, 0 ) ; + tagInfo.add( "PPL_BRTH", "BIRTH_DATE", "AGE >= 18", 0, 0 ) ; + tagInfo.add( "PPL_AGE", "AGE", "", 0, 0 ) ; + tagInfo.add( "PPL_AMNT", "AMOUNT", "", 0, 0 ) ; + + codeBase.accessMode = Code4.OPEN4DENY_RW ; + codeBase.autoOpen = 0; + codeBase.safety = 0; + + dataFile.open( ref codeBase, "people.dbf" ) ; + + Index4 index = new Index4() ; + index.create( ref dataFile, "SHOWLST2", ref tagInfo ) ; + + fName = new Field4( dataFile, "F_NAME") ; + lName = new Field4( dataFile, "L_NAME") ; + address = new Field4( dataFile, "ADDRESS") ; + age = new Field4( dataFile, "AGE") ; + birthDate = new Field4( dataFile, "BIRTH_DATE") ; + married = new Field4( dataFile, "MARRIED") ; + amount = new Field4( dataFile, "AMOUNT") ; + comment = new Field4memo( dataFile, "COMMENT") ; + + nameTag.init( dataFile, "PPL_NAME") ; + addressTag.init( dataFile, "PPL_ADDR" ) ; + ageTag.init( dataFile, "PPL_AGE") ; + birthdateTag.init( dataFile, "PPL_BRTH" ) ; + amountTag.init( dataFile, "PPL_AMNT") ; + } + + static void PrintRecords( ) + { + string bDate ; + string purchased ; + string name ; + + for( int rc = dataFile.top( ); rc == Code4.r4success; rc = dataFile.skip( )) + { + purchased = amount.str() ; + bDate = birthDate.str( ) ; + name = fName.str( ) ; + name = name.Trim( ) ; + name = name + " " + lName.str( ) ; + + Console.WriteLine("\t\t-------------------------------\n\t\tName : {0}\n" + + "\t\tAddress : {1}\n\t\tAge : {2} Married : {3}\n\t\tBirth Date: {4}\n" + + "\t\tComment: {5}\n\t\tPurchased this year:${6}", name.Trim(), address.str( ), + age.str( ), married.str( ), birthDate.str( ), + comment.str( ), purchased ) ; + } + } + + [STAThread] + static void Main(string[] args) + { + OpenDataFile( ) ; + + dataFile.select( nameTag ) ; + Console.WriteLine( "Order by Name" ) ; + PrintRecords( ) ; + Console.ReadLine( ) ; + + dataFile.select( ageTag ) ; + Console.WriteLine( "Order by Age" ) ; + PrintRecords( ) ; + Console.ReadLine( ) ; + + dataFile.select( amountTag ) ; + Console.WriteLine( "Order by Amount" ) ; + PrintRecords( ) ; + Console.ReadLine( ) ; + + codeBase.closeAll( ) ; + codeBase.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/TRANSFER.cs b/examples/source/CSharp/TRANSFER.cs new file mode 100644 index 0000000..7825d02 --- /dev/null +++ b/examples/source/CSharp/TRANSFER.cs @@ -0,0 +1,111 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class TRANSFER + { + static Code4 codeBase = new Code4() ; + static Data4 dataFile = new Data4() ; + static Field4 acctNo ; + static Field4 balance ; + static Tag4 acctTag = new Tag4() ; + static Tag4 balTag = new Tag4(); + + #if !(S4CLIENT) + static void OpenLogFile( ) + { + int rc ; + + rc = codeBase.logOpen( "", "user1" ); + if ( rc == Code4.r4noOpen ) + { + codeBase.errorCode = 0 ; + codeBase.logCreate( "", "user1" ) ; + } + } + #endif + + static void OpenDataFile( ) + { + dataFile.open( ref codeBase, "bank.dbf" ) ; + acctNo = new Field4( dataFile, "ACCT_NO" ) ; + balance = new Field4( dataFile, "BALANCE" ) ; + + acctTag.init( dataFile, "ACCT_TAG" ) ; + balTag.init( dataFile, "BAL_TAG" ) ; + } + + static int Credit( int toAcct, double amt ) + { + dataFile.select( acctTag ) ; + int rc = dataFile.seek( toAcct ) ; + + if (rc != Code4.r4success ) return rc; + double newBal = balance.getDouble() + amt ; + balance.assignDouble( newBal ) ; + return Code4.r4success ; + } + + static int Debit( int fromAcct, double amt ) + { + return Credit( fromAcct, -amt ) ; + } + + static void Transfer( int fromAcct, int toAcct, double amt ) + { + dataFile.lockAll( ) ; + codeBase.tranStart() ; + + int rc1 = Debit( fromAcct, amt ) ; + int rc2 = Credit( toAcct, amt ); + + if (rc1 == Code4.r4success && rc2 == Code4.r4success) + codeBase.tranCommit() ; + else + codeBase.tranRollback() ; + dataFile.unlock( ) ; + } + + static void PrintRecords( ) + { + for( int rc = dataFile.top(); rc == Code4.r4success; rc = dataFile.skip()) + { + Console.WriteLine( "-----------------------------------\n" + + "Account Number: {0}\nBalance : {1}\n", acctNo.getInt(), balance.getDouble() ) ; + } + Console.WriteLine( "=========================================" ) ; + } + + [STAThread] + static void Main(string[] args) + { + codeBase.errOpen = 0 ; + codeBase.safety = 0 ; + codeBase.lockAttempts = 5 ; + codeBase.lockEnforce = 1 ; + + #if !(S4CLIENT) + OpenLogFile() ; + #endif + + OpenDataFile() ; + + PrintRecords() ; + + // The account number 56789 doesn't exist in the database, + // the transfer is aborted and database is not affected + + Transfer( 12345, 56789, 200.00 ) ; + PrintRecords() ; + + // Both accounts exist so the transfer is completed + // and the database is updated + + Transfer( 12345, 55555, 150.50 ) ; + PrintRecords() ; + + codeBase.initUndo( ) ; + } + } +} diff --git a/examples/source/CSharp/ex0.cs b/examples/source/CSharp/ex0.cs new file mode 100644 index 0000000..4b3f58b --- /dev/null +++ b/examples/source/CSharp/ex0.cs @@ -0,0 +1,29 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex0 + { + [STAThread] + static void Main(string[] args) + { + Code4 settings = new Code4() ; + Data4 dataFile = new Data4() ; + + settings.autoOpen = 0 ; + settings.memSizeBlock = 0x800 ; // 2048 + settings.memSizeBuffer = 0x2000 ; // 8192 + + settings.errDefaultUnique = Code4.r4unique ; + dataFile.open( ref settings, "INFO" ) ; + + // this is equivalent to calling Code4::exitTest( ) + if( settings.errorCode != 0 ) settings.exit( ) ; + + // ... + + settings.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex1.cs b/examples/source/CSharp/ex1.cs new file mode 100644 index 0000000..e152224 --- /dev/null +++ b/examples/source/CSharp/ex1.cs @@ -0,0 +1,36 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex1 + { + [STAThread] + static void Main(string[] args) + { + Code4 codeBase = new Code4() ; + codeBase.accessMode = Code4.OPEN4DENY_RW ; + codeBase.safety = 0 ; // Ensure the create overwrites any existing file + + Field4info fields = new Field4info( ref codeBase ) ; + + fields.add( "NAME", 'C', 20, 0, 0 ) ; + fields.add( "AGE", 'N', 3, 0, 0 ) ; + fields.add( "BIRTHDATE", 'D', 8, 0, 0 ) ; + + Data4 newDataFile = new Data4() ; + newDataFile.create( ref codeBase, "NEWDBF", ref fields ) ; + + newDataFile.close( ) ; + + // open in shared mode + codeBase.accessMode = Code4.OPEN4DENY_NONE ; + newDataFile.open( ref codeBase, "NEWDBF" ) ; + + // ... some other code ... + + codeBase.closeAll( ) ; + codeBase.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex10.cs b/examples/source/CSharp/ex10.cs new file mode 100644 index 0000000..a557931 --- /dev/null +++ b/examples/source/CSharp/ex10.cs @@ -0,0 +1,25 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex10 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + + cb.readLock = 1 ; + cb.lockAttempts = 3 ; + + if ( data.top( ) == Code4.r4locked ) + { + Console.WriteLine( "Top record locked by another user" ) ; + Console.WriteLine( "Lock attempted " + cb.lockAttempts + " time(s)" ); + } + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex100.cs b/examples/source/CSharp/ex100.cs new file mode 100644 index 0000000..16f3d2c --- /dev/null +++ b/examples/source/CSharp/ex100.cs @@ -0,0 +1,30 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex100 + { + [STAThread] + static void Main(string[] args) + { + Code4 settings = new Code4( ) ; + Data4 info = new Data4( settings, "INFO" ) ; + Data4 data = new Data4( settings, "DATA" ) ; + settings.exitTest( ) ; + + Field4 infoName = new Field4( info, "NAME" ) ; + Field4 dataLname = new Field4( data, "LNAME" ) ; + + info.lockAddAll( ) ; + data.lockAddAll( ) ; + settings.lockGroup( ) ; + for( info.top( ) , data.top( ) ; info.eof( ) == 0 && data.eof( ) == 0 ; + info.skip( ) ,data.skip( ) ) + dataLname.assignField( ref infoName ) ; // copy 'LNAME' into 'NAME' + + settings.closeAll( ) ; + settings.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex101.cs b/examples/source/CSharp/ex101.cs new file mode 100644 index 0000000..ca5bb8a --- /dev/null +++ b/examples/source/CSharp/ex101.cs @@ -0,0 +1,31 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex101 + { + static void displayFieldStats( Field4 f ) + { + Data4 db = new Data4( f.data( ) ) ; + + Console.WriteLine( "-----------------------------------------------------" ) ; + Console.WriteLine( "Database: {0} Field: {1}\nLength: {2} Type: {3}\nDecimals: {4}" + , db.alias, f.name( ), f.len( ), f.type( ), f.decimals( ) ) ; + Console.WriteLine( "-----------------------------------------------------\n" ) ; + + return ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + cb.readOnly = 1 ; + Data4 data = new Data4( cb, "INFO" ) ; + Field4 field = new Field4( data, "NAME" ) ; + displayFieldStats( field ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex102.cs b/examples/source/CSharp/ex102.cs new file mode 100644 index 0000000..4f8a286 --- /dev/null +++ b/examples/source/CSharp/ex102.cs @@ -0,0 +1,26 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex102 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + cb.readOnly = 1 ; + Data4 data = new Data4( cb, "INFO" ) ; + + // Display all of the field names + for( short i = 1 ; i <= data.numFields( ) ; i++ ) + { + Field4 field = new Field4( data, i ) ; + Console.WriteLine( field.name( ) ) ; + } + + data.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex104.cs b/examples/source/CSharp/ex104.cs new file mode 100644 index 0000000..a6f5fd1 --- /dev/null +++ b/examples/source/CSharp/ex104.cs @@ -0,0 +1,25 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex104 + { + static void displayField( Field4 field ) + { + Console.WriteLine( "{0} {1}\n", field.name( ), field.str( ) ) ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + cb.readOnly = 1 ; + Data4 data = new Data4( cb, "INFO" ) ; + Field4 field = new Field4( data, "NAME" ) ; + data.top( ) ; + displayField( field ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex105.cs b/examples/source/CSharp/ex105.cs new file mode 100644 index 0000000..69ae282 --- /dev/null +++ b/examples/source/CSharp/ex105.cs @@ -0,0 +1,31 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex105 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 oneDbf = new Data4( ) ; + Field4info fields = new Field4info( ref cb ) ; + cb.safety = 0 ; + + fields.add( "NAME", 'C', 20, 0, 0 ) ; + fields.add( "AGE", 'N', 3, 0, 0 ) ; + fields.add( "BDATE", 'D', 8, 0, 0 ) ; + + oneDbf.create( ref cb, "EX105_1", ref fields ) ; + + if( cb.errorCode == 0 ) + Console.WriteLine( "Created successfully\n" ) ; + else + Console.WriteLine( "An error occurred\n" ) ; + + fields.free( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex106.cs b/examples/source/CSharp/ex106.cs new file mode 100644 index 0000000..5204f88 --- /dev/null +++ b/examples/source/CSharp/ex106.cs @@ -0,0 +1,27 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex106 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 data = new Data4( cb, "INFO" ) ; + Data4 data2 = new Data4( ) ; + + cb.safety = 0 ; + Field4info fields = new Field4info( data ) ; + fields.add( "COMMENT", 'M', 8, 0, 0 ) ; + + data2.create( ref cb, "DATA2", ref fields ) ; + + if( cb.errorCode == 0 ) + Console.WriteLine( "Created successfully\n" ) ; + fields.free( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex107.cs b/examples/source/CSharp/ex107.cs new file mode 100644 index 0000000..0d60278 --- /dev/null +++ b/examples/source/CSharp/ex107.cs @@ -0,0 +1,31 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex107 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Field4info fields = new Field4info( ref cb ) ; // initialize with no fields + + fields.add( "NAME", 'C', 20, 0, 0 ) ; + fields.add( "AGE", 'N', 3, 0, 0 ) ; + fields.add( "REGISTER", 'L', 1, 0, 0 ) ; + fields.add( "birth", 'D', 8, 0, 0 ) ; + + // change your mind and delete them all + if( fields.del( "nome " ) < 0 ) + Console.WriteLine( "This will always happen" ) ; + fields.del( "name" ) ; + fields.del( 0 ) ; // delete the 'AGE' field + fields.del( 0 ) ; // delete the 'REGISTER' field + + fields.free( ) ; // delete all remaining + + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex108.cs b/examples/source/CSharp/ex108.cs new file mode 100644 index 0000000..6876565 --- /dev/null +++ b/examples/source/CSharp/ex108.cs @@ -0,0 +1,30 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex108 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Field4info fields = new Field4info( ref cb ) ; // initialize with no fields + + fields.add( "NAME", 'C', 20, 0, 0 ) ; + fields.add( "AGE", 'N', 3, 0, 0 ) ; + fields.add( "REGISTER", 'L', 1, 0, 0 ) ; + fields.add( "birth", 'D', 8, 0, 0 ) ; + + Data4 data = new Data4( ) ; + cb.safety = 0 ; // overwrite existing DATAFILE.DBF + + data.create( ref cb, "DATAFILE", ref fields ) ; + if( data.isValid( ) == 1 && data.numFields( ) == 4 ) + Console.WriteLine( "CREATED SUCCESSFULLY" ) ; + + fields.free( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex109.cs b/examples/source/CSharp/ex109.cs new file mode 100644 index 0000000..81e6c87 --- /dev/null +++ b/examples/source/CSharp/ex109.cs @@ -0,0 +1,23 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex109 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 data = new Data4( cb, "INFO" ) ; + Field4info fields = new Field4info( data ) ; + + if( data.numFields( ) == fields.numFields( ) ) + Console.WriteLine( "A copy has been made of the fields" ) ; + else + Console.WriteLine( "An error must have occurred." ) ; + + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex11.cs b/examples/source/CSharp/ex11.cs new file mode 100644 index 0000000..94191b8 --- /dev/null +++ b/examples/source/CSharp/ex11.cs @@ -0,0 +1,47 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex11 + { + static int itemsToRestock( ref Code4 cb ) + { + short oldOpt = cb.optimize ; // save old optimization setting. + short oldExcl = cb.accessMode ; + cb.optimize = Code4.OPT4EXCLUSIVE ; + cb.accessMode = Code4.OPEN4DENY_RW ;//open files exclusively + + Data4 inventory = new Data4( cb, "INVENT.DBF" ) ; // Read optimized + Field4 minOnHand = new Field4( inventory, "MIN_ON_HND" ) ; + Field4 onHand = new Field4( inventory, "ON_HAND" ) ; + Field4 stockName = new Field4( inventory, "ITEM" ) ; + int count = 0 ; + + if ( cb.errorCode >= 0 ) + { + cb.optStart( ) ; + + for( inventory.top( ) ; inventory.eof( ) == 0 ; inventory.skip( ) ) + if( onHand.getInt() < minOnHand.getInt() ) + count++ ; + Console.WriteLine( count + " items must be restocked" ) ; + } + cb.optSuspend( ) ; + cb.optimize = oldOpt ; + cb.accessMode = oldExcl ; + inventory.close( ) ; + return count ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 codebase = new Code4() ; + + itemsToRestock( ref codebase ) ; + codebase.initUndo() ; + } + + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex110.cs b/examples/source/CSharp/ex110.cs new file mode 100644 index 0000000..c168380 --- /dev/null +++ b/examples/source/CSharp/ex110.cs @@ -0,0 +1,33 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex110 + { + static void dumpDataFileToScreen( Data4 d ) + { + // dump all fields -- including memo fields -- to screen + Console.WriteLine( "Contents of: {0}", d.alias ) ; + for( d.top( ) ; d.eof( ) == 0 ; d.skip( ) ) + { + for( short j = 1 ; j <= d.numFields( ) ; j++ ) + { + Field4memo field = new Field4memo( d, j ) ; + Console.WriteLine( field.str( ) ) ; + } + Console.WriteLine( ); + } + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + cb.readOnly = 1 ; + Data4 data = new Data4( cb, "INFO" ) ; + dumpDataFileToScreen( data ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex111.cs b/examples/source/CSharp/ex111.cs new file mode 100644 index 0000000..762e545 --- /dev/null +++ b/examples/source/CSharp/ex111.cs @@ -0,0 +1,25 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex111 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 data = new Data4( cb, "DATA3" ) ; + Field4memo comments = new Field4memo( data, "COMMENTS" ) ; + + cb.exitTest( ) ; + int count = 0 ; + for( data.top( ) ; data.eof( ) == 0 ; data.skip( ) ) + if( comments.len( ) > 0 ) + count ++ ; + + Console.WriteLine( "There were {0} memo entries out of {1} records.", count, data.recCount( ) ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex112.cs b/examples/source/CSharp/ex112.cs new file mode 100644 index 0000000..4fd0ff9 --- /dev/null +++ b/examples/source/CSharp/ex112.cs @@ -0,0 +1,27 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex112 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 data = new Data4( cb, "DATA3" ) ; + Field4memo comments = new Field4memo( data, "COMMENTS" ) ; + Field4memo name = new Field4memo( data, "NAME" ) ; + + data.top( ) ; + // display the null terminated contents of the memo field + Console.WriteLine( "Memo field contents: {0}", comments.str( ) ) ; + + // display the non-null terminated contents of the NAME field. + // this displays NAME plus any additional fields in the record buffer + Console.WriteLine( "NAME field contents: {0}", name.str( ) ) ; + + cb.initUndo( ) ; // close all files and free memory + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex113.cs b/examples/source/CSharp/ex113.cs new file mode 100644 index 0000000..6fd2b43 --- /dev/null +++ b/examples/source/CSharp/ex113.cs @@ -0,0 +1,34 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex113 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 data = new Data4( cb, "DATA3" ) ; + + data.top( ) ; + Field4memo comments = new Field4memo( data, "COMMENTS" ) ; + data.lockAll( ) ; + comments.setLen( 0x4000 ) ; // 16K + comments.assign( "First characters of a 16k memo field" ) ; + + // Flush changes to disk and close the data and memo files + data.close( ) ; + + data.open( ref cb, "DATA3" ) ; + comments = new Field4memo( data, "COMMENTS" ) ; + data.top( ) ; + + Console.WriteLine( "Memo field Value:\n{0}\nLength of memo field: {1}", + comments.str( ), comments.len( ) ) ; + + data.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex114.cs b/examples/source/CSharp/ex114.cs new file mode 100644 index 0000000..255c7d4 --- /dev/null +++ b/examples/source/CSharp/ex114.cs @@ -0,0 +1,32 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex114 + { + static void displayTheRecord( Data4 d ) + { + int numFields = d.numFields( ) ; + short curField = 1 ; + + for( ; curField <= numFields; curField++ ) + { + Field4memo genericField = new Field4memo( d, curField ) ; + + Console.WriteLine( "{0}\t", genericField.str( ) ) ; + } + Console.WriteLine( ) ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 data = new Data4( cb, "DATA2" ) ; + data.top( ) ; + displayTheRecord( data ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex13.cs b/examples/source/CSharp/ex13.cs new file mode 100644 index 0000000..7d5f975 --- /dev/null +++ b/examples/source/CSharp/ex13.cs @@ -0,0 +1,43 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex13 + { + static int retry( ) + { + string rc ; + Console.WriteLine( "Record locked by another user." ) ; + Console.WriteLine( "Retry? (Y or N)" ) ; + rc = Console.ReadLine() ; + if ( rc == "N" ) + return 0 ; + + return 1 ; + } + + static int lockARecord( Data4 d, int rec ) + { + int rc ; + while( ((rc = d.go( rec )) == Code4.r4locked) && (retry( ) == 1) ) ; + + if ( rc == Code4.r4locked ) + return 0 ; + + return 1 ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + lockARecord( data, 3 ) ; + + // other code + + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex135.cs b/examples/source/CSharp/ex135.cs new file mode 100644 index 0000000..2763685 --- /dev/null +++ b/examples/source/CSharp/ex135.cs @@ -0,0 +1,28 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex135 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + + // automatically open the INFO production index file + Data4 data = new Data4( cb, "INFO" ) ; + + // Copy the Index4 object for the production index file + Index4 info = data.index( "INFO" ) ; + + cb.errOpen = 0 ; + Index4 names = new Index4( data, "NOT" ) ; // attempt a second index file + if( names.isValid( ) == 0 ) + Console.WriteLine( "Index file could not be opened\n"); + + cb.closeAll( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex136.cs b/examples/source/CSharp/ex136.cs new file mode 100644 index 0000000..dd14e6c --- /dev/null +++ b/examples/source/CSharp/ex136.cs @@ -0,0 +1,40 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex136 + { + static int addLotsOfRecords( Data4 d ) + { + // get the secondary index file + Index4 index = d.index( "INFO2" ) ; + if( index.isValid( ) > 0 ) + index.close( ) ; + + d.top( ) ; + for( int i = 200 ; i != 1 ; i -- ) + { + // make 200 copies of record 1 + d.appendStart() ; + d.append( ) ; + } + + // open the index file and update it + index.open( d, d.alias ) ; + return index.reindex( ) ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + cb.autoOpen = 0 ; + Data4 data = new Data4( cb, "INFO" ) ; + Index4 index = new Index4( ) ; + index.open( data, "INFO2" ) ; + addLotsOfRecords( data ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex137.cs b/examples/source/CSharp/ex137.cs new file mode 100644 index 0000000..a477077 --- /dev/null +++ b/examples/source/CSharp/ex137.cs @@ -0,0 +1,32 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex137 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 data = new Data4( ) ; + Index4 index = new Index4( ); + + Field4info fieldInfo = new Field4info(ref cb ) ; + fieldInfo.add("FIELD_NAME", 'C', 10, 0, 0 ) ; + fieldInfo.add( "VALUE", 'N', 7, 2, 0) ; + + Tag4info tagInfo = new Tag4info( cb ) ; + tagInfo.add( "T_NAME", "FIELD_NAME", "FIELD_NAME > 'A'", 0, 0 ) ; + tagInfo.add( "NAME_TWO", "VALUE", "", Code4.e4unique, Code4.r4descending ) ; + + cb.safety = 0 ; + data.create( ref cb, "DB_NAME", ref fieldInfo ) ; + if ( data.isValid( ) != 0 ) + index.create( ref data, "name", ref tagInfo ) ; + + data.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex138.cs b/examples/source/CSharp/ex138.cs new file mode 100644 index 0000000..2c1929a --- /dev/null +++ b/examples/source/CSharp/ex138.cs @@ -0,0 +1,27 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex138 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + cb.autoOpen = 0 ; // don't automatically open index file + Data4 data = new Data4( cb, "INFO" ) ; + + Index4 index = new Index4( ) ; + index.open( data, "INFO2" ) ; // open a secondary index file + + cb.lockAttempts = Code4.WAIT4EVER ; // wait until the lock succeeds + data.lockAll( ) ; + if( index.reindex( ) == 0 ) + Console.WriteLine( "Reindexed successfully" ) ; + + cb.closeAll( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex14.cs b/examples/source/CSharp/ex14.cs new file mode 100644 index 0000000..177a138 --- /dev/null +++ b/examples/source/CSharp/ex14.cs @@ -0,0 +1,30 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex14 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + cb.readOnly = 1 ; + Tag4 tag = new Tag4() ; + + // This example assumes that drive W is a read-only drive. + Data4 prices = new Data4( cb, "w:\\datafile.DBF" ) ; + cb.exitTest( ) ; + + tag.initFirst( prices ) ; + prices.select( tag ) ; + if( prices.seek( "SMITH" ) == 0 ) + Console.WriteLine( "SMITH is found" ) ; + else + Console.WriteLine( "SMITH is not found" ) ; + + prices.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex140.cs b/examples/source/CSharp/ex140.cs new file mode 100644 index 0000000..ddffd84 --- /dev/null +++ b/examples/source/CSharp/ex140.cs @@ -0,0 +1,48 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex140 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 enroll = new Data4( cb, "ENROLL" ) ; + Data4 master = new Data4( cb, "CLASSES" ) ; + Data4 student = new Data4( cb, "STUDENT" ) ; + + Tag4 enrollTag = new Tag4( enroll, "ENR_CODE" ) ; + Tag4 studentTag = new Tag4( student, "STU_ID" ) ; + + Relate4set MasterRelation = new Relate4set( master ) ; + Relate4 relation1 = new Relate4( MasterRelation, enroll, "CODE", enrollTag ) ; + Relate4 relation2 = new Relate4( relation1, student, "STU_ID_TAG", studentTag ) ; + + relation1.type( Code4.relate4scan ) ; + MasterRelation.sortSet( "STUDENT->L_NAME,8,0)+ENROLL->CODE" ) ; + + Field4 classCode = new Field4( master, "CODE" ) ; + Field4 classTitle = new Field4( master, "TITLE" ) ; + Field4 enrollStudentId = new Field4( enroll, "STU_ID_TAG") ; + Field4 studentName = new Field4( student, "L_NAME" ) ; + + cb.exitTest( ) ; + + for(int rc = MasterRelation.top( ); rc != Code4.r4eof + ; rc = MasterRelation.skip( 1 ) ) + { + Console.WriteLine( "{0} ", studentName.str( ) ) ; // only one Str4::str per stmt. + Console.WriteLine( "{0} ", enrollStudentId.str( ) ) ; + Console.WriteLine( "{0} ", classCode.str( ) ) ; + Console.WriteLine( "{0}\n", classTitle.str( ) ) ; + } + + Console.WriteLine( "Number of records in {0} {1}", master.alias, master.recCount( ) ) ; + + MasterRelation.free( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex141.cs b/examples/source/CSharp/ex141.cs new file mode 100644 index 0000000..dbb552c --- /dev/null +++ b/examples/source/CSharp/ex141.cs @@ -0,0 +1,43 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex141 + { + static int seekMaster( Relate4 r, Tag4 masterTag, string seekKey ) + { + Data4 master = r.master( ).data( ) ; + master.select( masterTag ) ; + int rc = master.seek( seekKey ) ; // seek for the requested value + + if( rc == Code4.r4success ) + r.doOne( ) ; // position the slave data file to the appropriate + // record + return rc ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 enroll = new Data4( cb, "ENROLL" ) ; + Data4 master = new Data4( cb, "CLASSES" ) ; + Data4 student = new Data4( cb, "STUDENT" ) ; + + Tag4 enrollTag = new Tag4( enroll, "ENR_CODE" ) ; + Tag4 studentTag = new Tag4( student, "STU_ID" ) ; + Tag4 classTag = new Tag4( master, "CODE_TAG" ) ; + + Relate4set MasterRelation = new Relate4set( master ) ; + Relate4 relation1 = new Relate4( MasterRelation, enroll, "CODE", enrollTag ) ; + Relate4 relation2 = new Relate4( relation1, student, "STU_ID_TAG", studentTag ) ; + + relation1.type( Code4.relate4scan ) ; + + seekMaster( relation1, classTag, "CMPT401" ) ; + MasterRelation.free( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex142.cs b/examples/source/CSharp/ex142.cs new file mode 100644 index 0000000..44d062a --- /dev/null +++ b/examples/source/CSharp/ex142.cs @@ -0,0 +1,40 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex142 + { + static void listFilesInRelation( Relate4set rel ) + { + Relate4iterator relation = new Relate4iterator( rel ) ; + + for( ; relation.isValid( ) != 0 ; relation.next( ) ) + Console.WriteLine( "{0}\n", relation.data( ).alias ) ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 enroll = new Data4( cb, "ENROLL" ) ; + Data4 master = new Data4( cb, "CLASSES" ) ; + Data4 student = new Data4( cb, "STUDENT" ) ; + + Tag4 enrollTag = new Tag4( enroll, "ENR_CODE" ) ; + Tag4 studentTag = new Tag4( student, "STU_ID" ) ; + Tag4 classTag = new Tag4( master, "CODE_TAG" ) ; + + Relate4set MasterRelation = new Relate4set( master ) ; + Relate4 relation1 = new Relate4( MasterRelation, enroll, "CODE", enrollTag ) ; + Relate4 relation2 = new Relate4( relation1, student, "STU_ID_TAG", studentTag ) ; + + relation1.type( Code4.relate4scan ) ; + + listFilesInRelation( MasterRelation ) ; + + MasterRelation.free( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex143.cs b/examples/source/CSharp/ex143.cs new file mode 100644 index 0000000..9e0d073 --- /dev/null +++ b/examples/source/CSharp/ex143.cs @@ -0,0 +1,49 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex143 + { + static void displayRelationTree( Relate4 relate ) + { + int pos = 0 ; + Relate4iterator tree = new Relate4iterator( relate ) ; + + for(; tree.isValid( ) != 0; ) + { + for( int i = pos; i > 0; i-- ) + Console.Write( " " ); + Console.Write( "{0}\n", tree.data( ).fileName( ) ) ; + + pos += tree.nextPosition( ) ; + } + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 master = new Data4( cb, "M1" ) ; + Data4 sl1 = new Data4( cb, "SL1" ) ; + Data4 sl2 = new Data4( cb, "SL2" ) ; + Data4 sl3 = new Data4( cb, "SL3" ) ; + Data4 sl4 = new Data4( cb, "SL4" ) ; + + Relate4set MasterRelation = new Relate4set( master ) ; + + // create the tree + Relate4 relate1 = new Relate4( MasterRelation, sl1, "TOSL1", new Tag4( sl1, "FRM" ) ) ; + Relate4 relate2 = new Relate4( MasterRelation, sl2, "TOSL2", new Tag4( sl2, "FRM") ) ; + Relate4 relate3 = new Relate4( relate2, sl3, "TOSL3", new Tag4( sl3, "FRMSL2" ) ) ; + Relate4 relate4 = new Relate4( MasterRelation, sl4, "TOSL4", new Tag4( sl4, "FRM" ) ) ; + cb.exitTest( ) ; + + MasterRelation.top( ) ; + displayRelationTree( MasterRelation ) ; + + MasterRelation.free( 1 ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex144.cs b/examples/source/CSharp/ex144.cs new file mode 100644 index 0000000..24e8250 --- /dev/null +++ b/examples/source/CSharp/ex144.cs @@ -0,0 +1,49 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex144 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + + Data4 employee = new Data4( cb, "EMPLOYEE" ) ; + Data4 office = new Data4( cb, "OFFICE" ) ; + Data4 building = new Data4( cb, "BUILDING" ) ; + + // Set up the tags. + Tag4 officeNo = new Tag4( office, "OFF_NUM" ) ; + Tag4 buildNo = new Tag4( building, "BUILD_NO" ) ; + + // Create the relations + Relate4set master = new Relate4set( employee ) ; + + Relate4 toOffice = new Relate4( master, office, "EMPLOYEE->OFFICE_NO", officeNo ) ; + Relate4 toBuilding = new Relate4( toOffice, building, "OFFICE->BUILD_NO", buildNo ) ; + + // Go to employee, at record 2 + employee.go( 2 ) ; + + // Lock the data files and their index files. + master.lockAdd( ) ; + cb.lockGroup( ) ; + + // This call causes the corresponding records in data files "OFFICE" and + // "BUILDING" to be looked up. + master.doAll( ) ; + + // Go to office, at record 3 + office.go( 3 ) ; + + // This call causes the building record to be looked up from the office + toBuilding.doOne( ) ; + + // .. and so on + + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex145.cs b/examples/source/CSharp/ex145.cs new file mode 100644 index 0000000..cd6e026 --- /dev/null +++ b/examples/source/CSharp/ex145.cs @@ -0,0 +1,27 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex145 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 info = new Data4( cb, "INFO" ) ; + + Relate4set TopMaster = new Relate4set( info ) ; + // ... other code ... + + // This relation tree is no longer needed. Create a new one + TopMaster.free( ) ; + TopMaster.init( info ) ; + + // ... other code ... + TopMaster.free( 1 ) ; // Automatically close all files in the relation + cb.closeAll( ) ; // close any remaining files + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex15.cs b/examples/source/CSharp/ex15.cs new file mode 100644 index 0000000..158ab1d --- /dev/null +++ b/examples/source/CSharp/ex15.cs @@ -0,0 +1,34 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex15 + { + static int createFiles( ref Code4 cb ) + { + Field4info fields = new Field4info( ref cb ) ; + + fields.add( "NAME", 'C', 20, 0, 0 ) ; + fields.add( "AGE", 'N', 3, 0, 0 ) ; + fields.add( "BIRTHDATE", 'D', 0, 0, 0 ) ; + + Tag4info tags = new Tag4info( cb ) ; + tags.add( "INF1_NME", "NAME", "", 0, 0 ) ; + + cb.safety = 0 ; // Turn off safety -- overwrite files + Data4 data = new Data4() ; + data.create( ref cb, "INFO1.DBF", ref fields, ref tags ) ; + + return cb.errorCode ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 code = new Code4() ; + createFiles( ref code ) ; + code.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex17.cs b/examples/source/CSharp/ex17.cs new file mode 100644 index 0000000..77bfc7f --- /dev/null +++ b/examples/source/CSharp/ex17.cs @@ -0,0 +1,29 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex17 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 db = new Data4( cb, "DATA" ) ; + db.top( ) ; + + Expr4 ex = new Expr4( db, "TRIM(LNAME)+', '+TRIM(FNAME)" ) ; + cb.calcCreate( ex, "NAMES" ) ; + Console.WriteLine( ex.str( ) ) ; + + Expr4 ex2 = new Expr4() ; + ex2.parse( db, "'HELLO '+NAMES()" ) ; // no space in dBASE function calls. + + Console.WriteLine( ex2.str( ) ) ; + + ex2.free( ) ; + cb.calcReset( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex18.cs b/examples/source/CSharp/ex18.cs new file mode 100644 index 0000000..d503f26 --- /dev/null +++ b/examples/source/CSharp/ex18.cs @@ -0,0 +1,28 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex18 + { + static void openAFile( ref Code4 cb ) + { + // 'd' falls out of scope. Data file is still open + Data4 d = new Data4( cb, "INFO" ) ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + cb.autoOpen = 0 ; + openAFile( ref cb ) ; + + Data4 d = new Data4( cb, "DATAFILE" ) ; // open a second file + Console.WriteLine( "Number of records in DATAFILE: " + d.recCount( ) ) ; + + cb.closeAll( ) ; // INFO and DATAFILE are both closed + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex184.cs b/examples/source/CSharp/ex184.cs new file mode 100644 index 0000000..4352a8c --- /dev/null +++ b/examples/source/CSharp/ex184.cs @@ -0,0 +1,29 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex184 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + cb.readOnly = 1 ; + Data4 data = new Data4( cb, "INFO" ) ; + cb.exitTest( ) ; + + // get the reference to the "INF_NAME" tag + Tag4 tag = new Tag4( data, "INF_NAME" ) ; + + data.select( tag ) ; // select the "INF_NAME" ordering + for( data.top( ) ; data.eof( ) == 0 ; data.skip( ) ) + { + Field4 field = new Field4( data, "NAME" ) ; + Console.WriteLine( "{0}\n", field.str( ) ) ; // List out the NAMES + } + data.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex186.cs b/examples/source/CSharp/ex186.cs new file mode 100644 index 0000000..6e7979a --- /dev/null +++ b/examples/source/CSharp/ex186.cs @@ -0,0 +1,26 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex186 + { + [STAThread] + static void Main(string[] args) + { + Code4 settings = new Code4( ) ; + Data4 info = new Data4( settings, "INFO" ) ; + + // List the names of the tags in any production index file corresponding + // to "INFO" + + Console.WriteLine( "Production index file tags for data file: {0}\n", info.alias ) ; + + Tag4 tag = new Tag4( ) ; + for( tag.initFirst( info ); tag.isValid( ) != 0; tag.initNext( )) + Console.WriteLine( "Tag name: {0}\n", tag.alias( ) ) ; + + settings.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex187.cs b/examples/source/CSharp/ex187.cs new file mode 100644 index 0000000..ef6991e --- /dev/null +++ b/examples/source/CSharp/ex187.cs @@ -0,0 +1,43 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex187 + { + static int searchAll( Data4 d, string myValue ) + { + Tag4 origTag = new Tag4( ) ; + Tag4 tag = new Tag4( ) ; + origTag.initSelected( d ) ; // Save the current tag + int origRecNo = d.recNo( ) ; + + for( tag.initLast( d ) ; tag.isValid( ) != 0; tag.initPrev( ) ) + { + d.select( tag ) ; + if( d.seek( myValue ) == 0 ) + { + d.select( origTag ) ; + return d.recNo( ) ; + } + } + d.select( origTag ) ; + d.go( origRecNo ) ; + return -1 ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 data = new Data4( cb, "INFO" ) ; + data.top( ) ; + int rc = searchAll( data, "Abbot" ) ; + for( short j = 1; j < data.numFields( ); j++ ) + Console.Write( new Field4memo( data, j).str( ) ) ; + + Console.WriteLine( "\n{0} is the record number", rc ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex188.cs b/examples/source/CSharp/ex188.cs new file mode 100644 index 0000000..9943cf3 --- /dev/null +++ b/examples/source/CSharp/ex188.cs @@ -0,0 +1,30 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex188 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + + // open the datafile but not the index file + cb.autoOpen = 0 ; + Data4 data = new Data4( cb, "INFO" ) ; + + Tag4info tags = new Tag4info( cb ) ; + tags.add( "retired", "age", "age>55", 0, Code4.r4descending) ; + tags.add( "inf_name", "name", "", Code4.r4uniqueContinue, 0 ) ; + + Index4 index = new Index4( ) ; + cb.safety = 0 ; // overwrite an existing file + index.create( ref data, "INFO2", ref tags ) ; + if( cb.errorCode != 0 ) + Console.WriteLine( "An error occurred" ) ; + + cb.initUndo( ) ; // Tag4info destructor called + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex189.cs b/examples/source/CSharp/ex189.cs new file mode 100644 index 0000000..4d1890e --- /dev/null +++ b/examples/source/CSharp/ex189.cs @@ -0,0 +1,26 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex189 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 data = new Data4( cb, "DATA1" ) ; + short j ; + + /* list the fields that are character fields */ + for (j = 1 ; j < data.numFields( ) ; j++ ) + { + Field4 field = new Field4( data, j ) ; + if ( field.type( ) == Code4.r4str ) + Console.WriteLine( field.name( ) ) ; + } + + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex19.cs b/examples/source/CSharp/ex19.cs new file mode 100644 index 0000000..80e34d8 --- /dev/null +++ b/examples/source/CSharp/ex19.cs @@ -0,0 +1,32 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex19 + { + static void openAFile( ref Code4 cb ) + { + // 'd' falls out of scope. Data file is still open + Data4 d = new Data4( cb, "INFO" ) ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + openAFile( ref cb ) ; + + Data4 d = cb.data( "INFO" ) ; // obtain a new Data4 object + + if( d.isValid( ) != 0 ) + { + Console.WriteLine( "INFO has " + d.recCount( ) + " records." ) ; + + d.top( ) ; + cb.data( "INFO" ).close( ) ; // an alternate way to close the file + } + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex2.cs b/examples/source/CSharp/ex2.cs new file mode 100644 index 0000000..39a30d4 --- /dev/null +++ b/examples/source/CSharp/ex2.cs @@ -0,0 +1,31 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex2 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4(); + + // Do not automatically open production index file + cb.autoOpen = 0 ; + Data4 info = new Data4( cb, "INFO.DBF" ) ; + Index4 infoIndex = info.index("INFO") ; + + if( infoIndex.isValid() == 0 ) + Console.WriteLine( "Production index file is not opened" ) ; + + // DATA.DBF has a production index. Open it + cb.autoOpen = 1 ; + Data4 data = new Data4( cb, "DATA.DBF" ) ; + + // Some other code + + cb.closeAll( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex20.cs b/examples/source/CSharp/ex20.cs new file mode 100644 index 0000000..13860b7 --- /dev/null +++ b/examples/source/CSharp/ex20.cs @@ -0,0 +1,27 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex20 + { + static int display( ref Code4 cb, string p ) + { + if( p.Length == 0 ) + return cb.error( Code4.e4parm, 0, "Null display string", "", "" ) ; + + Console.WriteLine( p ) ; + return 0 ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 code = new Code4() ; + string someString = "Hello There" ; + display( ref code, someString ); + display( ref code, "" ) ; + code.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex21.cs b/examples/source/CSharp/ex21.cs new file mode 100644 index 0000000..70250de --- /dev/null +++ b/examples/source/CSharp/ex21.cs @@ -0,0 +1,22 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex21 + { + static void exitToSystem( ref Code4 cb ) + { + Console.WriteLine( "Shutting down application ... " ) ; + cb.closeAll( ) ; + cb.exit( ) ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + exitToSystem( ref cb ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex22.cs b/examples/source/CSharp/ex22.cs new file mode 100644 index 0000000..b60ae0e --- /dev/null +++ b/examples/source/CSharp/ex22.cs @@ -0,0 +1,19 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex22 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "FILE" ) ; + cb.exitTest( ) ; // the application will exit if FILE cannot be opened + + // ... other code ... + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex23.cs b/examples/source/CSharp/ex23.cs new file mode 100644 index 0000000..3efa704 --- /dev/null +++ b/examples/source/CSharp/ex23.cs @@ -0,0 +1,32 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex23 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data1 = new Data4( cb, "DATA1" ) ; + Data4 data2 = new Data4( cb, "DATA2" ) ; + + data1.top( ) ; + data2.top( ) ; + + data1.lockAddFile( ) ; + data2.lockAddAppend( ) ; + + int numRecords = data2.recCount( ) ; + data2.lockAdd( numRecords ) ; + data2.lockAdd( numRecords-1 ) ; + data2.lockAdd( numRecords-2 ) ; + + if( cb.lockGroup( ) == Code4.r4success ) + Console.WriteLine( "All locks were successfully performed" ) ; + + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex24.cs b/examples/source/CSharp/ex24.cs new file mode 100644 index 0000000..660d02b --- /dev/null +++ b/examples/source/CSharp/ex24.cs @@ -0,0 +1,28 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex24 + { + [STAThread] + static void Main(string[] args) + { + Code4 code = new Code4() ; + code.accessMode = Code4.OPEN4DENY_RW ; + + Data4 dataFile = new Data4( code, "INFO" ) ; + code.exitTest( ) ; + + // initialize optimization with default settings. + code.optStart( ) ; + int delCount = 0 ; + for ( int rc = dataFile.top( ); rc == Code4.r4success ; rc = dataFile.skip( ) ) + if( dataFile.deleted( ) != 0 ) + delCount++ ; + + Console.WriteLine( delCount + " records are marked for deletion." ) ; + code.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex25.cs b/examples/source/CSharp/ex25.cs new file mode 100644 index 0000000..8e94dd7 --- /dev/null +++ b/examples/source/CSharp/ex25.cs @@ -0,0 +1,30 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex25 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + + data.lockAll( ) ; + data.optimizeWrite( 1 ) ; + cb.optStart( ) ; + // .. some other code + + cb.optSuspend( ) ; // flush & free optimization memory. + data.unlock( ) ; // let other users make modifications. + + // ... some other code + + cb.optStart( ) ; + + // ... other code + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex26.cs b/examples/source/CSharp/ex26.cs new file mode 100644 index 0000000..4ede5b0 --- /dev/null +++ b/examples/source/CSharp/ex26.cs @@ -0,0 +1,24 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex26 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 info = new Data4( cb, "INFO" ) ; + Data4 data = new Data4( cb, "DATAFILE" ) ; + + info.lockRecord( 1 ) ; + data.lockAll( ) ; + + if ( cb.unlock() == Code4.r4success ) + Console.WriteLine( "Successfully unlocked" ) ; + + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex27.cs b/examples/source/CSharp/ex27.cs new file mode 100644 index 0000000..5451d9a --- /dev/null +++ b/examples/source/CSharp/ex27.cs @@ -0,0 +1,30 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex27 + { + [STAThread] + static void Main(string[] args) + { + Code4 settings = new Code4() ; + + Data4 info = new Data4( settings, "DATA2.DBF" ) ; + + settings.optStart() ; + + Field4 field = new Field4( info, "NAME" ) ; + info.lockAll( ) ; //the record must be locked before a field can be changed + for( int iRec = 1 ; iRec <= info.recCount() ; iRec++ ) + { + info.go( iRec ) ; + field.assign( "New Data" ) ; + } + + info.close( ) ; + settings.initUndo( ) ; + settings.exit( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex28.cs b/examples/source/CSharp/ex28.cs new file mode 100644 index 0000000..c93f0a4 --- /dev/null +++ b/examples/source/CSharp/ex28.cs @@ -0,0 +1,28 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex28 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + + if( cb.errorCode != 0 ) + { + Console.WriteLine( "An error occurred in the Data4 constructor" ) ; + cb.exit( ) ; + } + + data.top() ; + Console.Write( "Number of records in " + data.fileName( ) + ": " ) ; + Console.WriteLine( data.recCount( ) ) ; + + data.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex29.cs b/examples/source/CSharp/ex29.cs new file mode 100644 index 0000000..64d51ae --- /dev/null +++ b/examples/source/CSharp/ex29.cs @@ -0,0 +1,22 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex29 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO.DBF" ) ; + + string st = data.alias ; + string sp = "INFO" ; + if( st == sp ) + Console.WriteLine( "This is always true" ) ; + + cb.initUndo() ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex30.cs b/examples/source/CSharp/ex30.cs new file mode 100644 index 0000000..46d9137 --- /dev/null +++ b/examples/source/CSharp/ex30.cs @@ -0,0 +1,40 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex30 + { + static Code4 cb = new Code4() ; // Code4 may be constructed globally. + static Data4 data = new Data4( cb, "INFO" ) ; + + [STAThread] + static void Main(string[] args) + { + data.lockAll( ) ; + cb.optStart( ) ; + data.appendBlank( ) ; + + // Append a copy of record two. (Assume record two exists.) + data.go( 2 ) ; + data.appendStart( ) ; // use_memo_entries defaults to zero + data.append( ) ; + + // Append a copy of record 2 including existing memo entries. + data.go( 2 ) ; + data.appendStart( 1 ) ; // a true parameter means use memo entries + data.append( ) ; + + // Set the record buffer to blank, change a field's value, and append + // the resulting record. + data.appendStart( ) ; + data.blank( ) ; + Field4 field = new Field4( data, "NAME" ) ; + field.assign( "New field value" ) ; + data.append( ) ; + + // close all open files and release any allocated memory + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex31.cs b/examples/source/CSharp/ex31.cs new file mode 100644 index 0000000..3c307a2 --- /dev/null +++ b/examples/source/CSharp/ex31.cs @@ -0,0 +1,23 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex31 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + + // Add 5 blank records + for( int i = 5 ; i != 0 ; i-- ) + data.appendBlank( ) ; + + // Close the data file. + data.close( ) ; + cb.initUndo( ) ; // Free up any memory used. + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex32.cs b/examples/source/CSharp/ex32.cs new file mode 100644 index 0000000..1e156c7 --- /dev/null +++ b/examples/source/CSharp/ex32.cs @@ -0,0 +1,20 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex32 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "DATA1" ) ; + data.lockAll( ) ; + for( data.top( ) ; data.eof() == 0 ; data.skip() ) + data.blank( ) ; // blank out all records in the data file + + cb.initUndo( ) ; // close all files and release any memory + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex33.cs b/examples/source/CSharp/ex33.cs new file mode 100644 index 0000000..f4948f9 --- /dev/null +++ b/examples/source/CSharp/ex33.cs @@ -0,0 +1,22 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex33 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ); + Field4 field = new Field4( data, 1 ) ; + + // output the first field of every record in reverse sequential order. + for( data.bottom() ; data.bof( ) == 0 ; data.skip( -1 ) ) + Console.WriteLine( field.str() ) ; + data.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex34.cs b/examples/source/CSharp/ex34.cs new file mode 100644 index 0000000..c98d982 --- /dev/null +++ b/examples/source/CSharp/ex34.cs @@ -0,0 +1,21 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex34 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + + data.bottom( ) ; + Console.WriteLine( "Last Name added: " + new Field4( data, "NAME" ).str() ) ; + + data.close() ; + cb.initUndo() ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex35.cs b/examples/source/CSharp/ex35.cs new file mode 100644 index 0000000..6e1cbc2 --- /dev/null +++ b/examples/source/CSharp/ex35.cs @@ -0,0 +1,26 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex35 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + + data.top() ; + Console.WriteLine( "Changed status: " + data.changed ) ; // Displays 0 + data.lockAll( ) ; + new Field4( data, 1 ).assign( "TEMP DATA" ) ; + Console.WriteLine( "Changed status: " + data.changed ) ; // Displays 1 + data.changed = 0 ; + + data.close( ) ; + // The top record is not flushed. + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex36.cs b/examples/source/CSharp/ex36.cs new file mode 100644 index 0000000..bba8347 --- /dev/null +++ b/examples/source/CSharp/ex36.cs @@ -0,0 +1,41 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex36 + { + /* Check the validity of an index file. */ + [STAThread] + static void Main(string[] args) + { + if ( args.Length > 1 ) + { + Code4 cb = new Code4() ; + cb.autoOpen = 0 ; // open index file manually. + cb.errOff = 1 ; + + Data4 checkData = new Data4( cb, args[0] ) ; + + // Demonstration of Index4::open instead of Index4::Index4 + Index4 testIndex = new Index4() ; + testIndex.open( checkData, args[1] ) ; + + cb.exitTest( ) ; + cb.optStart( ) ; + + cb.errorCode = 0; + if ( checkData.checkIndex() == 0 ) + Console.WriteLine( "\nIndex is OK !!" ) ; + else + Console.WriteLine( "\nProblem with Index" ) ; + cb.initUndo( ) ; + } + else + { + Console.WriteLine() ; + Console.WriteLine( "PROGRAM DataFile IndexFile" ) ; + } + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex37.cs b/examples/source/CSharp/ex37.cs new file mode 100644 index 0000000..1985f09 --- /dev/null +++ b/examples/source/CSharp/ex37.cs @@ -0,0 +1,39 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex37 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4() ; + Data4 secondFile = new Data4() ; + Field4info fieldsFirst = new Field4info( ref cb ) ; + fieldsFirst.add( "NAME_FIELD", 'C', 20, 0, 0 ) ; + fieldsFirst.add( "AGE_FIELD", 'N', 3, 0, 0 ) ; + fieldsFirst.add( "BIRTH_DATE", 'D', 8, 0, 0 ) ; + + data.create( ref cb, "FIRSTDBF", ref fieldsFirst ) ; + cb.exitTest( ) ; + + // initialize fields object with the fields of FIRSTDBF.DBF + Field4info fields = new Field4info( data ) ; + // add a new field + fields.add( "NEW_FLD", 'C', 20, 0, 0 ) ; + + cb.safety = 0 ; // overwrite the file if it exists + secondFile.create( ref cb, "NEWDBF", ref fields ) ; + + if( cb.errorCode != 0 ) + Console.WriteLine( "An error occurred, NEWDBF not created" ) ; + else + Console.WriteLine( "Created successfully!" ) ; + + cb.closeAll( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex38.cs b/examples/source/CSharp/ex38.cs new file mode 100644 index 0000000..9500136 --- /dev/null +++ b/examples/source/CSharp/ex38.cs @@ -0,0 +1,27 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex38 + { + [STAThread] + static void Main(string[] args) + { + Code4 codeBase = new Code4() ; + Data4 file = new Data4( codeBase, "INFO" ) ; + + codeBase.optStart( ) ; + + int count = 0 ; + + for( file.top( ) ; file.eof( ) == 0 ; file.skip( 1 ) ) + if( file.deleted( ) != 0 ) + count++ ; + + Console.WriteLine( "\"INFO\" has " + count + " deleted records" ) ; + + codeBase.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex39.cs b/examples/source/CSharp/ex39.cs new file mode 100644 index 0000000..d13ac51 --- /dev/null +++ b/examples/source/CSharp/ex39.cs @@ -0,0 +1,29 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex39 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4() ; + + cb.accessMode = Code4.OPEN4DENY_RW ; // open file exclusively to speed pack + + data.open( ref cb, "INFO" ) ; + cb.exitTest( ) ; + cb.optStart( ) ; + + for( data.top( ) ; data.eof( ) == 0 ; data.skip( 2 ) ) + data.deleteRec( ) ; // Mark the record for deletion + + data.pack( ) ; // Physically remove the deleted records from the disk + + data.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex4.cs b/examples/source/CSharp/ex4.cs new file mode 100644 index 0000000..2d300eb --- /dev/null +++ b/examples/source/CSharp/ex4.cs @@ -0,0 +1,35 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex4 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + + // Do not add duplicate records to unique tags or the data file and + // return r4unique when attempted. + cb.errDefaultUnique = Code4.r4unique ; + + Data4 data = new Data4( cb, "INFO" ) ; + + data.top( ) ; + data.appendStart( ) ; + int rc = data.append( ) ; // append a duplicate copy of the top record + + if ( rc == Code4.r4unique ) + Console.WriteLine( "Attempt to add a duplicate record failed." ) ; + else + { + Console.WriteLine( "Attempt to add a duplicate record succeeded" ) ; + Console.WriteLine( "Record in both data and index file" ) ; + } + + data.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex40.cs b/examples/source/CSharp/ex40.cs new file mode 100644 index 0000000..058caf2 --- /dev/null +++ b/examples/source/CSharp/ex40.cs @@ -0,0 +1,28 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex40 + { + [STAThread] + static void Main(string[] args) + { + Code4 settings = new Code4() ; + Data4 infoFile = new Data4( settings, "INFO" ) ; + + // Go to the end of file and set the End of file flag + infoFile.goEof( ) ; + + // Check to see if the end of file flag is set + if ( infoFile.eof( ) != 0 ) + { + Console.WriteLine( "This is always true" ) ; + infoFile.bottom( ) ; // reset the eof flag + } + + infoFile.close( ) ; + settings.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex41.cs b/examples/source/CSharp/ex41.cs new file mode 100644 index 0000000..5e5f034 --- /dev/null +++ b/examples/source/CSharp/ex41.cs @@ -0,0 +1,24 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex41 + { + [STAThread] + static void Main(string[] args) + { + Code4 settings = new Code4() ; + Data4 infoFile = new Data4( settings, "INFO" ); + + for( short num = (short) infoFile.numFields( ) ; num != 0 ; num-- ) + { + Field4 field = new Field4( infoFile, num ) ; + if( num == infoFile.fieldNumber( field.name( ) ) ) + Console.WriteLine( "This is always true." ) ; + } + infoFile.close( ) ; + settings.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex42.cs b/examples/source/CSharp/ex42.cs new file mode 100644 index 0000000..111b5b6 --- /dev/null +++ b/examples/source/CSharp/ex42.cs @@ -0,0 +1,28 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex42 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + cb.accessMode = Code4.OPEN4DENY_RW ; + Data4 data = new Data4( cb, "INFO" ); + Field4 age = new Field4( data, "AGE" ) ; + + data.go( 2 ) ; + age.assignInt( 49 ) ; + + // Explicitly flush the change to disk in case power goes out + data.flush( ) ; + + // some other code + + data.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex43.cs b/examples/source/CSharp/ex43.cs new file mode 100644 index 0000000..1b18688 --- /dev/null +++ b/examples/source/CSharp/ex43.cs @@ -0,0 +1,36 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex43 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + + cb.lockAttempts = 0 ; /* Do not wait when locking. */ + cb.readLock = 1 ; + + int rc = data.go( 3 ) ; + if ( rc == Code4.r4locked ) + { + Console.WriteLine( "\nRecord 3 was locked by another user." ) ; + + cb.readLock = 0 ; // Turn automatic locking off. + + rc = data.go( 3 ) ; + if ( rc == Code4.r4locked ) + { + Console.Write( "This will never happen because " ) ; + Console.WriteLine( "'Code4::readLock' is false." ) ; + } + } + + data.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex44.cs b/examples/source/CSharp/ex44.cs new file mode 100644 index 0000000..41f2abf --- /dev/null +++ b/examples/source/CSharp/ex44.cs @@ -0,0 +1,33 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex44 + { + [STAThread] + static void Main(string[] args) + { + Code4 settings = new Code4() ; + Data4 data = new Data4( settings, "INFO" ) ; + + // Since Code4::autoOpen is by default TRUE, the INFO index file + // should have been opened. + + Index4 index = new Index4() ; + + index = data.index( "INFO" ) ; + + if( index.isValid( ) != 0 ) + Console.WriteLine( "INDEX: INFO has been opened" ) ; + + index = data.index( "JUNK" ) ; + + if ( index.isValid( ) == 0 ) + Console.WriteLine( "INDEX: JUNK has not been opened" ) ; + + data.close( ) ; + settings.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex45.cs b/examples/source/CSharp/ex45.cs new file mode 100644 index 0000000..d20738c --- /dev/null +++ b/examples/source/CSharp/ex45.cs @@ -0,0 +1,24 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex45 + { + static void displayAlias( Data4 d ) + { + if ( d.isValid( ) != 0 ) + Console.WriteLine( d.alias + " is valid." ) ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + + displayAlias( data ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex46.cs b/examples/source/CSharp/ex46.cs new file mode 100644 index 0000000..9e693d5 --- /dev/null +++ b/examples/source/CSharp/ex46.cs @@ -0,0 +1,34 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex46 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4() ; + + data.open( ref cb, "INFO" ) ; + + cb.lockAttempts = 4 ; // Try four times + + int rc = data.lockRecord( 5 ) ; + if( rc == Code4.r4success ) + Console.WriteLine( "Record 5 is now locked." ) ; + else if( rc == Code4.r4locked ) + Console.WriteLine( "Record 5 is locked by another user" ) ; + + cb.lockAttempts = Code4.WAIT4EVER ; // Try forever + rc = data.lockRecord( 5 ) ; + + if ( rc == Code4.r4success ) + Console.WriteLine( "This will always happen." ) ; + + data.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex47.cs b/examples/source/CSharp/ex47.cs new file mode 100644 index 0000000..ac8b8b7 --- /dev/null +++ b/examples/source/CSharp/ex47.cs @@ -0,0 +1,24 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex47 + { + [STAThread] + static void Main(string[] args) + { + Code4 code = new Code4() ; + Data4 df = new Data4( code, "INFO" ) ; + + int rc = df.lockAll( ) ; + + if( rc == Code4.r4success ) + Console.WriteLine( "Lock is successful." ) ; + else + Console.WriteLine( "Lock was unsuccessful" ) ; + + code.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex48.cs b/examples/source/CSharp/ex48.cs new file mode 100644 index 0000000..27d1592 --- /dev/null +++ b/examples/source/CSharp/ex48.cs @@ -0,0 +1,29 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex48 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + + /* Lock all of the records in the data file as well as + the append bytes all at once. Existing locks are + removed. */ + + int rc = data.lockFile( ) ; + if ( rc == Code4.r4success ) + { + Console.Write( "Other users can read this data file, " ) ; + Console.Write( "but can make no modifications until\n" ) ; + Console.WriteLine( "this lock is removed." ) ; + } + + cb.initUndo( ) ; // implicitly unlock the file. + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex49.cs b/examples/source/CSharp/ex49.cs new file mode 100644 index 0000000..2955be6 --- /dev/null +++ b/examples/source/CSharp/ex49.cs @@ -0,0 +1,27 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex49 + { + static void compressAll( Data4 d ) + { + if ( d.pack( ) == 0 ) + Console.WriteLine( "Records marked for deletion are removed." ) ; + + if ( d.memoCompress( ) == 0 ) + Console.WriteLine( "Memo entries are compressed." ) ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + + compressAll( data ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex5.cs b/examples/source/CSharp/ex5.cs new file mode 100644 index 0000000..d0c5c5a --- /dev/null +++ b/examples/source/CSharp/ex5.cs @@ -0,0 +1,31 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex5 + { + [STAThread] + static void Main(string[] args) + { + Code4 code = new Code4() ; + Data4 data = new Data4( code, "INFO" ) ; + + string badExpr = "NAME = 5" ; + + Expr4 expression = new Expr4( data, badExpr ) ; + + Console.WriteLine( "\nAn error message just displayed" ) ; + + code.errorCode = code.errExpr = 0 ; + + expression.parse( data, badExpr ) ; + Console.WriteLine( "No error message displayed." ) ; + + if ( expression.isValid() != 0 ) + expression.free( ) ; + + code.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex50.cs b/examples/source/CSharp/ex50.cs new file mode 100644 index 0000000..477b3b4 --- /dev/null +++ b/examples/source/CSharp/ex50.cs @@ -0,0 +1,26 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex50 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + + cb.optStart( ) ; + + for ( int rc = data.top( ) ; rc != Code4.r4eof ; rc = data.skip( 1 ) ) + { + short fieldNum ; + for( fieldNum = 1 ; fieldNum <= data.numFields( ) ; fieldNum++ ) + Console.Write( new Field4(data, fieldNum).str( ) + " " ) ; + Console.WriteLine() ; + } + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex51.cs b/examples/source/CSharp/ex51.cs new file mode 100644 index 0000000..6561582 --- /dev/null +++ b/examples/source/CSharp/ex51.cs @@ -0,0 +1,26 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex141 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4() ; // Do not open the file with the constructor + + cb.accessMode = Code4.OPEN4DENY_RW ; + int rc = data.open( ref cb, "INFO" ) ; + + if( rc == Code4.r4success ) + { + Console.Write( "Data file INFO.DBF has " + data.recCount( ) ) ; + Console.WriteLine( " records. " ) ; + } + data.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex52.cs b/examples/source/CSharp/ex52.cs new file mode 100644 index 0000000..09c5dab --- /dev/null +++ b/examples/source/CSharp/ex52.cs @@ -0,0 +1,37 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex52 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + cb.accessMode = Code4.OPEN4DENY_RW ; + + // Open the file exclusively, default optimization is the same as if + // Data4::optimize( Code4.OPT4EXCLUSIVE ) were called. + Data4 info = new Data4( cb, "INFO" ) ; + + // open a shared file. + cb.accessMode = Code4.OPEN4DENY_NONE ; + Data4 extra = new Data4( cb, "DATA" ) ; + + extra.optimize( Code4.OPT4ALL ) ; // read optimize the "DATA" file + + int rc = cb.optStart( ) ; // Begin the memory optimizations. + if ( rc == Code4.r4success ) + Console.WriteLine( "Memory optimiztion is implemented" ) ; + else + Console.WriteLine( "Either the S4OFF_OPTIMIZE switch is defined or " + + "there is insufficient memory for optimization" ) ; + + // .... Some other code .... + + cb.closeAll( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex53.cs b/examples/source/CSharp/ex53.cs new file mode 100644 index 0000000..dd5c3ab --- /dev/null +++ b/examples/source/CSharp/ex53.cs @@ -0,0 +1,33 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex53 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + + data.optimizeWrite( Code4.OPT4ALL ) ; + // when doing write optimization on shared files, it is necessary to + // lock the file, preferably with Data4::lockAll( ) + data.lockAll( ) ; + + cb.optStart( ) ; // begin optimization + + int age = 20 ; + Field4 ageField = new Field4( data, "AGE" ) ; + + for( data.top( ) ; age < 65 ; data.append( ) ) + { + data.appendStart( 0 ) ; + ageField.assignInt( age++ ) ; + } + + cb.initUndo( ) ; // flushes, closes, and unlocks + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex54.cs b/examples/source/CSharp/ex54.cs new file mode 100644 index 0000000..a5dd68b --- /dev/null +++ b/examples/source/CSharp/ex54.cs @@ -0,0 +1,32 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex54 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4() ; + + cb.accessMode = Code4.OPEN4DENY_RW ; // open file exclusively + + data.open( ref cb, "INFO" ) ; + cb.exitTest( ) ; + data.lockAll( ) ; + cb.optStart( ) ; + + // Mark every other record for deletion + for( data.top( ) ; data.eof( ) == 0 ; data.skip( 2 ) ) + data.deleteRec( ) ; + + // Remove the deleted records from the physical disk + data.pack( ) ; + + data.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex55.cs b/examples/source/CSharp/ex55.cs new file mode 100644 index 0000000..1a97923 --- /dev/null +++ b/examples/source/CSharp/ex55.cs @@ -0,0 +1,27 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex55 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + Tag4 firstTag = new Tag4() ; + firstTag.initFirst( data ) ; + + cb.exitTest( ) ; + + data.select( firstTag ) ; // select the first tag of the first open index. + data.position = .25 ; // move one quarter through the index file. + Console.WriteLine( "Record number: " + data.recNo() ) ; + + Console.WriteLine( "The current position is: " + data.position ) ; + + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex56.cs b/examples/source/CSharp/ex56.cs new file mode 100644 index 0000000..eb4c1bc --- /dev/null +++ b/examples/source/CSharp/ex56.cs @@ -0,0 +1,39 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex56 + { + static int recallAll( Data4 d ) + { + + Tag4 saveSelected = new Tag4() ; + saveSelected.initSelected( d ) ; + + d.select( ) ; // use record ordering + + d.lockAll( ) ; + + int count = 0 ; + + for( d.top( ) ; d.eof( ) != 0 ; d.skip( 1 ) ) + { + d.recall( ) ; + count++ ; + } + + d.select( saveSelected ) ; // reset the selected tag. + return count ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + recallAll( data ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex57.cs b/examples/source/CSharp/ex57.cs new file mode 100644 index 0000000..3cb9a5e --- /dev/null +++ b/examples/source/CSharp/ex57.cs @@ -0,0 +1,30 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex57 + { + static int recsInFile( ref Code4 cb, string fileName ) + { + Data4 data = new Data4( cb, fileName ) ; + if ( cb.errorCode != 0 ) + return -1 ; // an error occurred + + int count = data.recCount( ) ; // save the record count + + data.close( ) ; // close the data file + return count ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + string name = "INFO" ; + int rc = recsInFile( ref cb, name ) ; + Console.WriteLine( rc + " records in the file" ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex58.cs b/examples/source/CSharp/ex58.cs new file mode 100644 index 0000000..a89238f --- /dev/null +++ b/examples/source/CSharp/ex58.cs @@ -0,0 +1,27 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex58 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + Tag4 firstTag = new Tag4() ; + firstTag.initFirst( data ) ; + + data.select( firstTag ) ; //select the first tag of the first opened index + + int count = 0 ; + for( data.top( ); data.eof( ) == 0 ; data.skip( 1 ) ) + { + Console.Write( "position in the tag: " + ++count ) ; + Console.WriteLine( " Record Position: " + data.recNo( ) ) ; + } + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex6.cs b/examples/source/CSharp/ex6.cs new file mode 100644 index 0000000..8bc5e62 --- /dev/null +++ b/examples/source/CSharp/ex6.cs @@ -0,0 +1,26 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex6 + { + [STAThread] + static void Main(string[] args) + { + Code4 code = new Code4() ; + Data4 data = new Data4( code, "INFO" ) ; + string badField = "notAField" ; + + Field4 field = new Field4( data, badField ) ; + Console.WriteLine( "\nAn error message just displayed" ) ; + + code.errorCode = code.errFieldName = 0 ; + + field.init( data, badField ) ; + Console.WriteLine( "No error message displayed." ) ; + + code.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex60.cs b/examples/source/CSharp/ex60.cs new file mode 100644 index 0000000..9fbc05c --- /dev/null +++ b/examples/source/CSharp/ex60.cs @@ -0,0 +1,33 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex60 + { + [STAThread] + static void Main(string[] args) + { + Code4 codeBase = new Code4() ; + Data4 dataFile = new Data4( codeBase, "INFO" ) ; + + dataFile.optimize( Code4.OPT4ALL ) ; + codeBase.optStart( ) ; + + dataFile.top( ) ; + Console.WriteLine( "Press Enter when you want to refresh your data." ) ; + Console.Read() ; + + dataFile.refresh( ) ; + dataFile.top( ) ; // re-read the record from disk. + + Console.Write( "The latest information is: " ) ; + for ( short i = 1 ; i <= dataFile.numFields() ; i++ ) + Console.Write( new Field4( dataFile, i ).str() + " " ) ; + Console.WriteLine() ; + + dataFile.close( ) ; + codeBase.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex61.cs b/examples/source/CSharp/ex61.cs new file mode 100644 index 0000000..c705d03 --- /dev/null +++ b/examples/source/CSharp/ex61.cs @@ -0,0 +1,31 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex61 + { + static void update( Data4 d ) + { + if ( d.changed != 0 ) + Console.WriteLine( "Changes not discarded." ) ; + else + d.refreshRecord( ) ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + data.top( ) ; + data.lockRecord(1) ; + Field4 field = new Field4( data, "NAME" ) ; + field.assign( "Marvin" ) ; + update( data ) ; + data.skip( ) ; + update( data ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex62.cs b/examples/source/CSharp/ex62.cs new file mode 100644 index 0000000..b1f0d92 --- /dev/null +++ b/examples/source/CSharp/ex62.cs @@ -0,0 +1,26 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex62 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + cb.accessMode = Code4.OPEN4DENY_RW ; + Data4 data = new Data4( cb, "INFO" ) ; + + Console.WriteLine( "Reindexing {0}\nPlease Wait", data.alias ) ; + int rc = data.reindex( ) ; + + if ( rc != 0 ) + Console.WriteLine( "\nReindex NOT successful.\n" ) ; + else + Console.WriteLine( "\nSuccessfully reindexed.\n" ) ; + + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex63.cs b/examples/source/CSharp/ex63.cs new file mode 100644 index 0000000..2a3991e --- /dev/null +++ b/examples/source/CSharp/ex63.cs @@ -0,0 +1,48 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex63 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 people = new Data4( cb, "people.dbf" ) ; + + /* Assume 'PEOPLE.DBF' has a production index file with tags + PPL_NAME, PPL_AGE, PPL_BRTH */ + people.select( new Tag4( people, "PPL_NAME" ) ) ; + + if( people.seek( "fred" ) == Code4.r4success ) + Console.WriteLine( "fred is in record # {0}\n", people.recNo( ) ) ; + + if( people.seek( "HANK STEVENS" ) == Code4.r4success ) + Console.WriteLine( "HANK STEVENS is in record # {1}\n", people.recNo( ) ) ; + + people.select( new Tag4( people, "PPL_AGE" ) ) ; + Field4 age = new Field4( people, "AGE" ) ; + + int rc = people.seek( 0.0 ) ; + + if( rc == Code4.r4success || rc == Code4.r4after ) + Console.WriteLine( "The youngest age is: {0}\n", (double) age.getDouble( ) ) ; + + // Seek using the char * version + rc = people.seek( "0" ) ; + if( rc == Code4.r4success || rc == Code4.r4after ) + Console.WriteLine( "The youngest age is: {0}\n", (double) age.getDouble( ) ) ; + + // Assume PPL_BRTH is a Date key expression + people.select( new Tag4( people, "PPL_BRTH" )) ; + string birth = "19600415" ; + + if( people.seek( birth ) == Code4.r4success ) // String in CCYYMMDD format + Console.WriteLine( "Found: {0}\n", birth ) ; + + people.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex64.cs b/examples/source/CSharp/ex64.cs new file mode 100644 index 0000000..d01900d --- /dev/null +++ b/examples/source/CSharp/ex64.cs @@ -0,0 +1,37 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex64 + { + static int SeekSeries( Data4 d, string s ) + { + int rc ; + rc = d.seekNext( s ) ; + + if( rc == Code4.r4noTag || rc == Code4.r4entry || rc == Code4.r4locked || rc < 0 ) + return rc ; + + if( rc == Code4.r4after || rc == Code4.r4eof ) + rc = d.seek( s ) ; + + return rc ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 data = new Data4( cb, "PEOPLE" ) ; + Tag4 nametag = new Tag4( data, "PPL_NAME" ) ; + + data.select( nametag ) ; + int rc = data.seek( "mickey" ) ; + for ( ; rc == Code4.r4success ; rc = SeekSeries( data, "mickey" ) ) + Console.WriteLine( "found search string\n" ) ; + + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex65.cs b/examples/source/CSharp/ex65.cs new file mode 100644 index 0000000..7a0786b --- /dev/null +++ b/examples/source/CSharp/ex65.cs @@ -0,0 +1,37 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex65 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 data = new Data4( cb, "INFO" ) ; // automatically open data & index file. + Tag4 nameTag = new Tag4( data, "INF_NAME" ) ; + Tag4 firstTag = new Tag4( ); + firstTag.initFirst( data ) ; + + data.top(); + data.recall(); + + data.select( nameTag ) ; // Select the 'INF_NAME' + data.seek( "JONES" ) ; // Seek using 'INF_NAME' + + data.select( firstTag ) ; // Select the 'AGE' tag which is the + // first tag of the first open index + data.seek( 32 ) ; // Seek using selected tag 'AGE' + + data.select( ) ; // Select record ordering + data.seek( "ginger" ) ; // The seek uses the first tag of the first index + // when no tag is selected, so the seek fails even + // if "ginger" is in the data file + + data.top( ) ; //Physical top of the data file + + cb.initUndo( ) ; // close all files and free up Code4 memory + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex66.cs b/examples/source/CSharp/ex66.cs new file mode 100644 index 0000000..5bbbf37 --- /dev/null +++ b/examples/source/CSharp/ex66.cs @@ -0,0 +1,34 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex66 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 data = new Data4( cb, "NAMES" ) ; + + // Skip to the last record in the file whose NAME field contains "John" + + cb.optStart( ) ; + + Field4 name = new Field4( data, "F_NAME" ) ; + + for( data.bottom( ) ;data.bof( ) == 0 ; data.skip( -1 ) ) + { + if( name.str().Trim() == "John" ) // anything but -1 indicates a find + break ; + } + if( data.bof( ) != 0 ) + Console.WriteLine( "John not located\n" ) ; + else + Console.WriteLine( "The last John is in record: {0}\n", data.recNo( ) ) ; + + data.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex67.cs b/examples/source/CSharp/ex67.cs new file mode 100644 index 0000000..e82ec80 --- /dev/null +++ b/examples/source/CSharp/ex67.cs @@ -0,0 +1,34 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex67 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "DBF" ) ; + Tag4 tag = new Tag4( data, "DBF_NAME" ) ; // A tag with '.NOT.DELETED()' filter + + data.lockAll( ) ; + data.select( tag ) ; + data.top( ) ; // Position to the first record that is not deleted. + Console.WriteLine( "first record that is not deleted is {0}\n", data.recNo() ) ; + + data.deleteRec( ) ; // The current record no longer is located in the tag + + data.tagSync( ) ; // The change to the record is flushed, and the datafile is + // positioned on a valid record. + + data.top( ) ; + Console.WriteLine( "the new first record that is not deleted is {0}\n ", data.recNo() ) ; + data.skip( ) ; + + //... some other code ... + + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex68.cs b/examples/source/CSharp/ex68.cs new file mode 100644 index 0000000..0c88527 --- /dev/null +++ b/examples/source/CSharp/ex68.cs @@ -0,0 +1,28 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex68 + { + [STAThread] + static void Main(string[] args) + { + Code4 settings = new Code4() ; + Data4 info = new Data4( settings, "INFO" ) ; // automatically open data & index file + Tag4 firstTag = new Tag4() ; + firstTag.initFirst( info ) ; + + info.select( firstTag ) ; // Select first tag of the first open index + + int count = 0 ; + for( info.top( ) ; info.eof( ) == 0 ; info.skip( ) ) + count++ ; + + Console.WriteLine( "{0} records in tag {1}\n", count, firstTag.alias( ) ) ; + + info.close( ) ; + settings.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex69.cs b/examples/source/CSharp/ex69.cs new file mode 100644 index 0000000..5a05024 --- /dev/null +++ b/examples/source/CSharp/ex69.cs @@ -0,0 +1,33 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex69 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 data = new Data4( cb, "INFO" ) ; + Tag4 nameTag = new Tag4( data, "INF_NAME" ) ; + Field4 name = new Field4( data, "NAME" ) ; + + cb.exitTest( ) ; // check for errors + data.lockAll( ) ; + data.select( nameTag ) ; + + for( int rc = data.seek( "JONES" ) ; rc == 0 ; rc = data.skip( ) ) + { + if( name.str( ).Trim( ) == "JONES" ) + Console.WriteLine( "Jones in record {0}\n", data.recNo( ) ) ; + else + break ; + } + data.unlock( ) ; + + data.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex7.cs b/examples/source/CSharp/ex7.cs new file mode 100644 index 0000000..be9ebfd --- /dev/null +++ b/examples/source/CSharp/ex7.cs @@ -0,0 +1,25 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex7 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + Data4 data = new Data4( cb, "INFO" ) ; + + data.go( data.recCount( ) + 1 ) ; + + Console.WriteLine( "An error message was displayed" ) ; + cb.errorCode = cb.errGo = 0 ; + + data.go( data.recCount( ) + 1 ) ; + Console.WriteLine( "No error message was displayed" ) ; + + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex70.cs b/examples/source/CSharp/ex70.cs new file mode 100644 index 0000000..b2d1b25 --- /dev/null +++ b/examples/source/CSharp/ex70.cs @@ -0,0 +1,28 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex70 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + // open exclusively to avoid multiuser corruption + cb.accessMode = Code4.OPEN4DENY_RW ; + + Data4 data = new Data4( cb, "INFO" ) ; + data.go( 1 ) ; + + // Make all of the records in the data file the same as the first record + + for( int numRecs = data.recCount( ) ; numRecs-1 != 0 ; numRecs -- ) + if( data.write( numRecs ) != 0 ) + break ; + + data.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex71.cs b/examples/source/CSharp/ex71.cs new file mode 100644 index 0000000..a8e5217 --- /dev/null +++ b/examples/source/CSharp/ex71.cs @@ -0,0 +1,31 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex71 + { + static int zapLast( Data4 info, int toDelete ) + { + Console.WriteLine( "{0} has {1} records.\n", info.alias, info.recCount( ) ) ; + + // Remove the last 'toDelete' records in the data file. + // endRec parameter defaults to 1 Billion + + info.zap( info.recCount( ) - toDelete + 1, 1000000) ; + + Console.WriteLine( "\n{0} now has {1} records.\n", info.alias, info.recCount( ) ) ; + + return info.recCount( ) ; + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 data = new Data4( cb, "INFO" ) ; + zapLast( data, 10 ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex8.cs b/examples/source/CSharp/ex8.cs new file mode 100644 index 0000000..e71adb4 --- /dev/null +++ b/examples/source/CSharp/ex8.cs @@ -0,0 +1,30 @@ +using System ; +using CodeBase ; + +namespace c4ap +{ + class ex8 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4() ; + cb.errOpen = 0 ; + // no error message is displayed if NO_FILE does not exist + Data4 data = new Data4( cb, "NO_FILE" ) ; + + if( data.isValid() == 0 ) + { + // Data file does not exist + cb.safety = 0 ; + Field4info fields = new Field4info( ref cb ) ; + fields.add( "NAME_FLD", 'C', 20, 0, 0 ) ; + fields.add( "AGE_FLD", 'N', 3, 0, 0 ) ; + data.create( ref cb, "NO_FILE", ref fields ) ; + if( data.isValid( ) == 0 ) + Console.WriteLine( "Could not create NO_FILE" ) ; + } + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex92.cs b/examples/source/CSharp/ex92.cs new file mode 100644 index 0000000..b9752bf --- /dev/null +++ b/examples/source/CSharp/ex92.cs @@ -0,0 +1,26 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex92 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 data = new Data4( cb, "DATA" ) ; + + data.go( 1 ) ; + + // "FNAME" and "LNAME" are Character field names of data file "DATA.DBF" + Expr4 expr = new Expr4( data, "FNAME+\' \'+LNAME") ; + + Console.WriteLine( "FNAME and LNAME for Record One: {0}\n", expr.str( ) ) ; + + expr.free( ) ; + data.close( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex93.cs b/examples/source/CSharp/ex93.cs new file mode 100644 index 0000000..01639cd --- /dev/null +++ b/examples/source/CSharp/ex93.cs @@ -0,0 +1,25 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex93 + { + [STAThread] + static void Main(string[] args) + { + Code4 code = new Code4( ) ; + Data4 db = new Data4( code, "DATA" ) ; + Expr4 exp = new Expr4( db, "LNAME=\'Smith\'" ) ; // a logical dBASE expression + int count = 0 ; + + for( db.top( ) ; db.eof( ) == 0 ; db.skip( ) ) + if( exp.isTrue( ) > 0 ) + count++ ; + + Console.WriteLine( "{0} record(s) had a last name of Smith\n", count ) ; + + code.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex94.cs b/examples/source/CSharp/ex94.cs new file mode 100644 index 0000000..ed4a4db --- /dev/null +++ b/examples/source/CSharp/ex94.cs @@ -0,0 +1,27 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex94 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 db = new Data4( cb, "INFO" ) ; + Expr4 expr = new Expr4( db, "AGE" ) ; + + double VOTE_AGE = 18.0 ; + long count = 0 ; + for( int rc = db.top( ) ; rc != Code4.r4eof ; rc = db.skip( ) ) + if( (double) expr >= VOTE_AGE ) + count ++ ; + + Console.WriteLine( "Possible voters: {0}\n", count ) ; + + expr.free( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex96.cs b/examples/source/CSharp/ex96.cs new file mode 100644 index 0000000..b78c710 --- /dev/null +++ b/examples/source/CSharp/ex96.cs @@ -0,0 +1,27 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex96 + { + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 data = new Data4( cb, "DATA" ) ; + Data4 info = new Data4( cb, "INFO" ) ; + Expr4 expr = new Expr4( ) ; + + expr.parse( data, "FNAME+' '+DTOS( INFO->BIRTH_DATE)" ) ; + + data.top( ) ; + info.top( ) ; + + Console.WriteLine( "First name from DATA and birth date from INFO: {0}\n", expr.str() ); + + cb.closeAll( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex97.cs b/examples/source/CSharp/ex97.cs new file mode 100644 index 0000000..1df6700 --- /dev/null +++ b/examples/source/CSharp/ex97.cs @@ -0,0 +1,69 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex97 + { + static void showExpr( Expr4 ex ) + { + Console.WriteLine( "\nValue: " ); + + switch( ex.type( ) ) + { + case Code4.r4date: + Console.WriteLine( "{0}\nr4date\n", ex.str( ) ) ; + break ; + case Code4.r4dateDoub: + Console.WriteLine( "{0}\nr4dateDoub\n", (double) ex ) ; + break ; + case Code4.r4log: + Console.WriteLine( "{0}\nr4log\n", (double) ex ) ; + break ; + case Code4.r4num: + Console.WriteLine( "{0}\nr4num\n", (double) ex ) ; + break ; + case Code4.r4numDoub: + Console.WriteLine( "{0}\nr4numDoub\n", (double) ex ) ; + break ; + case Code4.r4str: + Console.WriteLine( "{0}\nr4str\n", ex.str( ) ) ; + break ; + case Code4.r4memo: + Console.WriteLine( "{0}\nr4memo\n", ex.str( ) ) ; + break ; + } + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 db = new Data4( cb, "info" ) ; + db.top( ) ; + + Expr4 ex = new Expr4( db, "NAME" ) ; + showExpr( ex ) ; + ex.free( ) ; + + ex.parse( db, "AGE" ) ; + showExpr( ex ) ; + ex.free( ) ; + + ex.parse( db, "AGE+1" ) ; + showExpr( ex ) ; + ex.free( ) ; + + ex.parse( db, "BIRTH_DATE" ) ; + showExpr( ex ) ; + ex.free( ) ; + + ex.parse( db, "BIRTH_DATE+1" ) ; + showExpr( ex ) ; + ex.free( ) ; + + cb.closeAll( ) ; + cb.initUndo( ) ; + } + } +} \ No newline at end of file diff --git a/examples/source/CSharp/ex99.cs b/examples/source/CSharp/ex99.cs new file mode 100644 index 0000000..479c461 --- /dev/null +++ b/examples/source/CSharp/ex99.cs @@ -0,0 +1,34 @@ +using System; +using CodeBase; + +namespace c4ap +{ + class ex99 + { + static void dumpDataFileToScreen( Data4 d ) + { + Console.WriteLine( "Contents of: {0}\n", d.alias ) ; + for( d.top( ) ; d.eof( ) == 0 ; d.skip( ) ) + { + for( short j = 1 ; j <=d.numFields( ) ; j++ ) + { + Field4 field = new Field4( d, j ) ; + Console.WriteLine( field.str( ) ) ; + } + Console.Write("\n") ; + } + } + + [STAThread] + static void Main(string[] args) + { + Code4 cb = new Code4( ) ; + Data4 data = new Data4(cb, "DATA"); + + dumpDataFileToScreen( data ); + + data.close(); + cb.initUndo(); + } + } +} \ No newline at end of file diff --git a/examples/source/VB.NET/EX0.vb b/examples/source/VB.NET/EX0.vb new file mode 100644 index 0000000..463ebee --- /dev/null +++ b/examples/source/VB.NET/EX0.vb @@ -0,0 +1,39 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX0.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + 'ex0 example code + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + rc = code4autoOpen(cb, 0) 'Don't open production index + rc = code4errDefaultUnique(cb, r4unique) 'How to handle duplicate keys + frm.ListBox1.Items.Add("made setting changes") + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "data1") 'Open a data file + + ' this is equivalent to calling error4exitTest( ) + + If code4errorCode(cb, 0) < 0 Then + Call code4exit(cb) + End If + + + ' more code ... + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX1.vb b/examples/source/VB.NET/EX1.vb new file mode 100644 index 0000000..cfd01e4 --- /dev/null +++ b/examples/source/VB.NET/EX1.vb @@ -0,0 +1,57 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX1.VB + + Public lf As String 'Line Feed + Public fpath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + 'ex1 example code + Dim cb, newDataFile As Integer + Dim fieldInfo() As FIELD4INFO + Dim rc As Short + + cb = code4init() + ReDim fieldInfo(3) + fieldInfo(0).fName = "NAME" + fieldInfo(0).ftype = r4str + fieldInfo(0).flength = 20 + fieldInfo(0).fdecimals = 0 + + fieldInfo(1).fName = "AGE" + fieldInfo(1).ftype = r4num + fieldInfo(1).flength = 3 + fieldInfo(1).fdecimals = 0 + + fieldInfo(2).fName = "BIRTH_DATE" + fieldInfo(2).ftype = r4date + fieldInfo(2).flength = 8 + fieldInfo(2).fdecimals = 0 + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fpath = VB6.GetPath & "\" + + rc = code4accessMode(cb, OPEN4DENY_RW) 'Prevents other applications from + 'having read and write access to any + 'files opened subsequently + rc = code4safety(cb, 0) 'Ensure the create overwrites any + 'existing file + newDataFile = d4createData(cb, fpath & "NEWDBF", fieldInfo) + + rc = d4close(newDataFile) + + rc = code4accessMode(cb, OPEN4DENY_NONE) 'Open file in shared mode + newDataFile = d4open(cb, fpath & "NEWDBF") + + '...some other code... + + rc = code4close(cb) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX10.vb b/examples/source/VB.NET/EX10.vb new file mode 100644 index 0000000..fb42c3a --- /dev/null +++ b/examples/source/VB.NET/EX10.vb @@ -0,0 +1,52 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX10.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + 'ex10 example code + Dim cb, inventory As Integer + Dim onHand, minOnHand, stockName As Integer + Dim rc, count As Short + Dim oldOpt, oldExcl As Short + + cb = code4init() + oldOpt = code4optimize(cb, OPT4EXCLUSIVE) + oldExcl = code4accessMode(cb, OPEN4DENY_RW) + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + inventory = d4open(cb, fPath & "INVENT.DBF") 'Read optimized + minOnHand = d4field(inventory, "MIN_ON_HND") + onHand = d4field(inventory, "ON_HAND") + stockName = d4field(inventory, "ITEM") + + count = 0 + If code4errorCode(cb, r4check) >= 0 Then + rc = code4optStart(cb) + rc = d4top(inventory) + Do While d4eof(inventory) = 0 + If f4long(onHand) < f4long(minOnHand) Then + count = count + 1 + End If + rc = d4skip(inventory, 1) + Loop + rc = code4optSuspend(cb) + End If + + rc = code4optimize(cb, oldOpt) + rc = code4accessMode(cb, oldExcl) + rc = d4close(inventory) + MsgBox(Str(count) & " items need to be restocked", MsgBoxStyle.OKOnly) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX100.vb b/examples/source/VB.NET/EX100.vb new file mode 100644 index 0000000..26b7ce0 --- /dev/null +++ b/examples/source/VB.NET/EX100.vb @@ -0,0 +1,38 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX100.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, field As Integer + Dim rc As Short + Dim j As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "DATA1") + + If db <> 0 Then + ' list the fields that are character fields + For j = 1 To d4numFields(db) + field = d4fieldJ(db, j) + If Chr(f4type(field)) = r4str Then + frm.ListBox1.Items.Add(f4name(field)) + End If + Next j + End If + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX101.vb b/examples/source/VB.NET/EX101.vb new file mode 100644 index 0000000..c4cf340 --- /dev/null +++ b/examples/source/VB.NET/EX101.vb @@ -0,0 +1,49 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX101.VB + + Sub ExCode(ByRef frm As Form1) + Dim f4memoBinary As Object + Dim f4binary As Object + Dim f4memoAssignBinary As Object + Dim f4assignBinary As Object + Dim cb As Integer + cb = code4init() + Call code4safety(cb, 0) + + Dim fields(2) As FIELD4INFO + fields(0).fName = "FIELD" + fields(0).ftype = r4str + fields(0).flength = 10 + fields(1).fName = "MFIELD" + fields(1).ftype = r4memo + + Dim field, data, mfield As Integer + data = d4createData(cb, "bin", fields) + field = d4field(data, "field") + mfield = d4field(data, "mfield") + + 'UPGRADE_WARNING: Lower bound of array bin was changed from 5 to 0. Click for more: 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1033"' + Dim bin(8) As Byte ' prepare a Byte array to append + bin(5) = &H8S + bin(6) = &H9S + bin(7) = &HAS + bin(8) = &HBS + + Call d4appendStart(data, 0) + Call f4assignBinary(field, bin) + Call f4memoAssignBinary(mfield, bin) + Call d4append(data) + + Dim getdata() As Byte + 'UPGRADE_WARNING: Couldn't resolve default property of object f4binary(). Click for more: 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1037"' + getdata = f4binary(field) + ' getdata contains 4 bytes from the 'bin' array plus 6 spaces + 'UPGRADE_WARNING: Couldn't resolve default property of object f4memoBinary(). Click for more: 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1037"' + getdata = f4memoBinary(mfield) + ' getdata contains 4 bytes from the 'bin' array + + Call code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX102.vb b/examples/source/VB.NET/EX102.vb new file mode 100644 index 0000000..a37f82a --- /dev/null +++ b/examples/source/VB.NET/EX102.vb @@ -0,0 +1,56 @@ +Option Strict Off +Option Explicit On +Module Example + 'ex102 + + Private reindexDone As Boolean + Private gFrm As Form1 + Private gMutex As New System.Threading.Mutex() + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc, action As Short + Dim fPath As String + + gFrm = frm + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, "c:\examples\customer") + If db <> 0 Then + reindexDone = False + rc = d4reindexWithProgress(db, AddressOf ReindexProgress, 1200) + If rc = r4success Then + Do While True + gMutex.WaitOne() + If reindexDone = True Then + gMutex.ReleaseMutex() + Exit Do + End If + gMutex.ReleaseMutex() + System.Threading.Thread.Sleep(100) + System.Windows.Forms.Application.DoEvents() + Loop + MsgBox("Reindex is complete.", MsgBoxStyle.Information, "Reindex") + End If + End If + + Call code4close(cb) + Call code4initUndo(cb) + End Sub + + Function ReindexProgress(ByVal percent As Double) As Short + ' Handle progress here by updating a progress bar, + ' for example. + + gFrm.ListBox1.Items.Add(VB6.Format(percent * 100, ".##")) + If percent >= 1.0# Then + gMutex.WaitOne() + reindexDone = True + gMutex.ReleaseMutex() + End If + ReindexProgress = 0 + End Function +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX11.vb b/examples/source/VB.NET/EX11.vb new file mode 100644 index 0000000..0f82263 --- /dev/null +++ b/examples/source/VB.NET/EX11.vb @@ -0,0 +1,51 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX11.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + 'ex11 example code + Dim db, cb, dateField As Integer + Dim rc As Short + Dim today_Renamed As String + Dim oldOpt, oldLockAtt, oldOptWrite As Short + + cb = code4init() + oldLockAtt = code4lockAttempts(cb, WAIT4EVER) + oldOpt = code4optimize(cb, OPT4ALL) + oldOptWrite = code4optimizeWrite(cb, OPT4ALL) + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "DATEFILE") + If code4errorCode(cb, r4check) Then code4exit((cb)) + + rc = d4lockAll(db) 'lock the file for optimizations to take place + + dateField = d4field(db, "DATE") + Call date4today(today_Renamed) + + rc = code4optStart(cb) + rc = d4top(db) + Do While d4eof(db) = 0 + Call f4assign(dateField, today_Renamed) + rc = d4skip(db, 1) + Loop + rc = code4optSuspend(cb) + + rc = d4close(db) + rc = code4lockAttempts(cb, oldLockAtt) + rc = code4optimize(cb, oldOpt) + rc = code4optimizeWrite(cb, oldOptWrite) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX12.vb b/examples/source/VB.NET/EX12.vb new file mode 100644 index 0000000..d4ab556 --- /dev/null +++ b/examples/source/VB.NET/EX12.vb @@ -0,0 +1,64 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX12.VB + + Public cb, db As Integer + Public rc As Short + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "DATEFILE") + Call modifyRecordValues() + rc = code4initUndo(cb) + End Sub + + Sub modifyRecordValues() + Dim buf As String + Dim field As Integer + + rc = code4readLock(cb, 1) + rc = code4lockAttempts(cb, 3) + + field = d4field(db, "DATE") + + rc = d4top(db) + Do While rc = r4locked + If retry() = 1 Then rc = d4top(db) + Loop + + If rc = r4locked Then Exit Sub + + Do While d4eof(db) = 0 + buf = InputBox("Enter the new record value", "EX12", "19950101") + Call f4assign(field, buf) + + rc = d4skip(db, 1) + Do While rc = r4locked + If retry() = 1 Then rc = d4skip(db, 1) + Loop + If rc = r4locked Then Exit Sub + Loop + End Sub + + Function retry() As Integer + rc = MsgBox("Record locked by another user. Retry?", MsgBoxStyle.YesNo) + If rc = IDYES Then + retry = 1 + Else + retry = 0 + End If + End Function +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX13.vb b/examples/source/VB.NET/EX13.vb new file mode 100644 index 0000000..274f8d7 --- /dev/null +++ b/examples/source/VB.NET/EX13.vb @@ -0,0 +1,39 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX13.VB + + Public lf As String 'Line Feed + Public fpath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, tag As Integer + Dim rc As Short + + cb = code4init() + rc = code4readOnly(cb, 1) + + 'open a file on a drive without write access + db = d4open(cb, "W:\DATA1.DBF") + + If code4errorCode(cb, 0) = r4success Then + tag = d4tag(db, "NAME_TAG") + Call d4tagSelect(db, tag) + + If d4seek(db, "Sarah Webber") = 0 Then + MsgBox("Sarah is found") + Else + MsgBox("Sarah is not found") + End If + + rc = d4close(db) + End If + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX14.vb b/examples/source/VB.NET/EX14.vb new file mode 100644 index 0000000..37b8803 --- /dev/null +++ b/examples/source/VB.NET/EX14.vb @@ -0,0 +1,63 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX14.VB + + Public cb, db As Integer + Public rc As Short + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Function createFiles() As Short + Dim fields() As FIELD4INFO + Dim tags() As TAG4INFO + + ReDim fields(3) + fields(0).fName = "NAME" + fields(0).ftype = r4str + fields(0).flength = 20 + fields(0).fdecimals = 0 + + fields(1).fName = "AGE" + fields(1).ftype = r4num + fields(1).flength = 3 + fields(1).fdecimals = 0 + + fields(2).fName = "BIRTH_DATE" + fields(2).ftype = r4date + fields(2).flength = 8 + fields(2).fdecimals = 0 + + ReDim tags(3) + tags(0).name = "INF_AGE" + tags(0).expression = "AGE" + + tags(1).name = "INF_BRTH" + tags(1).expression = "BIRTH_DATE" + + tags(2).name = "INF_NAME" + tags(2).expression = "NAME" + + rc = code4safety(cb, 0) 'Turn off safety -- overwrite files + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4create(cb, fPath & "INFO.DBF", fields, tags) + + createFiles = code4errorCode(cb, r4check) + End Function + + Sub ExCode(ByRef frm As Form1) + cb = code4init() + + rc = createFiles() + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX15.vb b/examples/source/VB.NET/EX15.vb new file mode 100644 index 0000000..4444580 --- /dev/null +++ b/examples/source/VB.NET/EX15.vb @@ -0,0 +1,39 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX15.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + 'ex15 example code + Dim cb, db As Integer + Dim ex, ex2 As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "DATA1") + rc = d4top(db) + + ex = expr4parse(db, "TRIM(L_NAME)+', '+TRIM(F_NAME)") + rc = code4calcCreate(cb, ex, "NAMES") + frm.ListBox1.Items.Add(expr4str(ex)) + + ex2 = expr4parse(db, "'HELLO '+NAMES()") 'no space in dBASE function calls + frm.ListBox1.Items.Add(expr4str(ex2)) + + Call expr4free(ex2) + Call code4calcReset(cb) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX16.vb b/examples/source/VB.NET/EX16.vb new file mode 100644 index 0000000..aef8c7e --- /dev/null +++ b/examples/source/VB.NET/EX16.vb @@ -0,0 +1,39 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX16.VB + + Public cb As Integer + Public rc As Short + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db As Integer + cb = code4init() + rc = code4autoOpen(cb, 0) + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + Call openAFile() + + db = d4open(cb, fPath & "DATA1") 'open a second file + frm.ListBox1.Items.Add("Number of records in DATA1: " & Str(d4recCount(db))) + + rc = code4close(cb) 'INFO and DATA1 are both closed + rc = code4initUndo(cb) + End Sub + + Sub openAFile() + Dim db As Integer + 'db falls out of scope. the data file is still open + db = d4open(cb, fPath & "INFO") + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX17.vb b/examples/source/VB.NET/EX17.vb new file mode 100644 index 0000000..8e85335 --- /dev/null +++ b/examples/source/VB.NET/EX17.vb @@ -0,0 +1,43 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX17.VB + + Public cb As Integer + Public rc As Short + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db As Integer + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + Call openAFile() + + db = code4data(cb, "INFO") 'obtain a new DATA4 structure + If db <> 0 Then + frm.ListBox1.Items.Add("INFO has " & Str(d4recCount(db)) & " records") + rc = d4top(db) + 'an alternative way to close the file + rc = d4close(code4data(cb, "INFO")) + End If + + rc = code4initUndo(cb) + End Sub + + Sub openAFile() + Dim db As Integer + 'db falls out of scope. Data file is still open + db = d4open(cb, fPath & "INFO") + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX18.vb b/examples/source/VB.NET/EX18.vb new file mode 100644 index 0000000..bcb4f8d --- /dev/null +++ b/examples/source/VB.NET/EX18.vb @@ -0,0 +1,28 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX18.VB + + Public cb As Integer + Public rc As Short + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + cb = code4init() + Call exitToSystem() + End Sub + + Sub exitToSystem() + MsgBox("Shutting down application ... ") + + rc = code4close(cb) + Call code4exit(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX19.vb b/examples/source/VB.NET/EX19.vb new file mode 100644 index 0000000..7c9aa20 --- /dev/null +++ b/examples/source/VB.NET/EX19.vb @@ -0,0 +1,46 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX19.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim data1, cb, data2 As Integer + Dim rc As Short + Dim numRec As Integer + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + data1 = d4open(cb, fPath & "DATA1") + data2 = d4open(cb, fPath & "DATA2") + + rc = d4top(data1) + rc = d4top(data2) + + rc = d4lockAddFile(data1) + rc = d4lockAddAppend(data2) + + numRec = d4recCount(data2) + + If numRec > 2 Then + rc = d4lockAdd(data2, numRec) + rc = d4lockAdd(data2, numRec - 1) + End If + + If code4lock(cb) = r4success Then + MsgBox("All locks were successfully performed") + End If + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX2.vb b/examples/source/VB.NET/EX2.vb new file mode 100644 index 0000000..59edf32 --- /dev/null +++ b/examples/source/VB.NET/EX2.vb @@ -0,0 +1,44 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX2.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + 'ex2 example code + + Dim db, cb, info, ind As Integer + Dim rc As Short + + cb = code4init() + + ' Do not automatically open production index file + rc = code4autoOpen(cb, 0) + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + info = d4open(cb, fPath & "INFO") + ind = i4open(info, fPath & "INFO") + + If ind = 0 Then + MsgBox("Production index file is not opened", MsgBoxStyle.OKOnly) + End If + + ' DATA1.DBF has a production index. Open it + rc = code4autoOpen(cb, 1) + db = d4open(cb, fPath & "DATA1") + + ' Some other code + + rc = code4close(cb) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX20.vb b/examples/source/VB.NET/EX20.vb new file mode 100644 index 0000000..fb45925 --- /dev/null +++ b/examples/source/VB.NET/EX20.vb @@ -0,0 +1,44 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX20.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc, delCount As Short + + cb = code4init() + rc = code4accessMode(cb, OPEN4DENY_RW) + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + error4exitTest((cb)) + + 'initialize optimization with default settings + + rc = code4optStart(cb) + + delCount = 0 + rc = d4top(db) + Do While rc = r4success + If d4deleted(db) Then + delCount = delCount + 1 + End If + rc = d4skip(db, 1) + Loop + + frm.ListBox1.Items.Add(Str(delCount) & " records are marked for deletion") + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX21.vb b/examples/source/VB.NET/EX21.vb new file mode 100644 index 0000000..248556a --- /dev/null +++ b/examples/source/VB.NET/EX21.vb @@ -0,0 +1,39 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX21.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + + rc = d4lockAll(db) + rc = d4optimizeWrite(db, OPT4ALL) + + rc = code4optStart(cb) + '... some other code + rc = code4optSuspend(cb) 'flush & free optimization memory. + + rc = d4unlock(db) 'let other users make modifications. + '... some other code + rc = d4lockAll(db) + rc = code4optStart(cb) + '... some other code + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX22.vb b/examples/source/VB.NET/EX22.vb new file mode 100644 index 0000000..daef61f --- /dev/null +++ b/examples/source/VB.NET/EX22.vb @@ -0,0 +1,35 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX22.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + 'ex22 example code + Dim info, cb, db As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + info = d4open(cb, fPath & "INFO") + db = d4open(cb, fPath & "DATA1") + + rc = d4lock(info, 1) + If rc = r4success Then frm.ListBox1.Items.Add("lock successful") + rc = d4lockAll(db) + If rc = r4success Then frm.ListBox1.Items.Add("lock successful") + rc = code4unlock(cb) 'unlocks all open files + If rc = r4success Then frm.ListBox1.Items.Add("unlock successful") + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX23.vb b/examples/source/VB.NET/EX23.vb new file mode 100644 index 0000000..7a15160 --- /dev/null +++ b/examples/source/VB.NET/EX23.vb @@ -0,0 +1,38 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX23.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim info, cb, field As Integer + Dim rc As Short + Dim iRec, recNum As Integer + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + info = d4open(cb, fPath & "DATA2") + + rc = code4optStart(cb) + field = d4field(info, "NAME") + + recNum = d4recCount(info) + For iRec = 1 To recNum + rc = d4go(info, iRec) + Call f4assign(field, "New Data") + Next + + rc = d4close(info) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX24.vb b/examples/source/VB.NET/EX24.vb new file mode 100644 index 0000000..f2b9b3a --- /dev/null +++ b/examples/source/VB.NET/EX24.vb @@ -0,0 +1,29 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX24.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + + frm.ListBox1.Items.Add("The alias of the db file INFO.DBF is " & d4alias(db)) + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX25.vb b/examples/source/VB.NET/EX25.vb new file mode 100644 index 0000000..b11f07a --- /dev/null +++ b/examples/source/VB.NET/EX25.vb @@ -0,0 +1,50 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX25.BAS + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, field As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + rc = code4optStart(cb) + + rc = d4appendBlank(db) + rc = d4appendBlank(db) + + 'Append a copy of record two, assuming record two exists + rc = d4go(db, 2) + rc = d4appendStart(db, 0) 'a false parameter means don't copy memo entries + rc = d4append(db) 'append a copy of record 2 using a blank memo + + rc = d4go(db, 2) + rc = d4appendStart(db, 1) 'a true parameter means copy memo entries + rc = d4append(db) 'append a copy of record 2 with its memo + + 'Set the record buffer to blank, change a field's value, and append + 'the resulting record. + rc = d4appendStart(db, 0) + Call d4blank(db) + + field = d4field(db, "NAME") + Call f4assign(field, "New Field Value") + rc = d4append(db) + + 'close all open files and release any allocated memory + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX26.vb b/examples/source/VB.NET/EX26.vb new file mode 100644 index 0000000..b16a943 --- /dev/null +++ b/examples/source/VB.NET/EX26.vb @@ -0,0 +1,34 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX26.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc, i As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + + 'Add 20 blank records + For i = 1 To 20 + rc = d4appendBlank(db) + Next + + 'Close the data file + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX27.vb b/examples/source/VB.NET/EX27.vb new file mode 100644 index 0000000..e7f6ea9 --- /dev/null +++ b/examples/source/VB.NET/EX27.vb @@ -0,0 +1,33 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX27.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + 'Blanks out all records in the data file + rc = d4top(db) + Do While d4eof(db) = 0 + Call d4blank(db) + rc = d4skip(db, 1) + Loop + + rc = code4initUndo(cb) 'close all files and release any memory + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX28.vb b/examples/source/VB.NET/EX28.vb new file mode 100644 index 0000000..ca14f49 --- /dev/null +++ b/examples/source/VB.NET/EX28.vb @@ -0,0 +1,36 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX28.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, field As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + field = d4fieldJ(db, 1) + + 'output the first field of every record in reverse sequential order. + rc = d4bottom(db) + Do While d4bof(db) = 0 + frm.ListBox1.Items.Add(f4str(field)) + rc = d4skip(db, -1) + Loop + + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX29.vb b/examples/source/VB.NET/EX29.vb new file mode 100644 index 0000000..daf3735 --- /dev/null +++ b/examples/source/VB.NET/EX29.vb @@ -0,0 +1,30 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX29.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, field As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + + rc = d4bottom(db) + frm.ListBox1.Items.Add("Last Name added: " & f4str(d4field(db, "NAME"))) + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX3.vb b/examples/source/VB.NET/EX3.vb new file mode 100644 index 0000000..7ca33ad --- /dev/null +++ b/examples/source/VB.NET/EX3.vb @@ -0,0 +1,44 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX3.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + 'ex3 example code + Dim cb, temp As Integer + Dim rc As Short + Dim fieldInfo() As FIELD4INFO + + ReDim fieldInfo(1) + + fieldInfo(0).fName = "NAME" + fieldInfo(0).ftype = r4str + fieldInfo(0).flength = 10 + fieldInfo(0).fdecimals = 0 + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + rc = code4errCreate(cb, 0) + temp = d4createData(cb, fPath & "NEWFILE", fieldInfo) + If code4errorCode(cb, r4check) = r4noCreate Then + 'File exists. Try in the temp directory. + temp = d4createData(cb, "C:\TEMP\NEWFILE", fieldInfo) 'TEMP must exist + End If + + If code4errorCode(cb, 0) < 0 Then Call code4exit(cb) + + 'Some other code + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX30.vb b/examples/source/VB.NET/EX30.vb new file mode 100644 index 0000000..f7fd394 --- /dev/null +++ b/examples/source/VB.NET/EX30.vb @@ -0,0 +1,44 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX30.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, field As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "DATA1") + field = d4field(db, "L_NAME") + rc = d4top(db) + + If d4changed(db, -1) = 0 Then 'Displays false + MsgBox("Changed Status: FALSE") + Else + MsgBox("Changed Status: TRUE") + End If + + Call f4assign(field, "TEMP DATA") + If d4changed(db, -1) = 0 Then 'Displays true + MsgBox("Changed Status: FALSE") + Else + MsgBox("Changed Status: TRUE") + End If + + rc = d4changed(db, 0) + rc = d4close(db) 'top record not flushed + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX31.vb b/examples/source/VB.NET/EX31.vb new file mode 100644 index 0000000..eb12656 --- /dev/null +++ b/examples/source/VB.NET/EX31.vb @@ -0,0 +1,46 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX31.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim checkData, cb, testIndex As Integer + Dim rc As Short + Dim fileName, indexName As String + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + rc = code4autoOpen(cb, 0) 'open index file manually + fileName = InputBox("Enter data file name ", "EX31", "INFO") + indexName = InputBox("Enter index file name ", "EX31", "INFO") + If fileName = "" Then + Exit Sub + Else + checkData = d4open(cb, fPath & fileName) + testIndex = i4open(checkData, fPath & indexName) + + error4exitTest((cb)) + rc = code4optStart(cb) + + If d4check(checkData) = r4success Then + MsgBox("Index is OK !") + Else + MsgBox("Problem with Index") + End If + End If + + rc = code4close(cb) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX32.vb b/examples/source/VB.NET/EX32.vb new file mode 100644 index 0000000..19af704 --- /dev/null +++ b/examples/source/VB.NET/EX32.vb @@ -0,0 +1,59 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX32.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, secondFile As Integer + Dim fieldArray() As FIELD4INFO + Dim tagArray() As TAG4INFO + Dim rc As Short + + cb = code4init() + rc = code4safety(cb, 0) 'overwrite the file if it exists + + ReDim fieldArray(3) + fieldArray(0).fName = "NAME_FIELD" + fieldArray(0).ftype = r4str + fieldArray(0).flength = 20 + fieldArray(0).fdecimals = 0 + + fieldArray(1).fName = "AGE_FIELD" + fieldArray(1).ftype = r4num + fieldArray(1).flength = 2 + fieldArray(1).fdecimals = 0 + + fieldArray(2).fName = "BIRTH_DATE" + fieldArray(2).ftype = r4date + fieldArray(2).flength = 8 + fieldArray(2).fdecimals = 0 + + ReDim tagArray(1) + tagArray(0).name = "NAME_TAG" + tagArray(0).expression = "NAME_FIELD" + + 'Specify full path if stand-alone + If u4switch() And &H80s Then fPath = VB6.GetPath & "\" + + db = d4create(cb, fPath & "NEWDBF", fieldArray, tagArray) + + error4exitTest((cb)) + + If code4errorCode(cb, r4check) < 0 Then + MsgBox("An error occurred, NEWDBF was not created") + Else + MsgBox("Created successfully") + End If + + rc = code4close(cb) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX33.vb b/examples/source/VB.NET/EX33.vb new file mode 100644 index 0000000..621fc8c --- /dev/null +++ b/examples/source/VB.NET/EX33.vb @@ -0,0 +1,54 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX33.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, secondFile As Integer + Dim fieldArray() As FIELD4INFO + Dim rc As Short + + cb = code4init() + rc = code4safety(cb, 0) 'overwrite the file if it exists + + ReDim fieldArray(3) + fieldArray(0).fName = "NAME_FIELD" + fieldArray(0).ftype = r4str + fieldArray(0).flength = 20 + fieldArray(0).fdecimals = 0 + + fieldArray(1).fName = "AGE_FIELD" + fieldArray(1).ftype = r4num + fieldArray(1).flength = 2 + fieldArray(1).fdecimals = 0 + + fieldArray(2).fName = "BIRTH_DATE" + fieldArray(2).ftype = r4date + fieldArray(2).flength = 8 + fieldArray(2).fdecimals = 0 + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4createData(cb, fPath & "NEWDBF", fieldArray) + + error4exitTest((cb)) + + If code4errorCode(cb, r4check) < 0 Then + MsgBox("An error occurred, NEWDBF was not created") + Else + MsgBox("Created successfully") + End If + + rc = code4close(cb) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX34.vb b/examples/source/VB.NET/EX34.vb new file mode 100644 index 0000000..8eef456 --- /dev/null +++ b/examples/source/VB.NET/EX34.vb @@ -0,0 +1,38 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX34.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + rc = code4accessMode(cb, OPEN4DENY_RW) 'open file exclusively to speed pack + db = d4open(cb, fPath & "INFO") + error4exitTest((cb)) + + rc = code4optStart(cb) + rc = d4top(db) + Do While rc = r4success + Call d4delete(db) 'mark record for deletion + rc = d4skip(db, 2) + Loop + 'physically remove the deleted records from the disk + rc = d4pack(db) + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX35.vb b/examples/source/VB.NET/EX35.vb new file mode 100644 index 0000000..1c9a788 --- /dev/null +++ b/examples/source/VB.NET/EX35.vb @@ -0,0 +1,38 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX35.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc As Short + Dim count As Integer + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + rc = code4optStart(cb) + count = 0 + + rc = d4top(db) + Do While rc = r4success + If d4deleted(db) = 1 Then + count = count + 1 + End If + rc = d4skip(db, 1) + Loop + frm.ListBox1.Items.Add("INFO has " & Str(count) & " deleted records") + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX36.vb b/examples/source/VB.NET/EX36.vb new file mode 100644 index 0000000..2389f3a --- /dev/null +++ b/examples/source/VB.NET/EX36.vb @@ -0,0 +1,35 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX36.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + 'Go to the end of the file and set the End of File flag + rc = d4goEof(db) + 'Check if the End of File flag is set + If d4eof(db) = 1 Then + MsgBox("This is always true") + rc = d4bottom(db) 'reset the eof flag + End If + + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX37.vb b/examples/source/VB.NET/EX37.vb new file mode 100644 index 0000000..7716416 --- /dev/null +++ b/examples/source/VB.NET/EX37.vb @@ -0,0 +1,32 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX37.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, field As Integer + Dim rc, num As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + For num = d4numFields(db) To 1 Step -1 + field = d4fieldJ(db, num) + If num = d4fieldNumber(db, f4name(field)) Then + MsgBox("This is always true") + End If + Next + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX38.vb b/examples/source/VB.NET/EX38.vb new file mode 100644 index 0000000..0491b23 --- /dev/null +++ b/examples/source/VB.NET/EX38.vb @@ -0,0 +1,33 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX38.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, age As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + rc = d4go(db, 2) + age = d4field(db, "AGE") + Call f4assignLong(age, 49) + 'Explicitly flush the change to disk in case the power goes out + rc = d4flush(db) + '... some other code.... + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX39.vb b/examples/source/VB.NET/EX39.vb new file mode 100644 index 0000000..5b7dfd5 --- /dev/null +++ b/examples/source/VB.NET/EX39.vb @@ -0,0 +1,40 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX39.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + + rc = code4lockAttempts(cb, 1) 'do not wait when locking + rc = code4readLock(cb, 1) + + rc = d4go(db, 2) + If rc = r4locked Then + MsgBox("Record 3 was locked by another user") + rc = code4readLock(cb, 0) 'turn off automatic locking + rc = d4go(db, 2) + If rc = r4locked Then + MsgBox("This will never happen because CODE4.readLock is false") + End If + End If + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX4.vb b/examples/source/VB.NET/EX4.vb new file mode 100644 index 0000000..53aff43 --- /dev/null +++ b/examples/source/VB.NET/EX4.vb @@ -0,0 +1,45 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX4.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + 'ex4 example code + + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + + ' Do not add duplicate records to unique tags or the data file and + ' return r4unique when attempted. + rc = code4errDefaultUnique(cb, r4unique) + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + rc = d4top(db) + rc = d4appendStart(db, 0) + + rc = d4append(db) ' append a duplicate copy of the top record + + If rc = r4unique Then + MsgBox("Attempt to add a duplicate record failed.", MsgBoxStyle.OKOnly) + Else + MsgBox("Attempt to add a duplicate record succeeded", MsgBoxStyle.OKOnly) + MsgBox("Record in both data and index file", MsgBoxStyle.OKOnly) + End If + + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX40.vb b/examples/source/VB.NET/EX40.vb new file mode 100644 index 0000000..f516ef1 --- /dev/null +++ b/examples/source/VB.NET/EX40.vb @@ -0,0 +1,39 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX40.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, index As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + 'Since CODE4.autoOpen is true (non-zero) by default + 'the index file should have been opened + index = d4index(db, "INFO") + If index <> 0 Then + MsgBox("Index file INFO has been opened") + End If + + index = d4index(db, fPath & "JUNK") + If index = 0 Then + MsgBox("Index file JUNK has not been opened") + End If + + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX41.vb b/examples/source/VB.NET/EX41.vb new file mode 100644 index 0000000..455c27c --- /dev/null +++ b/examples/source/VB.NET/EX41.vb @@ -0,0 +1,41 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX41.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "DATA1") + rc = code4lockAttempts(cb, 4) 'try lock 4 times + rc = d4lock(db, 2) 'lock record 5 + If rc = r4success Then + MsgBox("Record 2 is now locked") + ElseIf rc = r4locked Then + MsgBox("Record 2 is locked by another user") + End If + + rc = code4lockAttempts(cb, WAIT4EVER) 'try lock forever + rc = d4lock(db, 2) + If rc = r4locked Then + MsgBox("This should never happen") + End If + + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX42.vb b/examples/source/VB.NET/EX42.vb new file mode 100644 index 0000000..a406783 --- /dev/null +++ b/examples/source/VB.NET/EX42.vb @@ -0,0 +1,32 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX42.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + + rc = d4lockAll(db) + If rc = r4success Then + MsgBox("Lock is successful") + End If + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX43.vb b/examples/source/VB.NET/EX43.vb new file mode 100644 index 0000000..fdc2dfd --- /dev/null +++ b/examples/source/VB.NET/EX43.vb @@ -0,0 +1,34 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX43.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + 'Lock all the records in the data file as well as the append bytes + 'all at once. Existing locks are removed according to + 'code4unlockAuto + + rc = d4lockFile(db) + If rc = r4success Then + MsgBox("Other users can read this data file, but can not make modifications until the lock is removed") + End If + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX44.vb b/examples/source/VB.NET/EX44.vb new file mode 100644 index 0000000..ab4c3ff --- /dev/null +++ b/examples/source/VB.NET/EX44.vb @@ -0,0 +1,34 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX44.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "DATA1") + + If d4pack(db) = r4success Then + MsgBox("Records marked for deletion are removed") + End If + If d4memoCompress(db) = r4success Then + MsgBox("Memo entries are compressed") + End If + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX45.vb b/examples/source/VB.NET/EX45.vb new file mode 100644 index 0000000..8e85a94 --- /dev/null +++ b/examples/source/VB.NET/EX45.vb @@ -0,0 +1,35 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX45.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, field As Integer + Dim rc, fieldNum As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + + rc = code4optStart(cb) + rc = d4top(db) + Do While rc <> r4eof + For fieldNum = 1 To d4numFields(db) + frm.ListBox1.Items.Add(f4name(d4fieldJ(db, fieldNum))) + Next + rc = d4skip(db, 1) + Loop + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX46.vb b/examples/source/VB.NET/EX46.vb new file mode 100644 index 0000000..25f34e0 --- /dev/null +++ b/examples/source/VB.NET/EX46.vb @@ -0,0 +1,32 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX46.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + + If db <> 0 Then + frm.ListBox1.Items.Add("Data File INFO.DBF has " & Str(d4recCount(db)) & " records") + End If + + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX47.vb b/examples/source/VB.NET/EX47.vb new file mode 100644 index 0000000..7233909 --- /dev/null +++ b/examples/source/VB.NET/EX47.vb @@ -0,0 +1,41 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX47.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, extra As Integer + Dim rc As Short + + cb = code4init() + rc = code4accessMode(cb, OPEN4DENY_RW) + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + 'Open the file exclusively, default optimization is the same as if + 'd4optimize( db, OPT4EXCLUSIVE ) were called. + + 'open a shared file. + rc = code4accessMode(cb, OPEN4DENY_NONE) + extra = d4open(cb, fPath & "DATA1") + + rc = d4optimize(extra, OPT4ALL) 'read optimize the extra "DATA" file + + rc = code4optStart(cb) 'Begin the memory optimizations. + + ' .... Some other code .... + + rc = code4close(cb) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX48.vb b/examples/source/VB.NET/EX48.vb new file mode 100644 index 0000000..f9abee6 --- /dev/null +++ b/examples/source/VB.NET/EX48.vb @@ -0,0 +1,43 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX48.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, ageField As Integer + Dim rc As Short + Dim age As Integer + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + + rc = d4optimizeWrite(db, OPT4ALL) + 'when doing write optimization on shared files, it is necessary to + 'lock the file, preferably with d4lockAll( ) + rc = d4lockAll(db) + + rc = code4optStart(cb) 'Begin optimization + ageField = d4field(db, "AGE") + 'append a copy of the first record, assigning the age field's + 'value from 20 to 65 + rc = d4top(db) + For age = 20 To 65 + rc = d4appendStart(db, 0) + Call f4assignLong(ageField, age) + rc = d4append(db) + Next + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX49.vb b/examples/source/VB.NET/EX49.vb new file mode 100644 index 0000000..5563174 --- /dev/null +++ b/examples/source/VB.NET/EX49.vb @@ -0,0 +1,38 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX49.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc As Integer + + cb = code4init() + rc = code4accessMode(cb, OPEN4DENY_RW) 'open file exclusively + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + error4exitTest((cb)) + rc = code4optStart(cb) + + rc = d4top(db) + Do While rc = r4success + Call d4delete(db) 'Mark every other record for deletion + rc = d4skip(db, 2) + Loop + 'Remove the deleted records from the disk physically + rc = d4pack(db) + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX5.vb b/examples/source/VB.NET/EX5.vb new file mode 100644 index 0000000..a0b9eaa --- /dev/null +++ b/examples/source/VB.NET/EX5.vb @@ -0,0 +1,37 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX5.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, expr As Integer + Dim badExpr As String + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + + badExpr = "NAME = 5" + expr = expr4parse(db, badExpr) + MsgBox("An error message just displayed", MsgBoxStyle.OKOnly) + + rc = code4errorCode(cb, 0) + rc = code4errExpr(cb, 0) + expr = expr4parse(db, badExpr) + MsgBox("No error message displayed.", MsgBoxStyle.OKOnly) + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX50.vb b/examples/source/VB.NET/EX50.vb new file mode 100644 index 0000000..4527890 --- /dev/null +++ b/examples/source/VB.NET/EX50.vb @@ -0,0 +1,35 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX50.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, defaultTag As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + defaultTag = d4tagDefault(db) + error4exitTest((cb)) + + Call d4tagSelect(db, defaultTag) 'select the default tag + rc = d4top(db) + rc = d4positionSet(db, 0.25) 'move one quarter through the index file. + frm.ListBox1.Items.Add("Record number: " & Str(d4recNo(db))) + frm.ListBox1.Items.Add("The current position is " & Str(d4position(db))) + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX51.vb b/examples/source/VB.NET/EX51.vb new file mode 100644 index 0000000..ef48ed3 --- /dev/null +++ b/examples/source/VB.NET/EX51.vb @@ -0,0 +1,50 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX51.VB + + Dim cb, db As Integer + Dim rc As Integer + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim count As Integer + Dim lockTries As Short + + lockTries = WAIT4EVER + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + count = recallAll(lockTries) + frm.ListBox1.Items.Add("The number of recalled records is " & Str(count)) + rc = code4initUndo(cb) + End Sub + + Function recallAll(ByRef lockTries As Short) As Integer + Dim saveSelected As Integer + Dim count As Integer + + saveSelected = d4tagSelected(db) + Call d4tagSelect(db, 0) 'use record number ordering + count = 0 + rc = d4top(db) + Do While rc = r4success + Call d4recall(db) + If d4changed(db, -1) <> 0 Then count = count + 1 + rc = d4skip(db, 1) + Loop + + Call d4tagSelect(db, saveSelected) 'reset the selected tag + recallAll = count + End Function +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX52.vb b/examples/source/VB.NET/EX52.vb new file mode 100644 index 0000000..16fb3dc --- /dev/null +++ b/examples/source/VB.NET/EX52.vb @@ -0,0 +1,42 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX52.VB + + Dim cb, db As Integer + Dim rc As Short + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim count As Integer + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + + count = recsInFile() + frm.ListBox1.Items.Add("the number of records in the file is " & Str(count)) + rc = code4initUndo(cb) + End Sub + + Function recsInFile() As Integer + Dim count As Integer + + If code4errorCode(cb, r4check) < 0 Then 'an error occurred + recsInFile = -1 + Exit Function + End If + count = d4recCount(db) 'save the record count + recsInFile = count + End Function +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX53.vb b/examples/source/VB.NET/EX53.vb new file mode 100644 index 0000000..852ba42 --- /dev/null +++ b/examples/source/VB.NET/EX53.vb @@ -0,0 +1,37 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX53.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, defaultTag As Integer + Dim rc As Short + Dim count As Integer + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + defaultTag = d4tagDefault(db) + Call d4tagSelect(db, defaultTag) 'select the default tag + count = 1 + rc = d4top(db) + Do While rc = r4success + frm.ListBox1.Items.Add("Tag position: " & Str(count) & " Record position: " & Str(d4recNo(db))) + count = count + 1 + rc = d4skip(db, 1) + Loop + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX54.vb b/examples/source/VB.NET/EX54.vb new file mode 100644 index 0000000..4b785bc --- /dev/null +++ b/examples/source/VB.NET/EX54.vb @@ -0,0 +1,54 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX54.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim fromFile, cb, toFile As Integer + Dim fromField, toField As Integer + Dim toStr As String + Dim rc, i As Short + Dim iRecs As Integer + + 'Copy records from one database to another. + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + 'Data file TO_DBF and FROM_DBF have the same file structure + fromFile = d4open(cb, fPath & "FROM_DBF") + toFile = d4open(cb, fPath & "TO_DBF") + rc = code4optStart(cb) + + If d4recWidth(fromFile) <> d4recWidth(toFile) Then + rc = error4describe(cb, e4result, 0, "Structures not identical", "", "") + code4exit((cb)) + End If + + error4exitTest((cb)) + For iRecs = 1 To d4recCount(fromFile) + rc = d4go(fromFile, iRecs) 'read the data file record + rc = d4appendStart(toFile, 0) 'copy the data file buffer + For i = 1 To d4numFields(fromFile) + fromField = d4fieldJ(fromFile, i) + 'UPGRADE_WARNING: Couldn't resolve default property of object f4nCpy(). Click for more: 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1037"' + rc = f4nCpy(fromField, toStr, f4len(fromField)) + toField = d4fieldJ(toFile, i) + Call f4assign(toField, toStr) + Next + rc = d4append(toFile) + Next + rc = code4close(cb) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX55.vb b/examples/source/VB.NET/EX55.vb new file mode 100644 index 0000000..4a841bc --- /dev/null +++ b/examples/source/VB.NET/EX55.vb @@ -0,0 +1,34 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX55.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + rc = d4optimize(db, OPT4ALL) + rc = code4optStart(cb) + rc = d4top(db) + MsgBox("Click OK when you want to refresh your data", MsgBoxStyle.OKOnly) + rc = d4refresh(db) + rc = d4top(db) 're-read the record from disk + MsgBox("The latest infomation is now in the buffer") + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX56.vb b/examples/source/VB.NET/EX56.vb new file mode 100644 index 0000000..f21c8c8 --- /dev/null +++ b/examples/source/VB.NET/EX56.vb @@ -0,0 +1,34 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX56.VB + + Dim cb, db As Integer + Dim rc As Short + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + cb = code4init() + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + db = d4open(cb, fPath & "DATA1") + rc = d4top(db) + Call updateData() + rc = code4initUndo(cb) + End Sub + + Sub updateData() + If d4changed(db, -1) > 0 Then + frm.ListBox1.Items.Add("Changes not discarded") + Else + rc = d4refreshRecord(db) + End If + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX57.vb b/examples/source/VB.NET/EX57.vb new file mode 100644 index 0000000..8a10cb6 --- /dev/null +++ b/examples/source/VB.NET/EX57.vb @@ -0,0 +1,34 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX57.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + rc = code4accessMode(cb, OPEN4DENY_RW) + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + + frm.ListBox1.Items.Add("Reindexing " & d4alias(db) & " Please Wait") + If d4reindex(db) <> 0 Then + MsgBox("Reindex NOT successful") + Else + MsgBox("Reindex Successful") + End If + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX58.vb b/examples/source/VB.NET/EX58.vb new file mode 100644 index 0000000..6156f31 --- /dev/null +++ b/examples/source/VB.NET/EX58.vb @@ -0,0 +1,72 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX58.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, age As Integer + Dim rc As Short + Dim birth, result As String + Dim birthLong As Integer + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "PEOPLE.DBF") + 'Assume PEOPLE.DBF has a production index file with + 'tags PPL_NAME, PPL_AGE, PPL_BRTH + Call d4tagSelect(db, d4tag(db, "PPL_NAME")) + + If d4seek(db, "fred") = r4success Then + frm.ListBox1.Items.Add("fred is in record # " & Str(d4recNo(db))) + End If + + If d4seek(db, "HANK STEVENS") = r4success Then + frm.ListBox1.Items.Add("HANK STEVENS is in record #" & Str(d4recNo(db))) + End If + + Call d4tagSelect(db, d4tag(db, "PPL_AGE")) + age = d4field(db, "AGE") + + rc = d4seekDouble(db, 0.0#) + + If rc = r4success Or rc = r4after Then + frm.ListBox1.Items.Add("The youngest age is " & Str(f4int(age))) + End If + + 'Seek using the character version + rc = d4seek(db, "0") + + If rc = r4success Or rc = r4after Then + frm.ListBox1.Items.Add("The youngest age is " & Str(f4int(age))) + End If + + 'Assume PPL_BRTH is a Date key expression + Call d4tagSelect(db, d4tag(db, "PPL_BRTH")) + + birth = "19600415" + + If d4seek(db, birth) = r4success Then + Call date4format(birth, result, "MMM DD, CCYY") + frm.ListBox1.Items.Add("Found " & result) + End If + + birthLong = date4long(birth) + + If d4seekDouble(db, birthLong) = r4success Then + frm.ListBox1.Items.Add("Found " & result) + End If + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX59.vb b/examples/source/VB.NET/EX59.vb new file mode 100644 index 0000000..0b52e91 --- /dev/null +++ b/examples/source/VB.NET/EX59.vb @@ -0,0 +1,47 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX59.VB + + Dim cb, db As Integer + Dim rc As Short + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim nameTag As Integer + Dim i As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "PEOPLE") + nameTag = d4tag(db, "PPL_NAME") + Call d4tagSelect(db, nameTag) + rc = d4top(db) + rc = SeekSeries("mickey") + frm.ListBox1.Items.Add("return code" & Str(rc)) + rc = code4initUndo(cb) + End Sub + + Function SeekSeries(ByRef s As String) As Short + rc = d4seekNext(db, s) + + If rc = r4notag Or rc = r4entry Or rc = r4locked Then + SeekSeries = rc + Exit Function + End If + + If rc = r4after Or rc = r4eof Then rc = d4seek(db, s) + + SeekSeries = rc + End Function +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX6.vb b/examples/source/VB.NET/EX6.vb new file mode 100644 index 0000000..e3dc14d --- /dev/null +++ b/examples/source/VB.NET/EX6.vb @@ -0,0 +1,39 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX6.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + 'ex6 example code + Dim db, cb, field As Integer + Dim rc As Short + Dim badField As String + + cb = code4init() + + 'Use full path in stand-alone version + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + badField = "notAField" + field = d4field(db, badField) + + MsgBox("An error message just displayed", MsgBoxStyle.OKOnly) + + rc = code4errorCode(cb, 0) + rc = code4errFieldName(cb, 0) + + field = d4field(db, badField) + MsgBox("No error message displayed.", MsgBoxStyle.OKOnly) + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX60.vb b/examples/source/VB.NET/EX60.vb new file mode 100644 index 0000000..9c99552 --- /dev/null +++ b/examples/source/VB.NET/EX60.vb @@ -0,0 +1,44 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX60.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, nameField As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "NAMES") + 'Skip to the last record in the file whose NAME field contains "John" + + rc = code4optStart(cb) + nameField = d4field(db, "NAME") + + rc = d4bottom(db) + Do While d4bof(db) = 0 'Do while bof is false + If InStr(1, f4str(nameField), "White ") <> 0 Then Exit Do + rc = d4skip(db, -1) + Loop + + If d4bof(db) <> 0 Then + frm.ListBox1.Items.Add("White not located") + Else + frm.ListBox1.Items.Add("The last White is located in record # " & Str(d4recNo(db))) + End If + + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX61.vb b/examples/source/VB.NET/EX61.vb new file mode 100644 index 0000000..6ee156d --- /dev/null +++ b/examples/source/VB.NET/EX61.vb @@ -0,0 +1,40 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX61.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim ageTag, cb, db, defaultTag As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "data1") + ageTag = d4tag(db, "AGE_TAG") + defaultTag = d4tagDefault(db) + + Call d4tagSelect(db, ageTag) 'Select the AGE_TAG tag + rc = d4seekDouble(db, 32) 'seek using the AGE_TAG tag + If rc = r4success Then frm.ListBox1.Items.Add("Found age 32") + + Call d4tagSelect(db, defaultTag) 'Select the default tag which is the ADDR_TAG tag + rc = d4seek(db, "1232") 'seek using the ADDR_TAG tag + If rc = r4success Then frm.ListBox1.Items.Add("Found address starting with 1232") + + Call d4tagSelect(db, 0) 'Select record number ordering + rc = d4top(db) 'physical top of the data file + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX62.vb b/examples/source/VB.NET/EX62.vb new file mode 100644 index 0000000..12c4515 --- /dev/null +++ b/examples/source/VB.NET/EX62.vb @@ -0,0 +1,35 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX62.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, tag As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "DBF") + tag = d4tag(db, "DBF_NAME") 'a tag with a '.NOT.DELETED()' filter + + rc = d4top(db) 'position to the first record that is not deleted + Call d4delete(db) 'current record is no longer located in the tag + + rc = d4tagSync(db, tag) + rc = d4skip(db, 1) + + 'some other code + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX63.vb b/examples/source/VB.NET/EX63.vb new file mode 100644 index 0000000..d858692 --- /dev/null +++ b/examples/source/VB.NET/EX63.vb @@ -0,0 +1,39 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX63.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, defaultTag As Integer + Dim rc As Short + Dim count As Integer + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + defaultTag = d4tagDefault(db) + + Call d4tagSelect(db, defaultTag) + count = 0 + rc = d4top(db) 'top record in default tag + Do While d4eof(db) = 0 + count = count + 1 + rc = d4skip(db, 1) + Loop + frm.ListBox1.Items.Add(Str(count) & " records in the tag" & t4Alias(defaultTag)) + + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX64.vb b/examples/source/VB.NET/EX64.vb new file mode 100644 index 0000000..03b494c --- /dev/null +++ b/examples/source/VB.NET/EX64.vb @@ -0,0 +1,46 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX64.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim nameTag, cb, db, nameField As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + nameTag = d4tag(db, "INF_NAME") + nameField = d4field(db, "NAME") + + Call error4exitTest(cb) + rc = d4lockAll(db) + Call d4tagSelect(db, nameTag) + + rc = d4seek(db, "John") + Do While rc = r4success + If StrComp(f4str(nameField), "John ") = 0 Then + 'UPGRADE_ISSUE: Form method Form1.Print was not upgraded. Click for more: 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup2064"' + frm.ListBox1.Items.Add("John in record " & Str(d4recNo(db))) + Else + Exit Do + End If + rc = d4skip(db, 1) + Loop + + rc = d4unlock(db) + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX65.vb b/examples/source/VB.NET/EX65.vb new file mode 100644 index 0000000..fdb4fa0 --- /dev/null +++ b/examples/source/VB.NET/EX65.vb @@ -0,0 +1,37 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX65.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc, i As Short + Dim numRecs As Integer + + cb = code4init() + rc = code4accessMode(cb, OPEN4DENY_RW) + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO1") + + rc = d4go(db, 1) + 'Make all the records in the data file the same as the first record + numRecs = d4recCount(db) + For i = numRecs To 2 Step -1 + If d4write(db, numRecs) <> 0 Then Exit For + Next + + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX66.vb b/examples/source/VB.NET/EX66.vb new file mode 100644 index 0000000..d26a6ea --- /dev/null +++ b/examples/source/VB.NET/EX66.vb @@ -0,0 +1,38 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX66.VB + + Dim cb, db As Integer + Dim rc As Integer + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim toDelete As Integer + + cb = code4init() + rc = code4accessMode(cb, OPEN4DENY_RW) + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + toDelete = 2 + rc = zapLast(toDelete, frm) + rc = code4initUndo(cb) + End Sub + + Function zapLast(ByRef toDelete As Integer, ByRef fm As Form1) As Integer + fm.ListBox1.Items.Add(d4alias(db) & " has " & Str(d4recCount(db)) & " records") + rc = d4zap(db, d4recCount(db) - toDelete + 1, 1000000) + fm.ListBox1.Items.Add(d4alias(db) & " now has " & Str(d4recCount(db)) & " records") + zapLast = d4recCount(db) + End Function +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX67.vb b/examples/source/VB.NET/EX67.vb new file mode 100644 index 0000000..9887b56 --- /dev/null +++ b/examples/source/VB.NET/EX67.vb @@ -0,0 +1,59 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX67.VB + 'NOTE: 'today' is a reserved word under VB .NET + + Dim cb, db As Integer + Dim rc As Integer + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim birthField, cb, db, birthTag As Integer + Dim result, today_Renamed, tomorrow, yesterday As String + Dim myBirthDate As String + Dim rc As Short + + Call date4today(today_Renamed) + Call date4format(today_Renamed, result, "MMMMMMMM DD, CCYY") + frm.ListBox1.Items.Add("Today is " & date4cdow(today_Renamed) & " " & result) + + Call date4assign(tomorrow, date4long(today_Renamed) + 1) + Call date4format(tomorrow, result, "MMMMMMMM DD, CCYY") + frm.ListBox1.Items.Add("Tomorrow is " & date4cdow(tomorrow) & " " & result) + + Call date4assign(yesterday, date4long(tomorrow) - 2) + Call date4format(yesterday, result, "MMMMMMMM DD, CCYY") + frm.ListBox1.Items.Add("Yesterday was " & date4cdow(yesterday) & " " & result) + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + birthField = d4field(db, "BIRTH_DATE") + birthTag = d4tag(db, "INF_BRTH") + Call d4tagSelect(db, birthTag) + myBirthDate = "19690225" + If d4seek(db, myBirthDate) = r4success Then + frm.ListBox1.Items.Add("I'm in record " & Str(d4recNo(db))) + End If + + 'change all birthdate fields to my birth date + rc = d4top(db) + Do While d4eof(db) = 0 + Call f4assign(birthField, myBirthDate) + rc = d4skip(db, 1) + Loop + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX68.vb b/examples/source/VB.NET/EX68.vb new file mode 100644 index 0000000..2bd6d80 --- /dev/null +++ b/examples/source/VB.NET/EX68.vb @@ -0,0 +1,25 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX68.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim result, dateStr, dayBefore, resultBefore As String + Dim rc As Short + + dateStr = "19900101" + + Call date4assign(dayBefore, date4long(dateStr) - 1) + Call date4format(dateStr, result, "MMM DD, 'YY") + Call date4format(dayBefore, resultBefore, "MMM DD, 'YY") + frm.ListBox1.Items.Add(result & " is after " & resultBefore) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX69.vb b/examples/source/VB.NET/EX69.vb new file mode 100644 index 0000000..bb71652 --- /dev/null +++ b/examples/source/VB.NET/EX69.vb @@ -0,0 +1,21 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX69.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim birthDate As String + + birthDate = InputBox("Enter your birth date in CCYYMMDD format", "EX69", "19730305") + frm.ListBox1.Items.Add("You were born on a " & date4cdow(birthDate)) + 'displays "You were born on a Monday" if a Monday was entered + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX7.vb b/examples/source/VB.NET/EX7.vb new file mode 100644 index 0000000..803cbec --- /dev/null +++ b/examples/source/VB.NET/EX7.vb @@ -0,0 +1,36 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX7.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + 'ex7 example code + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + rc = d4go(db, d4recCount(db) + 1) + MsgBox("An error message was displayed", MsgBoxStyle.OKOnly) + + rc = code4errorCode(cb, 0) + rc = code4errGo(cb, 0) + + rc = d4go(db, d4recCount(db) + 1) + MsgBox("No error message was displayed", MsgBoxStyle.OKOnly) + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX70.vb b/examples/source/VB.NET/EX70.vb new file mode 100644 index 0000000..8761c4c --- /dev/null +++ b/examples/source/VB.NET/EX70.vb @@ -0,0 +1,22 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX70.VB + 'NOTE: 'today' is a reserved word under VB .NET + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim today_Renamed As String + + Call date4today(today_Renamed) + frm.ListBox1.Items.Add("The current month is " & date4cmonth(today_Renamed)) + 'displays "The current month is January" if the system clock says that it is + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX71.vb b/examples/source/VB.NET/EX71.vb new file mode 100644 index 0000000..3740ad3 --- /dev/null +++ b/examples/source/VB.NET/EX71.vb @@ -0,0 +1,22 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX71.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim tillEnd As Short + Dim dateStr As String + + Call date4today(dateStr) + tillEnd = 7 - date4dow(dateStr) + frm.ListBox1.Items.Add(Str(tillEnd) & " days left till the end of the week") + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX72.vb b/examples/source/VB.NET/EX72.vb new file mode 100644 index 0000000..a8725e1 --- /dev/null +++ b/examples/source/VB.NET/EX72.vb @@ -0,0 +1,27 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX72.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim dt, result As String + + dt = "19901002" + Call date4format(dt, result, "YY.MM.DD") 'result will contain "90.10.02" + frm.ListBox1.Items.Add(result) + Call date4format(dt, result, "CCYY.MM.DD") 'result will contain "1990.10.02" + frm.ListBox1.Items.Add(result) + Call date4format(dt, result, "MM/DD/YY") 'result will contain "10/02/90" + frm.ListBox1.Items.Add(result) + Call date4format(dt, result, "MMM DD/CCYY") 'result will contain "Oct 02/1990" + frm.ListBox1.Items.Add(result) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX73.vb b/examples/source/VB.NET/EX73.vb new file mode 100644 index 0000000..4da128b --- /dev/null +++ b/examples/source/VB.NET/EX73.vb @@ -0,0 +1,23 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX73.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim dayStr As String + + 'date4init puts a given date in CCYYMMDD format + Call date4init(dayStr, "Oct 07/90", "MMM DD/YY") + frm.ListBox1.Items.Add("Oct 07/90 becomes " & dayStr) + Call date4init(dayStr, "08/07/1989", "MM/DD/CCYY") + frm.ListBox1.Items.Add("08/07/1989 becomes " & dayStr) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX74.vb b/examples/source/VB.NET/EX74.vb new file mode 100644 index 0000000..d767bcd --- /dev/null +++ b/examples/source/VB.NET/EX74.vb @@ -0,0 +1,27 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX74.VB + 'NOTE: 'today' is a reserved word under VB .NET + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim yesterday As Integer + Dim tomorrow, today_Renamed, result As String + + Call date4today(today_Renamed) + yesterday = date4long(today_Renamed) - 1 + Call date4assign(tomorrow, yesterday + 2) + Call date4format(today_Renamed, result, "MMM DD, CCYY") + frm.ListBox1.Items.Add("Today is " & result) + frm.ListBox1.Items.Add("The Julian date for yesterday is " & Str(yesterday)) + frm.ListBox1.Items.Add("The Julian date for tomorrow is " & Str(date4long(tomorrow))) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX75.vb b/examples/source/VB.NET/EX75.vb new file mode 100644 index 0000000..dc01e9e --- /dev/null +++ b/examples/source/VB.NET/EX75.vb @@ -0,0 +1,41 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX75.VB + 'NOTE: 'today' is a reserved word under VB .NET + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim daysInMonth() As Short + Dim endOfMonth As Short + Dim today_Renamed As String + + ReDim daysInMonth(12) + daysInMonth(0) = 31 + daysInMonth(1) = 28 + daysInMonth(2) = 31 + daysInMonth(3) = 30 + daysInMonth(4) = 31 + daysInMonth(5) = 30 + daysInMonth(6) = 31 + daysInMonth(7) = 31 + daysInMonth(8) = 30 + daysInMonth(9) = 31 + daysInMonth(10) = 30 + daysInMonth(11) = 31 + + Call date4today(today_Renamed) + endOfMonth = daysInMonth(date4month(today_Renamed)) + If date4month(today_Renamed) = 2 And date4isLeap(today_Renamed) = 1 Then + endOfMonth = endOfMonth + 1 + End If + frm.ListBox1.Items.Add("There are " & Str(endOfMonth - date4day(today_Renamed)) & " days till the end of the month") + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX76.vb b/examples/source/VB.NET/EX76.vb new file mode 100644 index 0000000..79ac1cc --- /dev/null +++ b/examples/source/VB.NET/EX76.vb @@ -0,0 +1,27 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX76.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim d As String + Dim daysToWeekEnd As Short + + Call date4today(d) + frm.ListBox1.Items.Add("Today is " & date4cdow(d)) + daysToWeekEnd = 7 - date4dow(d) + If daysToWeekEnd = 0 Or daysToWeekEnd = 6 Then + frm.ListBox1.Items.Add("Better enjoy it!") + Else + frm.ListBox1.Items.Add("Only " & Str(daysToWeekEnd) & " days to go till the weekend") + End If + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX77.vb b/examples/source/VB.NET/EX77.vb new file mode 100644 index 0000000..e7f7f34 --- /dev/null +++ b/examples/source/VB.NET/EX77.vb @@ -0,0 +1,42 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX77.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, bDate As Integer + Dim date1, date2 As String + Dim year1, year2 As Short + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "DATA1") + bDate = d4field(db, "BIRTH_DATE") + rc = d4top(db) + date1 = Mid(f4str(bDate), 1) 'make a copy of the field's contents + rc = d4skip(db, 1) + date2 = Mid(f4str(bDate), 1) + year1 = date4year(date1) + year2 = date4year(date2) + If year1 <> year2 Then + frm.ListBox1.Items.Add("The people in the 1st and 2nd records were born in different years " & Str(year1) & ", " & Str(year2)) + Else + frm.ListBox1.Items.Add("The people in the 1st and 2nd records were born in the same year" & Str(year1)) + End If + + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX78.vb b/examples/source/VB.NET/EX78.vb new file mode 100644 index 0000000..b230cf4 --- /dev/null +++ b/examples/source/VB.NET/EX78.vb @@ -0,0 +1,35 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX78.VB + + Dim cb As Integer + Dim rc As Short + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Function display(ByRef p As String, ByRef fm As Form1) As Short + If p = "" Then + display = error4describe(cb, e4parm, 0, "Null display string", "", "") + Exit Function + End If + fm.ListBox1.Items.Add(p) + display = r4success + End Function + + Sub ExCode(ByRef frm As Form1) + Dim p As String + + p = "some string" + cb = code4init() + rc = display(p, frm) + rc = display("", frm) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX79.vb b/examples/source/VB.NET/EX79.vb new file mode 100644 index 0000000..329a2d0 --- /dev/null +++ b/examples/source/VB.NET/EX79.vb @@ -0,0 +1,28 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX79.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "FILE") + Call error4exitTest(cb) + '... other code.... + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX8.vb b/examples/source/VB.NET/EX8.vb new file mode 100644 index 0000000..f9707ce --- /dev/null +++ b/examples/source/VB.NET/EX8.vb @@ -0,0 +1,52 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX8.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + 'ex8 example code + + Dim cb, db As Integer + Dim fieldInfo() As FIELD4INFO + Dim rc As Short + + cb = code4init() + ReDim fieldInfo(2) + fieldInfo(0).fName = "NAME_FLD" + fieldInfo(0).ftype = r4str + fieldInfo(0).flength = 20 + fieldInfo(0).fdecimals = 0 + + fieldInfo(1).fName = "AGE_FLD" + fieldInfo(1).ftype = r4num + fieldInfo(1).flength = 3 + fieldInfo(1).fdecimals = 0 + + rc = code4errOpen(cb, 0) + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + 'no error message is displayed if NO_FILE does not exist + db = d4open(cb, "NO_FILE") + + If code4errorCode(cb, r4check) = r4noOpen Then + 'the data file does not exist + rc = code4safety(cb, 0) + db = d4createData(cb, fPath & "NO_FILE", fieldInfo) + If db = 0 Then + MsgBox("Could not create NO_FILE", MsgBoxStyle.OKOnly) + End If + End If + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX80.vb b/examples/source/VB.NET/EX80.vb new file mode 100644 index 0000000..9a24547 --- /dev/null +++ b/examples/source/VB.NET/EX80.vb @@ -0,0 +1,35 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX80.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, expr As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "DATA1") + rc = d4go(db, 1) + 'FNAME and LNAME are character field names of data file DATA1.DBF + + expr = expr4parse(db, "F_NAME+' '+L_NAME") + If expr <> 0 Then + frm.ListBox1.Items.Add("F_NAME and L_NAME for record one: " & expr4str(expr)) + End If + Call expr4free(expr) + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX81.vb b/examples/source/VB.NET/EX81.vb new file mode 100644 index 0000000..75bc96f --- /dev/null +++ b/examples/source/VB.NET/EX81.vb @@ -0,0 +1,40 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX81.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, expr As Integer + Dim rc As Short + Dim count As Integer + Dim VoteAge As Double + + VoteAge = 18 + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + expr = expr4parse(db, "AGE") + count = 0 + rc = d4top(db) + Do While rc <> r4eof + If expr4double(expr) >= VoteAge Then + count = count + 1 + End If + rc = d4skip(db, 1) + Loop + frm.ListBox1.Items.Add("Possible voters: " & Str(count)) + Call expr4free(expr) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX82.vb b/examples/source/VB.NET/EX82.vb new file mode 100644 index 0000000..0b79009 --- /dev/null +++ b/examples/source/VB.NET/EX82.vb @@ -0,0 +1,40 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX82.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, fullName As Integer + Dim rc As Short + Dim nameStr, nextName As String + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "DATA1") + + rc = d4top(db) + fullName = expr4parse(db, "TRIM( L_NAME )+', '+F_NAME") + nameStr = expr4str(fullName) + + rc = d4skip(db, 1) + nextName = expr4str(fullName) + 'For illustration purposes only: Avoid using the expression module + 'when the field functions will suffice + frm.ListBox1.Items.Add(nameStr & " is the first person in the data file") + frm.ListBox1.Items.Add(nextName & " is the second person in the data file ") + + Call expr4free(fullName) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX83.vb b/examples/source/VB.NET/EX83.vb new file mode 100644 index 0000000..d08880c --- /dev/null +++ b/examples/source/VB.NET/EX83.vb @@ -0,0 +1,34 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX83.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim info, cb, db, expr As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "DATA1") + info = d4open(cb, fPath & "INFO") + + expr = expr4parse(db, "F_NAME+' '+DTOS( INFO->BIRTH_DATE)") + rc = d4top(db) + rc = d4top(info) + frm.ListBox1.Items.Add("First name from DATA1 and birth date from INFO: " & expr4str(expr)) + + rc = code4close(cb) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX84.vb b/examples/source/VB.NET/EX84.vb new file mode 100644 index 0000000..979faef --- /dev/null +++ b/examples/source/VB.NET/EX84.vb @@ -0,0 +1,64 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX84.VB + + Dim db, cb, expr As Integer + Dim rc As Short + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + rc = d4top(db) + + expr = expr4parse(db, "NAME") + Call showExpr(frm) + Call expr4free(expr) + + expr = expr4parse(db, "AGE") + Call showExpr(frm) + Call expr4free(expr) + + expr = expr4parse(db, "BIRTH_DATE") + Call showExpr(frm) + Call expr4free(expr) + + rc = code4close(cb) + rc = code4initUndo(cb) + End Sub + + Sub showExpr(ByRef fm As Form1) + Dim typeExpr As String + typeExpr = expr4type(expr) + + Select Case typeExpr + Case r4date + fm.ListBox1.Items.Add("type is r4date") + Case r4dateDoub + fm.ListBox1.Items.Add("type is r4dateDoub") + Case r4log + fm.ListBox1.Items.Add("type is r4log") + Case r4num + fm.ListBox1.Items.Add("type is r4num") + Case r4numDoub + fm.ListBox1.Items.Add("type is r4numDoub") + Case r4str + fm.ListBox1.Items.Add("type is r4str") + Case r4memo + fm.ListBox1.Items.Add("type is r4memo") + End Select + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX85.vb b/examples/source/VB.NET/EX85.vb new file mode 100644 index 0000000..4b4a6a0 --- /dev/null +++ b/examples/source/VB.NET/EX85.vb @@ -0,0 +1,58 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX85.VB + + 'NOTE: 'today' is a reserved word under VB .NET + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, birthDate As Integer + Dim rc As Short + Dim today_Renamed, result As String + Dim ageInDays As Integer + + cb = code4init() + rc = code4accessMode(cb, OPEN4DENY_RW) + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + birthDate = d4field(db, "BIRTH_DATE") + error4exitTest((cb)) + + rc = d4top(db) + If rc <> r4success Then + MsgBox("No records to display.") + Else + Call date4today(today_Renamed) + ageInDays = date4long(today_Renamed) - date4long(f4str(birthDate)) + frm.ListBox1.Items.Add("Age in days: " & Str(ageInDays)) + + 'display all current birth dates in formatted form + rc = d4top(db) + Do While rc = r4success + Call date4format(f4str(birthDate), result, "MMM DD, CCYY") + frm.ListBox1.Items.Add(result) + rc = d4skip(db, 1) + Loop + + 'assign today's date to all birth dates in the data file + rc = d4top(db) + Do While rc = r4success + Call f4assign(birthDate, today_Renamed) + rc = d4skip(db, 1) + Loop + End If + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX86.vb b/examples/source/VB.NET/EX86.vb new file mode 100644 index 0000000..51c5af8 --- /dev/null +++ b/examples/source/VB.NET/EX86.vb @@ -0,0 +1,41 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX86.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, info As Integer + Dim infoName, dataLname As Integer + Dim rc As Short + + cb = code4init() + rc = code4accessMode(cb, OPEN4DENY_RW) + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + info = d4open(cb, fPath & "INFO") + db = d4open(cb, fPath & "DATA1") + Call error4exitTest(cb) + + infoName = d4field(info, "NAME") + dataLname = d4field(db, "L_NAME") + rc = d4top(info) + rc = d4top(db) + Do While d4eof(info) = 0 And d4eof(db) = 0 + Call f4assignField(infoName, dataLname) 'copy "L_NAME" into "NAME" + rc = d4skip(info, 1) + rc = d4skip(db, 1) + Loop + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX87.vb b/examples/source/VB.NET/EX87.vb new file mode 100644 index 0000000..0766498 --- /dev/null +++ b/examples/source/VB.NET/EX87.vb @@ -0,0 +1,40 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX87.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub displayFieldStats(ByRef f As Integer, ByRef fm As Form1 ) + Dim dFile As Integer + + dFile = f4data(f) + fm.ListBox1.Items.Add("-----------------------------------------------------") + fm.ListBox1.Items.Add("DataFile: " & d4alias(dFile) & " Field : " & f4name(f)) + fm.ListBox1.Items.Add("Length: " & Str(f4len(f)) & " Type : " & Chr(f4type(f))) + fm.ListBox1.Items.Add("Decimals: " & Str(f4decimals(f))) + fm.ListBox1.Items.Add("-----------------------------------------------------") + End Sub + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, field As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + field = d4field(db, "NAME") + + Call displayFieldStats(field, frm) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX88.vb b/examples/source/VB.NET/EX88.vb new file mode 100644 index 0000000..f70275d --- /dev/null +++ b/examples/source/VB.NET/EX88.vb @@ -0,0 +1,39 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX88.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Function createBufCopy(ByRef f As Integer) As String + Dim buf As String + + buf = Space(f4len(f) + 1) + buf = Mid(f4str(f), 1) + createBufCopy = buf + End Function + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, field As Integer + Dim buffer As String + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + field = d4field(db, "NAME") + rc = d4top(db) + buffer = createBufCopy(field) + frm.ListBox1.Items.Add("the copy of the buffer is " & buffer) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX89.vb b/examples/source/VB.NET/EX89.vb new file mode 100644 index 0000000..1e9858f --- /dev/null +++ b/examples/source/VB.NET/EX89.vb @@ -0,0 +1,42 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX89.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, comments As Integer + Dim rc As Short + Dim count As Integer + + cb = code4init() + db = d4open(cb, fPath & "DATA1") + comments = d4field(db, "COMMENT") + Call error4exitTest(cb) + + count = 0 + rc = d4top(db) + rc = f4memoAssign(comments, "There is one memo in this data file") + rc = d4flush(db) + Do While d4eof(db) = 0 + If f4memoLen(comments) > 0 Then + count = count + 1 + End If + rc = d4skip(db, 1) + rc = f4memoAssign(comments, "There is a second memo in this data file") + rc = d4flush(db) + + Loop + frm.ListBox1.Items.Add("There were " & Str(count) & " memo entries out of ") + frm.ListBox1.Items.Add(Str(d4recCount(db)) & " records") + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX9.vb b/examples/source/VB.NET/EX9.vb new file mode 100644 index 0000000..44feadb --- /dev/null +++ b/examples/source/VB.NET/EX9.vb @@ -0,0 +1,35 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX9.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to data files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + 'ex9 example code + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + + db = d4open(cb, fPath & "INFO") + + rc = code4readLock(cb, 1) + rc = code4lockAttempts(cb, 3) + + If d4top(db) = r4locked Then + MsgBox("Top rcord locked by another user") + MsgBox("Lock attempted" & Str(code4lockAttempts(cb, r4check)), MsgBoxStyle.OKOnly) + Else + MsgBox("Now the record is locked") + End If + + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX90.vb b/examples/source/VB.NET/EX90.vb new file mode 100644 index 0000000..8f149eb --- /dev/null +++ b/examples/source/VB.NET/EX90.vb @@ -0,0 +1,40 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX90.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub displayTheRecord(ByRef d As Integer, ByRef fm As Form1) + Dim numFields, curField As Short + Dim genericField As Integer + + numFields = d4numFields(d) + For curField = 1 To numFields + genericField = d4fieldJ(d, curField) + fm.ListBox1.Items.Add(f4memoStr(genericField)) + Next + fm.ListBox1.Items.Add("all records have been displayed") + End Sub + + Sub ExCode(ByRef frm As Form1) + Dim cb, db As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + rc = d4top(db) + displayTheRecord(db, frm) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX91.vb b/examples/source/VB.NET/EX91.vb new file mode 100644 index 0000000..4d396f2 --- /dev/null +++ b/examples/source/VB.NET/EX91.vb @@ -0,0 +1,28 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX91.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, field As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + field = d4fieldJ(db, 1) + frm.ListBox1.Items.Add("The first field is call " & f4name(field)) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX92.vb b/examples/source/VB.NET/EX92.vb new file mode 100644 index 0000000..2566d49 --- /dev/null +++ b/examples/source/VB.NET/EX92.vb @@ -0,0 +1,31 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX92.VB + + Public lf As String 'Line Feed + Public fpath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim field1, cb, db, field2 As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fpath = VB6.GetPath & "\" + + db = d4open(cb, fpath & "INFO") + field1 = d4fieldJ(db, 1) + field2 = d4fieldJ(db, 2) + rc = d4top(db) + frm.ListBox1.Items.Add("Field 1: " & f4str(field1)) + frm.ListBox1.Items.Add("Field 2: " & f4str(field2)) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX93.vb b/examples/source/VB.NET/EX93.vb new file mode 100644 index 0000000..244a7b9 --- /dev/null +++ b/examples/source/VB.NET/EX93.vb @@ -0,0 +1,50 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX93.VB + + Dim rc As Short + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Function addLotsOfRecords(ByRef d As Integer) As Short + Dim index As Integer + Dim i As Short + + index = d4index(d, "INFO2") 'get the secondary index file + If index <> 0 Then + rc = i4close(index) + End If + + rc = d4top(d) + For i = 1 To 20 + rc = d4appendStart(d, 0) + rc = d4append(d) 'make 20 copies of the top record + Next + + 'open the index file and update it + index = i4open(d, "INFO2") + addLotsOfRecords = i4reindex(index) + End Function + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, index As Integer + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + index = i4open(db, "INFO2") + + rc = addLotsOfRecords(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX94.vb b/examples/source/VB.NET/EX94.vb new file mode 100644 index 0000000..4994e9b --- /dev/null +++ b/examples/source/VB.NET/EX94.vb @@ -0,0 +1,53 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX94.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, index As Integer + Dim fieldInfo() As FIELD4INFO + Dim tagInfo() As TAG4INFO + Dim rc As Short + + ReDim fieldInfo(2) + fieldInfo(0).fName = "FIELD_NAME" + fieldInfo(0).ftype = r4str + fieldInfo(0).flength = 10 + fieldInfo(0).fdecimals = 0 + + fieldInfo(1).fName = "VALUE" + fieldInfo(1).ftype = r4num + fieldInfo(1).flength = 7 + fieldInfo(1).fdecimals = 2 + + ReDim tagInfo(2) + tagInfo(0).name = "T_NAME" + tagInfo(0).expression = "FIELD_NAME" + tagInfo(0).filter_Renamed = "FIELD_NAME > 'A'" + + tagInfo(1).name = "NAME_TWO" + tagInfo(1).expression = "VALUE" + tagInfo(1).unique = e4unique + tagInfo(1).descending = r4descending + + cb = code4init() + rc = code4safety(cb, 0) + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4createData(cb, fPath & "DB_NAME", fieldInfo) + index = i4create(db, fPath & "NAME", tagInfo) + + rc = d4close(db) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX95.vb b/examples/source/VB.NET/EX95.vb new file mode 100644 index 0000000..8f338d8 --- /dev/null +++ b/examples/source/VB.NET/EX95.vb @@ -0,0 +1,35 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX95.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, index As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "STUDENT") + index = i4open(db, "STUDENT2") 'Open a seconday index file + + rc = code4lockAttempts(cb, WAIT4EVER) 'Wait until the lock succeeds + rc = d4lockAll(db) + If i4reindex(index) = r4success Then + frm.ListBox1.Items.Add("Reindexed successfully") + End If + + rc = code4close(cb) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX96.vb b/examples/source/VB.NET/EX96.vb new file mode 100644 index 0000000..dafccfb --- /dev/null +++ b/examples/source/VB.NET/EX96.vb @@ -0,0 +1,76 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX96.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + 'CODE4 pointer + Dim cb As Integer + 'DATA4 pointers + Dim master, enroll, student As Integer + 'TAG4 pointers + Dim enrollTag, studentTag As Integer + 'RELATE4 pointers + Dim relation1, MasterRelation, relation2 As Integer + 'FIELD4 pointers + Dim classTitle, classCode, enrollStudentId As Integer + Dim studentName As Integer + + Dim rc, count As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + enroll = d4open(cb, fPath & "ENROLL") + master = d4open(cb, fPath & "CLASSES") + student = d4open(cb, fPath & "STUDENT") + + enrollTag = d4tag(enroll, "ENR_CODE") + studentTag = d4tag(student, "STU_ID") + + MasterRelation = relate4init(master) + relation1 = relate4createSlave(MasterRelation, enroll, "CODE", enrollTag) + relation2 = relate4createSlave(relation1, student, "STU_ID_TAG", studentTag) + + rc = relate4type(relation1, relate4scan) + rc = relate4sortSet(MasterRelation, "STUDENT->L_NAME,8,0+ENROLL->CODE") + + classCode = d4field(master, "CODE") + classTitle = d4field(master, "TITLE") + enrollStudentId = d4field(enroll, "STU_ID_TAG") + studentName = d4field(student, "L_NAME") + + error4exitTest((cb)) + + rc = relate4top(MasterRelation) + Do While rc = r4success 'onle one f4str per statement + frm.ListBox1.Items.Add(f4str(studentName)) + frm.ListBox1.Items.Add(f4str(enrollStudentId)) + frm.ListBox1.Items.Add(f4str(classCode)) + frm.ListBox1.Items.Add(f4str(classTitle)) + frm.ListBox1.Items.Add("") + rc = relate4skip(MasterRelation, 1) + count = count + 1 + If count Mod 4 = 0 Then + MsgBox("Click for more...") + frm.ListBox1.Items.Clear() + End If + Loop + + frm.ListBox1.Items.Add("the number of records is ") + frm.ListBox1.Items.Add(Str(d4recCount(master))) + + rc = relate4free(MasterRelation, 1) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX97.vb b/examples/source/VB.NET/EX97.vb new file mode 100644 index 0000000..6a8e91b --- /dev/null +++ b/examples/source/VB.NET/EX97.vb @@ -0,0 +1,77 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX97.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + 'CODE4 pointer + Dim cb As Integer + 'DATA4 pointers + Dim office, employee, building As Integer + 'TAG4 pointers + Dim officeNo, buildNo As Integer + 'RELATE4 pointers + Dim toOffice, master, toBuilding As Integer + + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + employee = d4open(cb, fPath & "EMPLOYEE") + office = d4open(cb, fPath & "OFFICE") + building = d4open(cb, fPath & "BUILDING") + + 'set up the tags + officeNo = d4tag(office, "OFF_NUM") + buildNo = d4tag(building, "BUILD_NO") + + 'Create the relations + master = relate4init(employee) + toOffice = relate4createSlave(master, office, "EMPLOYEE->OFFICE_NO", officeNo) + toBuilding = relate4createSlave(toOffice, building, "OFFICE->BUILD_NO", buildNo) + 'Go to employee, at record 2 + rc = d4go(employee, 2) + + 'Lock the data files and their index files. + rc = relate4lockAdd(master) + rc = code4lock(cb) + + 'This call causes the corresponding records in data files "OFFICE" and + '"BUILDING" to be looked up. + rc = relate4doAll(master) + frm.ListBox1.Items.Add(Str(d4recNo(employee))) + frm.ListBox1.Items.Add(" employee rec no") + frm.ListBox1.Items.Add(Str(d4recNo(office))) + frm.ListBox1.Items.Add(" office rec no") + frm.ListBox1.Items.Add(Str(d4recNo(building))) + frm.ListBox1.Items.Add(" building rec no") + + 'Go to office, at record 3 + rc = d4go(office, 3) + + 'This call causes the building record to be looked up from the office + rc = relate4doOne(toBuilding) + frm.ListBox1.Items.Add(Str(d4recNo(employee))) + frm.ListBox1.Items.Add(" employee rec no") + frm.ListBox1.Items.Add(Str(d4recNo(office))) + frm.ListBox1.Items.Add(" office rec no") + frm.ListBox1.Items.Add(Str(d4recNo(building))) + frm.ListBox1.Items.Add(" building rec no") + + ' .. and so on + + rc = relate4free(master, 1) + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX98.vb b/examples/source/VB.NET/EX98.vb new file mode 100644 index 0000000..3c9a46d --- /dev/null +++ b/examples/source/VB.NET/EX98.vb @@ -0,0 +1,68 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX98.VB + + Dim rc As Short + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + 'CODE4 pointer + Dim cb As Integer + 'DATA4 pointers + Dim enroll, master As Integer + 'TAG4 pointers + Dim enrollTag, codeTag As Integer + 'RELATE4 pointers + Dim MasterRelation, relation1 As Integer + 'FIELD4 pointers + Dim classTitle, classCode, enrollStudentId As Integer + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + enroll = d4open(cb, fPath & "ENROLL") + master = d4open(cb, fPath & "CLASSES") + + enrollTag = d4tag(enroll, "ENR_CODE") + codeTag = d4tag(master, "CODE_TAG") + + MasterRelation = relate4init(master) + relation1 = relate4createSlave(MasterRelation, enroll, "CODE", enrollTag) + + rc = relate4type(relation1, relate4scan) + + classCode = d4field(master, "CODE") + classTitle = d4field(master, "TITLE") + enrollStudentId = d4field(enroll, "STU_ID_TAG") + + Call error4exitTest(cb) + + rc = seekMaster(master, relation1, codeTag, "MATH521") + frm.ListBox1.Items.Add(f4str(enrollStudentId)) + frm.ListBox1.Items.Add(f4str(classCode)) + frm.ListBox1.Items.Add(f4str(classTitle)) + + rc = relate4free(MasterRelation, 1) + rc = code4initUndo(cb) + End Sub + + Function seekMaster(ByRef master As Integer, ByRef r As Integer, ByRef masterTag As Integer, ByRef seekKey As String) As Short + Call d4tagSelect(master, masterTag) + rc = d4seek(master, seekKey) 'seek for requested value + If rc = r4success Then + rc = relate4doOne(r) 'position the slave data file to the + 'appropriate record, according to its master + End If + seekMaster = rc + End Function +End Module \ No newline at end of file diff --git a/examples/source/VB.NET/EX99.vb b/examples/source/VB.NET/EX99.vb new file mode 100644 index 0000000..2c5eefb --- /dev/null +++ b/examples/source/VB.NET/EX99.vb @@ -0,0 +1,41 @@ +Option Strict Off +Option Explicit On +Module EXAMPLE + 'EX99.VB + + Public lf As String 'Line Feed + Public fPath As String 'Full path name to db files + + Public Const MB_OK As Short = 0 + Public Const MB_YESNO As Short = 4 + Public Const MB_ICONQUESTION As Short = 32 + Public Const IDYES As Short = 6 + + Sub ExCode(ByRef frm As Form1) + Dim db, cb, TopMaster As Integer + Dim rc As Short + + cb = code4init() + + 'Specify full path if stand-alone + If u4switch() And &H80S Then fPath = VB6.GetPath & "\" + + db = d4open(cb, fPath & "INFO") + + TopMaster = relate4init(db) + + ' ... other code ... + + 'This relation tree is no longer needed. Create a new one + rc = relate4free(TopMaster, 0) + + TopMaster = relate4init(db) + + ' ... other code ... + ' Automatically close all files in the relation + rc = relate4free(TopMaster, 1) + + rc = code4close(cb) 'close any remaining files + rc = code4initUndo(cb) + End Sub +End Module \ No newline at end of file diff --git a/interfaces/CSharp/Codebase.cs b/interfaces/CSharp/Codebase.cs new file mode 100644 index 0000000..8a51768 --- /dev/null +++ b/interfaces/CSharp/Codebase.cs @@ -0,0 +1,3183 @@ +/* codebase.cs (c)Copyright Sequiter Software Inc., 1988-2002. All rights reserved. */ + +// AS Mar 23/06 - resolve WinCE vs. regular code discrepencies by handling marshalling via defines +/* +#define MARSHAL4I4 [MarshalAs(UnmanagedType.I4)] +#define MARSHAL4I2 [MarshalAs(UnmanagedType.I2)] +#define MARSHAL4U1 [MarshalAs(UnmanagedType.U1)] +#define MARSHAL4U2 [MarshalAs(UnmanagedType.U2)] +#define MARSHAL4U4 [MarshalAs(UnmanagedType.U4)] +#define MARSHAL4R8 [MarshalAs(UnmanagedType.R8)] +#define MARSHAL4LPSTR [MarshalAs(UnmanagedType.LPStr)] +#define MARSHAL4LPWSTR [MarshalAs(UnmanagedType.LPWStr)] +#define MARSHAL4LPARRAY [MarshalAs(UnmanagedType.LPArray)] +#define MARSHAL4LPSTRUCT [MarshalAs(UnmanagedType.LPStruct)] +*/ + +namespace CodeBase +{ + #pragma warning disable 1591 + + using System; + using System.Runtime.InteropServices; + using System.Text ; /* LY 2002/09/24 : for StringBuilder */ + + public class Error4 + { + protected IntPtr code4 ; // This is the most used member and is need in error handling. + + public const int cp0 = 0 ; /* this is the same as cp437 (i.e. US oem sequence) */ + public const int cp437 = 1 ; /* this is the same as cp0 (i.e. US oem sequence) */ + public const int cp1252 = 3 ; + + public const short collate4machine = 1 ; + public const short collate4general = 1001 ; + public const short collate4special = 1002 ; + + public const int r4success = 0 ; + public const int r4found = 1 ; /* Primary Key Match */ + public const int r4after = 2 ; + public const int r4eof = 3 ; + public const int r4bof = 4 ; + public const int r4entry = 5 ; /* No index file entry or no record (go) */ + public const int r4descending = 10 ; + public const int r4unique = 20 ; /* Key is not unique, do not write/append */ + public const int r4uniqueContinue = 25 ; /* Key is not unique, write/append anyway */ + public const int r4locked = 50 ; + public const int r4noCreate = 60 ; /* Could not create file */ + public const int r4noOpen = 70 ; /* Could not open file */ + public const int r4noTag = 80 ; /* DataIndex::seek, with no default tag */ + public const int r4terminate = 90 ; /* no relation match with terminate set */ + public const int r4inactive = 110 ; /* transactional state */ + public const int r4active = 120 ; /* transactional state */ + public const int r4rollback = 130 ; /* transactional state */ + public const int r4authorize = 140 ; /* lacks authorization rights to perform action */ + public const int r4connected = 150 ; + public const int r4logOn = 160 ; + public const int r4logOpen = 170 ; + public const int r4logOff = 180 ; + public const ushort r4null = 190 ; + public const int r4autoIncrement = 195 ; + public const int r4autoTimestamp = 200 ; + public const int r4done = 210 ; + + public const int e4lock = -50 ; + public const int e4fieldName = -210 ; + public const int e4unique = -340 ; + public const int e4info = -910 ; + public const int e4parm = -930 ; + public const int e4struct = -970 ; + + public const int INVALID4HANDLE = -1 ; + + public const int lock4read = 0 ; + public const int lock4write = 1 ; + public const int lock4any = 2 ; + + public const int LOG4ALWAYS = 2 ; + public const int LOG4ON = 1 ; + public const int LOG4TRANS = 0 ; + + public const int OPEN4DENY_NONE = 0 ; + public const int OPEN4DENY_WRITE = 2 ; + public const int OPEN4DENY_RW = 1 ; + + public const int OPT4EXCLUSIVE = -1 ; + public const int OPT4OFF = 0 ; + public const int OPT4ALL = 1 ; + + public const int relate4blank = 105 ; + public const int relate4skipRec = 106 ; + public const int relate4terminate = 107 ; + public const int relate4exact = 108 ; + public const int relate4scan = 109 ; + public const int relate4approx = 110 ; + + public const char r4bin = 'B' ; + public const char r4double = 'B' ; + public const char r4str = 'C' ; + public const char r4dateDoub = 'd' ; + public const char r4date = 'D' ; + public const char r4float = 'F' ; + public const char r4gen = 'G' ; + public const char r4int = 'I' ; + public const char r4log = 'L' ; + public const char r4memo = 'M' ; + public const char r4numDoub = 'n' ; + public const char r4num = 'N' ; + public const char r4dateTime = 'T' ; + public const char r4dateTimeMilli = '7' ; + public const char r5wstr = 'W' ; + public const char r4unicode = r5wstr ; + public const char r4memoBin = 'X' ; + public const char r4currency = 'Y' ; + public const char r4charBin = 'Z' ; + + public const int sort4machine = 0 ; + public const int sort4general = 1 ; + + public const short LOCK4OFF = 0 ; + public const short LOCK4ALL = 1 ; + public const short LOCK4DATA = 2 ; + + public const short WAIT4EVER = -1 ; + + /* using 2nd error numbers under !S4OFF_STRING */ + public const int E60523 = 60119 ; + public const int E60525 = 60121 ; + public const int E60601 = 60025 ; + public const int E60603 = 60027 ; + public const int E60281 = 60023 ; + public const int E60282 = 60024 ; + public const int E60201 = 60021 ; + public const int E60982 = 60225 ; + public const int E60983 = 60226 ; + public const int E60984 = 60227 ; + public const int E60991 = 60221 ; + public const int E61203 = 60107 ; + public const int E61204 = 60108 ; + + /* functions used by classes in addition to Code4 */ + [DllImport("c4dll.dll")] + protected static extern int c4getLockEnforce(IntPtr code4 ) ; + [DllImport("c4dll.dll")] + protected static extern short code4accessMode(IntPtr code4, [MarshalAs(UnmanagedType.I4)] int accessMode); + + /* functions used by classes in addition to Data4 */ + [DllImport("c4dll.dll")] + protected static extern short d4changed( IntPtr data4, [MarshalAs(UnmanagedType.I2)] short flag ) ; + [DllImport("c4dll.dll")] + protected static extern int d4recNoLow( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + protected static extern short d4numFields( IntPtr data4 ) ; + + /* functions used by classes Field4, Field4info, Field4memo */ + [DllImport("c4dll.dll")] + protected static extern IntPtr d4fieldJ(IntPtr data4, [MarshalAs(UnmanagedType.I2)] short number); + [DllImport("c4dll.dll")] + protected static extern IntPtr d4field(IntPtr data4, [MarshalAs(UnmanagedType.LPStr)] string name); + [DllImport("c4dll.dll")] + protected static extern int f4decimals( IntPtr field4 ) ; + [DllImport("c4dll.dll")] + protected static extern uint f4len( IntPtr field4 ) ; + [DllImport("c4dll.dll")] /* LY 2002/09/24 : replaced f4name() (see Field4::name())*/ + protected static extern void f4nameW( IntPtr field4, System.Text.StringBuilder buff ) ; + [DllImport("c4dll.dll")] + protected static extern int f4null( IntPtr field4 ) ; + [DllImport("c4dll.dll")] + protected static extern char f4type( IntPtr field4 ) ; + + [DllImport("c4dll.dll")] + protected static extern void u4freeDefault( int ptr ) ; + + [DllImport("c4dll.dll")] + protected static extern int error4set( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int errorCode ) ; + [DllImport("c4dll.dll")] + protected static extern int error4number2( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int errorCode ) ; + [DllImport("c4dll.dll")] + protected static extern short code4errorCode( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short errorCode ) ; + [DllImport("c4dll.dll")] + private static extern short error4VB( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short errorCode ,[MarshalAs(UnmanagedType.I4)] int extraInfo ) ; + [DllImport("c4dll.dll")] + private static extern int error4describeDefault( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int er, [MarshalAs(UnmanagedType.I4)] int er2, + [MarshalAs(UnmanagedType.LPStr)] string p1, [MarshalAs(UnmanagedType.LPStr)] string p2, [MarshalAs(UnmanagedType.LPStr)] string p3) ; + [DllImport("c4dll.dll")] + private static extern int error4file( IntPtr code4, [MarshalAs(UnmanagedType.LPStr)] string fileName ,[MarshalAs(UnmanagedType.I4)] int overwrite ) ; + [DllImport("c4dll.dll")] + private static extern void error4exitTest( IntPtr code4 ) ; + [DllImport("c4dll.dll")] /* LY 2002/09/24 : changed from error4text() */ + private static extern void error4textW( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int errCode, StringBuilder buff ) ; + + public int throwError( short errorCode, int extraInfo ) + { + return error4VB( code4, errorCode, extraInfo) ; + } + public int error( int er, int er2, string p1, string p2, string p3 ) { return error4describeDefault( code4, er, er2, p1, p2, p3 ) ; } + public int errorSet( int c ) { return error4set( code4, c ) ; } + + public int errorFile( string fileName, int overwrite ) { return error4file( code4, fileName, overwrite ); } + public int errorNumber2(int errorCode) { return error4number2(code4, errorCode); } + public void exitTest() { error4exitTest( code4 ) ; } + public string errorText( int c ) + { + StringBuilder textBuff = new StringBuilder( 256 ) ; + error4textW( code4, c, textBuff ) ; + return textBuff.ToString() ; + } + } + + public class Expr4 + { + private IntPtr expr; //Contains a pointer to the EXPR4 structure in the CodeBase DLL + + public Expr4() { expr = IntPtr.Zero; } + public Expr4( IntPtr ex ) { expr = ex ; } + + [DllImport("c4dll.dll")] + private static extern IntPtr expr4parseLow( IntPtr data4, + [MarshalAs(UnmanagedType.LPStr)] string expression, + [MarshalAs(UnmanagedType.I4)] int tagFile + ) ; + [DllImport("c4dll.dll")] + private static extern double expr4double( IntPtr expr ) ; + [DllImport("c4dll.dll")] + private static extern IntPtr expr4dataCB(IntPtr expr); + [DllImport("c4dll.dll")] + private static extern void expr4freeCB(IntPtr expr); + [DllImport("c4dll.dll")] + private static extern int expr4lenCB(IntPtr expr); + [DllImport("c4dll.dll")] + private static extern short expr4nullLow(IntPtr expr, [MarshalAs(UnmanagedType.I2)] short forAdd); + [DllImport("c4dll.dll")] /* LY 2002/09/24 : replaced expr4source() */ + private static extern void expr4sourceW(IntPtr expr, StringBuilder buff); + [DllImport("c4dll.dll")] /* LY 2002/09/24 : replaced expr4str() */ + private static extern void expr4strW(IntPtr expr, StringBuilder buff); + [DllImport("c4dll.dll")] + private static extern short expr4typeCB(IntPtr expr); + [DllImport("c4dll.dll")] + private static extern int expr4true(IntPtr expr); + + public IntPtr EXPR4 + { + get + { + return( expr ); + } + } + + public Expr4( Data4 d, string expression ) + { + expr = expr4parseLow( d.dat(), expression, 0 ) ; + } + public static explicit operator double( Expr4 a ) { return expr4double( a.expr ) ; } + + public Data4 data() + { + Data4 temp = new Data4( expr4dataCB( expr ) ) ; + return temp ; + } + public void free() { expr4freeCB(expr); expr = IntPtr.Zero; } + public int len() { return expr4lenCB( expr ) ; } + public int parse( Data4 db, string expression ) + { + int rc ; + if ( db.dat() == IntPtr.Zero ) + { + Error4 err = new Error4() ; + rc = err.throwError( Error4.e4struct, Error4.E60603 ) ; + } + else if (expr != IntPtr.Zero) + { + Error4 err = new Error4() ; + rc = err.throwError( Error4.e4info, Error4.E60601 ) ; + } + else + { + expr = expr4parseLow( db.dat(), expression, 0 ) ; + rc = db.getErrorCode() ; + } + return rc ; + } + public int isValid() { return (expr != IntPtr.Zero ? 1 : 0); } + public short isNull() { return expr4nullLow( expr, 1 ) ; } + public string source() + { + StringBuilder srcBuff = new StringBuilder( 512 ) ; + expr4sourceW( expr, srcBuff ) ; + return srcBuff.ToString() ; + } + public string str() + { + StringBuilder strBuff = new StringBuilder( this.len() + 1 ) ; + strBuff.Append( ' ', this.len() ) ; + expr4strW( expr, strBuff ) ; + // LY Mar 3/05 : Do not pass Expr4::len() to ::ToString() (OutOfRange exception will occur if expression uses trim function and returned string is shorter than Expr4::len()) + return strBuff.ToString() ; + } + + public double toDouble() { return expr4double( expr ) ; } + public char type() { return (char) expr4typeCB( expr ) ; } + public int isTrue() { return expr4true( expr ) ; } + } + + public class Code4 : Error4 + { + private short init_p ; + + //properties of the Code4 structure + [DllImport("c4dll.dll")] + private static extern int c4getCreateTemp(IntPtr code4); + [DllImport("c4dll.dll")] + private static extern int c4getErrCreate(IntPtr code4); + [DllImport("c4dll.dll")] + private static extern int c4getErrExpr(IntPtr code4); + [DllImport("c4dll.dll")] + private static extern int c4getErrFieldName(IntPtr code4); + [DllImport("c4dll.dll")] + private static extern int c4getErrGo(IntPtr code4); + [DllImport("c4dll.dll")] + private static extern int c4getErrOpen(IntPtr code4); + [DllImport("c4dll.dll")] + private static extern int c4getErrRelate(IntPtr code4); + [DllImport("c4dll.dll")] + private static extern int c4getErrSkip(IntPtr code4); + [DllImport("c4dll.dll")] + private static extern int c4getErrTagName(IntPtr code4); + [DllImport("c4dll.dll")] + private static extern int c4getFileFlush(IntPtr code4); + [DllImport("c4dll.dll")] + private static extern void c4setCreateTemp( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int createTemp ) ; + [DllImport("c4dll.dll")] + private static extern void c4setErrCreate( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int errCreate ) ; + [DllImport("c4dll.dll")] + private static extern void c4setErrExpr( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int errExpr ) ; + [DllImport("c4dll.dll")] + private static extern void c4setErrFieldName( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int errFieldName ) ; + [DllImport("c4dll.dll")] + private static extern void c4setErrGo( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int errGo ) ; + [DllImport("c4dll.dll")] + private static extern void c4setErrOpen( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int errOpen ) ; + [DllImport("c4dll.dll")] + private static extern void c4setErrRelate( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int errRelate ) ; + [DllImport("c4dll.dll")] + private static extern void c4setErrSkip( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int errSkip ) ; + [DllImport("c4dll.dll")] + private static extern void c4setErrTagName( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int errTagName ) ; + [DllImport("c4dll.dll")] + private static extern void c4setFileFlush( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int fileFlush ) ; + [DllImport("c4dll.dll")] + private static extern void c4setLockEnforce( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int lockEnforce ) ; + [DllImport("c4dll.dll")] + private static extern short code4autoOpen( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int openMode ) ; + [DllImport("c4dll.dll")] + private static extern short code4codePage( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short codepage ) ; + [DllImport("c4dll.dll")] + private static extern short code4collate( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short collation ) ; + [DllImport("c4dll.dll")] + private static extern short code4collateUnicode( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short collation ) ; + [DllImport("c4dll.dll")] + private static extern short code4collatingSequence( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short collation ) ; + [DllImport("c4dll.dll")] + private static extern short code4compatibility( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short version ) ; + [DllImport("c4dll.dll")] + private static extern short code4errDefaultUnique( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short errDefaultUnique ) ; + [DllImport("c4dll.dll")] + private static extern short code4errOff( IntPtr code4, short mode ) ; + [DllImport("c4dll.dll")] + private static extern int code4hWnd( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int hWnd ) ; + [DllImport("c4dll.dll")] + private static extern short code4indexBlockSize(IntPtr code4); + [DllImport("c4dll.dll")] + private static extern short code4indexBlockSizeSet( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short blockSize ) ; + [DllImport("c4dll.dll")] + private static extern short code4lockAttempts( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short lockAttempts ) ; + [DllImport("c4dll.dll")] + private static extern short code4lockAttemptsSingle( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short lockAttemptsSingle ) ; + [DllImport("c4dll.dll")] + private static extern int code4lockDelay( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int lockDelay ) ; + [DllImport("c4dll.dll")] + private static extern short code4log( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short log ) ; + [DllImport("c4dll.dll")] + private static extern short code4memExpandBlock( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short memExpandBlock ) ; + [DllImport("c4dll.dll")] + private static extern short code4memExpandData( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short memExpandData ) ; + [DllImport("c4dll.dll")] + private static extern short code4memExpandIndex( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short memExpandIndex ) ; + [DllImport("c4dll.dll")] + private static extern short code4memExpandLock( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short memExpandLock ) ; + [DllImport("c4dll.dll")] + private static extern short code4memExpandTag( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short memExpandTag ) ; + [DllImport("c4dll.dll")] + private static extern int code4memSizeBlock( IntPtr code4, [MarshalAs(UnmanagedType.U4)] int memSizeBlock ) ; + [DllImport("c4dll.dll")] + private static extern int code4memSizeBuffer( IntPtr code4, [MarshalAs(UnmanagedType.U4)] int memSizeBuffer ) ; + [DllImport("c4dll.dll")] + private static extern short code4memSizeMemo( IntPtr code4, [MarshalAs(UnmanagedType.U2)] short memSizeMemo ) ; + [DllImport("c4dll.dll")] + private static extern int code4memSizeMemoExpr( IntPtr code4, [MarshalAs(UnmanagedType.U4)] int memSizeMemoExpr ) ; + [DllImport("c4dll.dll")] + private static extern int code4memSizeSortBuffer( IntPtr code4, [MarshalAs(UnmanagedType.U4)] int memSizeSortBuffer ) ; + [DllImport("c4dll.dll")] + private static extern int code4memSizeSortPool( IntPtr code4, [MarshalAs(UnmanagedType.U4)] int memSizeSortPool ) ; + [DllImport("c4dll.dll")] + private static extern short code4memStartBlock( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short memStartBlock ) ; + [DllImport("c4dll.dll")] + private static extern int code4memStartData( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int memStartBlock ) ; + [DllImport("c4dll.dll")] + private static extern short code4memStartIndex( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short memStartIndex ) ; + [DllImport("c4dll.dll")] + private static extern short code4memStartLock( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short memStartLock ) ; + [DllImport("c4dll.dll")] + private static extern int code4memStartMax( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int memStartMax ) ; + [DllImport("c4dll.dll")] + private static extern short code4memStartTag( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short memStartTag ) ; + [DllImport("c4dll.dll")] + private static extern short code4optimize( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short optimize ) ; + [DllImport("c4dll.dll")] + private static extern short code4optimizeWrite( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short optimizeWrite ) ; + [DllImport("c4dll.dll")] + private static extern short code4readLock( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short readLock ) ; + [DllImport("c4dll.dll")] + private static extern short code4readOnly( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short readOnly ) ; + [DllImport("c4dll.dll")] + private static extern short code4safety( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short safety ) ; + [DllImport("c4dll.dll")] + private static extern short code4singleOpen( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short singleOpen ) ; + + public IntPtr cod() { return code4 ; } + + public short accessMode + { + get + { + return code4accessMode( code4, -5 ) ; + } + set + { + code4accessMode( code4, value ) ; + } + } + public short autoOpen + { + get + { + return code4autoOpen( code4, -5 ) ; + } + set + { + code4autoOpen( code4, value ) ; + } + } + public short codePage + { + get + { + return code4codePage( code4, -5 ) ; + } + set + { + code4codePage( code4, value ) ; + } + } + public short collate + { + get + { + return code4collate( code4, -1 ) ; + } + set + { + code4collate( code4, value ) ; + } + } + public short collateUnicode + { + get + { + return code4collateUnicode( code4, -1 ) ; + } + set + { + code4collateUnicode( code4, value ) ; + } + } + public short collatingSequence + { + get + { + return code4collatingSequence( code4, -5 ) ; + } + set + { + code4collatingSequence( code4, value ) ; + } + } + public short compatibility + { + get + { + return code4compatibility( code4, -5 ) ; + } + set + { + code4compatibility( code4, value ) ; + } + } + public int createTemp + { + get + { + return c4getCreateTemp( code4 ) ; + } + set + { + c4setCreateTemp( code4, value ) ; + } + } + + public int errCreate + { + get + { + return c4getErrCreate( code4 ) ; + } + set + { + c4setErrCreate( code4, value ) ; + } + } + + public short errDefaultUnique + { + get + { + return code4errDefaultUnique( code4, -5 ) ; + } + set + { + code4errDefaultUnique( code4, value ) ; + } + } + + public int errExpr + { + get + { + return c4getErrExpr( code4 ) ; + } + set + { + c4setErrExpr( code4, value ) ; + } + } + + public int errFieldName + { + get + { + return c4getErrFieldName( code4 ) ; + } + set + { + c4setErrFieldName( code4, value ) ; + } + } + + public int errGo + { + get + { + return c4getErrGo( code4 ) ; + } + set + { + c4setErrGo( code4, value ) ; + } + } + + public short errOff + { + get + { + return code4errOff( code4, -5 ) ; + } + set + { + code4errOff( code4, value ) ; + } + } + + public int errOpen + { + get + { + return c4getErrOpen( code4 ) ; + } + set + { + c4setErrOpen( code4, value ) ; + } + } + + public short errorCode + { + get + { + return code4errorCode( code4, -5 ) ; + } + set + { + error4set( code4, value ) ; + } + } + + public int errRelate + { + get + { + return c4getErrRelate( code4 ) ; + } + set + { + c4setErrRelate( code4, value ) ; + } + } + + public int errSkip + { + get + { + return c4getErrSkip( code4 ) ; + } + set + { + c4setErrSkip( code4, value ) ; + } + } + + public int errTagName + { + get + { + return c4getErrTagName( code4 ) ; + } + set + { + c4setErrTagName( code4, value ) ; + } + } + + public int fileFlush + { + get + { + return c4getFileFlush( code4 ) ; + } + set + { + c4setFileFlush( code4, value ) ; + } + } + + public int hWnd + { + get + { + return code4hWnd( code4, -5 ) ; + } + set + { + code4hWnd( code4, value ) ; + } + } + + public short indexBlockSize + { + get + { + return code4indexBlockSize( code4 ) ; + } + set + { + code4indexBlockSizeSet( code4, value ) ; + } + } + + public short lockAttempts + { + get + { + return code4lockAttempts( code4, -5 ) ; + } + set + { + code4lockAttempts( code4, value ) ; + } + } + + public short lockAttemptsSingle + { + get + { + return code4lockAttemptsSingle( code4, -5 ) ; + } + set + { + code4lockAttemptsSingle( code4, value ) ; + } + } + + public int lockDelay + { + get + { + return code4lockDelay( code4, -5 ) ; + } + set + { + code4lockDelay( code4, value ) ; + } + } + + public int lockEnforce + { + get + { + return c4getLockEnforce( code4 ) ; + } + set + { + c4setLockEnforce( code4, value ) ; + } + } + + public short log + { + get + { + return code4log( code4, -5 ) ; + } + set + { + code4log( code4, value ) ; + } + } + + public short memExpandBlock + { + get + { + return code4memExpandBlock( code4, -5 ) ; + } + set + { + code4memExpandBlock( code4, value ) ; + } + } + + public short memExpandData + { + get + { + return code4memExpandData( code4, -5 ) ; + } + set + { + code4memExpandData( code4, value ) ; + } + } + + public short memExpandIndex + { + get + { + return code4memExpandIndex( code4, -5 ) ; + } + set + { + code4memExpandIndex( code4, value ) ; + } + } + + public short memExpandLock + { + get + { + return code4memExpandLock( code4, -5 ) ; + } + set + { + code4memExpandLock( code4, value ) ; + } + } + + public short memExpandTag + { + get + { + return code4memExpandTag( code4, -5 ) ; + } + set + { + code4memExpandTag( code4, value ) ; + } + } + + + public int memSizeBlock + { + get + { + return code4memSizeBlock( code4, -5 ) ; + } + set + { + code4memSizeBlock( code4, value ) ; + } + } + + public int memSizeBuffer + { + get + { + return code4memSizeBuffer( code4, -5 ) ; + } + set + { + code4memSizeBuffer( code4, value ) ; + } + } + + public short memSizeMemo + { + get + { + return code4memSizeMemo( code4, -5 ) ; + } + set + { + code4memSizeMemo( code4, value ) ; + } + } + + public int memSizeMemoExpr + { + get + { + return code4memSizeMemoExpr( code4, -5 ) ; + } + set + { + code4memSizeMemoExpr( code4, value ) ; + } + } + + public int memSizeSortBuffer + { + get + { + return code4memSizeSortBuffer( code4, -5 ) ; + } + set + { + code4memSizeSortBuffer( code4, value ) ; + } + } + + public int memSizeSortPool + { + get + { + return code4memSizeSortPool( code4, -5 ) ; + } + set + { + code4memSizeSortPool( code4, value ) ; + } + } + + public short memStartBlock + { + get + { + return code4memStartBlock( code4, -5 ) ; + } + set + { + code4memStartBlock( code4, value ) ; + } + } + + public int memStartData + { + get + { + return code4memStartData( code4, -5 ) ; + } + set + { + code4memStartData( code4, value ) ; + } + } + + public short memStartIndex + { + get + { + return code4memStartIndex( code4, -5 ) ; + } + set + { + code4memStartIndex( code4, value ) ; + } + } + + public short memStartLock + { + get + { + return code4memStartLock( code4, -5 ) ; + } + set + { + code4memStartLock( code4, value ) ; + } + } + + public int memStartMax + { + get + { + return code4memStartMax( code4, -5 ) ; + } + set + { + code4memStartMax( code4, value ) ; + } + } + + public short memStartTag + { + get + { + return code4memStartTag( code4, -5 ) ; + } + set + { + code4memStartTag( code4, value ) ; + } + } + + public short optimize + { + get + { + return code4optimize( code4, -5 ) ; + } + set + { + code4optimize( code4, value ) ; + } + } + + public short optimizeWrite + { + get + { + return code4optimizeWrite( code4, -5 ) ; + } + set + { + code4optimizeWrite( code4, value ) ; + } + } + + public short readLock + { + get + { + return code4readLock( code4, -5 ) ; + } + set + { + code4readLock( code4, value ) ; + } + } + + public short readOnly + { + get + { + return code4readOnly( code4, -5 ) ; + } + set + { + code4readOnly( code4, value ) ; + } + } + + public short safety + { + get + { + return code4safety( code4, -5 ) ; + } + set + { + code4safety( code4, value ) ; + } + } + + public short singleOpen + { + get + { + return code4singleOpen( code4, -5 ) ; + } + set + { + code4singleOpen( code4, value ) ; + } + } + + //Functions of the Code4 + [DllImport("c4dll.dll")] + private static extern void code4autoIncrementStart( IntPtr code4, [MarshalAs(UnmanagedType.R8)] double autoIncCurrentVal ) ; + [DllImport("c4dll.dll")] + private static extern int code4calcCreate(IntPtr code4, + IntPtr expr, [MarshalAs(UnmanagedType.LPStr)] string name ) ; + [DllImport("c4dll.dll")] + private static extern void code4calcReset( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern int code4close( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern int code4connect( IntPtr code4, + [MarshalAs(UnmanagedType.LPStr)] string serverId, [MarshalAs(UnmanagedType.LPStr)] string processId, + [MarshalAs(UnmanagedType.LPStr)] string userName, [MarshalAs(UnmanagedType.LPStr)] string password, + [MarshalAs(UnmanagedType.LPStr)] string protocol ) ; + [DllImport("c4dll.dll")] + private static extern IntPtr code4data( IntPtr code4, [MarshalAs(UnmanagedType.LPStr)] string alias ) ; + [DllImport("c4dll.dll")] /* LY 2002/09/24 : changed from code4dateFormat() */ + private static extern void code4dateFormatW( IntPtr code4, StringBuilder buff ) ; + [DllImport("c4dll.dll")] + private static extern int code4dateFormatSet( IntPtr code4, [MarshalAs(UnmanagedType.LPStr)] string format ) ; + [DllImport("c4dll.dll")] + private static extern int code4encryptInit(IntPtr code4, byte[] key, short keyLen); + [DllImport("c4dll.dll")] + private static extern void code4encryptFile(IntPtr code4, short encryptFlag); + [DllImport("c4dll.dll")] + private static extern void code4exit( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern int code4flush( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern int code4flushFiles( IntPtr code4 ) ; + [DllImport("c4dll.dll")] /* LY 2002/09/24 : changed from code4indexExtension() */ + private static extern void code4indexExtensionW( IntPtr code4, StringBuilder buff ) ; + [DllImport("c4dll.dll")] + private static extern int code4allocLow( [MarshalAs(UnmanagedType.I4)] int inititize, [MarshalAs(UnmanagedType.LPStr)] string protocol, [MarshalAs(UnmanagedType.I4)] int version ) ; + // CS 2007/09/18 Add code4initVB. + [DllImport("c4dll.dll")] + private static extern IntPtr code4initVB( ); + [DllImport("c4dll.dll")] + private static extern int code4initUndo(IntPtr code4); + [DllImport("c4dll.dll")] + private static extern void code4largeOn( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern int code4lock( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern void code4lockClear( IntPtr code4 ) ; + [DllImport("c4dll.dll")] /* LY 2002/09/24 : changed from code4lockFileName() */ + private static extern void code4lockFileNameW( IntPtr code4, StringBuilder buff ) ; + [DllImport("c4dll.dll")] + private static extern int code4lockItem( IntPtr code4 ) ; + [DllImport("c4dll.dll")] /* LY 2002/09/24 : changed from code4lockUserId() */ + private static extern void code4lockUserIdW( IntPtr code4, StringBuilder buff ) ; + [DllImport("c4dll.dll")] /* LY 2002/09/24 : changed from code4lockNetworkId */ + private static extern void code4lockNetworkIdW( IntPtr code4, StringBuilder buff ) ; + [DllImport("c4dll.dll")] + private static extern int code4logCreate( IntPtr code4, + [MarshalAs(UnmanagedType.LPStr)] string name, [MarshalAs(UnmanagedType.LPStr)] string userId ) ; + [DllImport("c4dll.dll")] /* LY 2002/09/25 : changed from code4logFileName() */ + private static extern void code4logFileNameW( IntPtr code4, StringBuilder buff ) ; + [DllImport("c4dll.dll")] + private static extern int code4logOpen( IntPtr code4, + [MarshalAs(UnmanagedType.LPStr)] string name, [MarshalAs(UnmanagedType.LPStr)] string userId ) ; + [DllImport("c4dll.dll")] + private static extern void code4logOpenOff( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern int code4optAll( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern int code4optStart( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern int code4optSuspend( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern int code4timeout( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern int code4timeoutSet( IntPtr code4, [MarshalAs(UnmanagedType.I4)] int l ) ; + [DllImport("c4dll.dll")] + private static extern int code4tranCommit( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern int code4tranRollback( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern int code4tranStart( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern short code4tranStatusCB( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern int code4unlock( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern short code4unlockAutoCB( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern short code4unlockAutoSetCB( IntPtr code4, [MarshalAs(UnmanagedType.I2)] short c ) ; + [DllImport("c4dll.dll")] + private static extern int code4verifySet( IntPtr code4, [MarshalAs(UnmanagedType.LPStr)] string value ) ; + // CS 2007/09/18 + [DllImport("c4dll.dll")] + private static extern int error4callback(IntPtr code4, error4callbackFunction errorCallback); + + public Code4( ) + { + init() ; + } + public Code4( int initialize ) + { + init_p = 0 ; + if ( initialize != 0 ) + init() ; + } + + public void autoIncrementStart( double autoIncCurrentVal ) { code4autoIncrementStart( code4, autoIncCurrentVal ) ; } + public int calcCreate( Expr4 ex, string name ) { return ( code4calcCreate( code4, ex.EXPR4, name ) != 0 ? r4success : -1 ) ; } + public void calcReset() { code4calcReset( code4 ) ; } + public int closeAll() { return code4close( code4 ) ; } + public int connect( string serverId, string processId, string userName, string password, string protocol) + { + return code4connect( code4, serverId, processId, userName, password, protocol ) ; + } + public Data4 data( string alias ) + { + Data4 r = new Data4( code4data( code4, alias ) ) ; + return r ; + } + public string dateFormat + { + get + { + /* 20 = LEN4DATE_FORMAT */ + StringBuilder dateBuff = new StringBuilder( 20 ) ; + code4dateFormatW( code4, dateBuff ) ; + return dateBuff.ToString() ; + } + set + { + code4dateFormatSet( code4, value ) ; + } + } + + public delegate void error4callbackFunction([MarshalAs(UnmanagedType.I4)]int code4, [MarshalAs(UnmanagedType.I4)]int er, [MarshalAs(UnmanagedType.I4)]int er2, +[MarshalAs(UnmanagedType.LPStr)]string p1, [MarshalAs(UnmanagedType.LPStr)]string p2, [MarshalAs(UnmanagedType.LPStr)]string p3); + + public void errorCallback(error4callbackFunction errorCallback) + { + error4callback(code4, new error4callbackFunction(errorCallback)); + } + + public void encryptFile(short encryptFlag) { code4encryptFile(code4, encryptFlag); } + public int encryptInit(byte[] key, short keyLen) { return code4encryptInit(code4, key, keyLen); } + public void exit() { code4exit(code4); } + public int flushFiles() { return code4flush( code4 ) ; } + public string indexExtension() + { + StringBuilder extBuff = new StringBuilder( 3 ) ; + code4indexExtensionW( code4, extBuff ) ; + return extBuff.ToString( 0, 3 ) ; + } + public int init() + { + if ( init_p != 0 ) + code4initUndo( code4 ) ; + // CS 2007/09/18 Call code4initVB rather than code4allocLow. + code4 = code4initVB(); + if ( code4 != IntPtr.Zero ) + init_p = 1 ; + else + init_p = 0 ; + return ( init_p != 0 ? 1 : 0 ) ; + } + public int initUndo() + { + int rc = r4success ; + if ( init_p != 0 ) + { + rc = code4initUndo( code4 ) ; + if (rc == r4success) + { + init_p = 0 ; + code4 = IntPtr.Zero; + } + } + return rc ; + } + public void largeOn() { code4largeOn( code4 ) ; } + + // 'lock' is C# keyword - replaced 'lock()' with 'lockGroup' + public int lockGroup() { return code4lock( code4 ) ; } + public void lockClear() { code4lockClear( code4 ) ; } + public string lockFileName() + { + /* 250 = LEN4PATH */ + StringBuilder nameBuff = new StringBuilder( 250 ) ; + code4lockFileNameW( code4, nameBuff ) ; + return nameBuff.ToString() ; + } + public int lockItem() { return code4lockItem( code4 ) ; } + public string lockUserId() + { + /* 250 = LEN4PATH */ + StringBuilder idBuff = new StringBuilder( 250 ) ; + code4lockUserIdW( code4, idBuff ) ; + return idBuff.ToString() ; + } + public string lockNetworkId() + { + /* 250 = LEN4PATH */ + StringBuilder idBuff = new StringBuilder( 250 ) ; + code4lockNetworkIdW( code4, idBuff ) ; + return idBuff.ToString() ; + } + public int logCreate( string name, string userId ) { return code4logCreate( code4, name, userId) ; } + public string logFileName() + { + /* 250 = LEN4PATH */ + StringBuilder nameBuff = new StringBuilder( 250 ) ; + code4logFileNameW( code4, nameBuff ) ; + return nameBuff.ToString() ; + } + public int logOpen( string name, string userId ) { return code4logOpen( code4, name, userId ) ; } + public void logOpenOff() { code4logOpenOff( code4 ) ; } + public int optAll() { return code4optAll( code4 ) ; } + public int optStart() { return code4optStart( code4 ) ; } + public int optSuspend() { return code4optSuspend( code4 ) ; } + public int timeout + { + get + { + return code4timeout( code4 ) ; + } + set + { + code4timeoutSet( code4, value ) ; + } + } + + public int tranCommit() { return code4tranCommit( code4 ) ; } + public int tranRollback() { return code4tranRollback( code4 ) ; } + public int tranStart() { return code4tranStart( code4 ) ; } + public short tranStatus() { return code4tranStatusCB( code4 ); } + public int unlock() { return code4unlock( code4 ) ; } + public short unlockAuto + { + get + { + return code4unlockAutoCB( code4 ) ; + } + set + { + code4unlockAutoSetCB( code4, value ) ; + } + } + public void verifySet( string val ) { code4verifySet( code4, val ) ; } + } + + public class Data4 : Error4 + { + private IntPtr data ; + + [DllImport("c4dll.dll")] /* LY 2002/09/25 : replaced d4alias() */ + private static extern void d4aliasW( IntPtr data4, StringBuilder buff ) ; + [DllImport("c4dll.dll")] + private static extern void d4aliasSet( IntPtr data4, [MarshalAs(UnmanagedType.LPStr)] string alias ) ; + [DllImport("c4dll.dll")] + private static extern int d4append( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4appendBlank( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern short d4appendStart( IntPtr data4, [MarshalAs(UnmanagedType.I2)] short useMemo ) ; + [DllImport("c4dll.dll")] + private static extern void d4blank( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4bof( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4bottom( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4check( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern IntPtr d4create( IntPtr code4, [MarshalAs(UnmanagedType.LPStr)] string name, IntPtr fieldInfo, IntPtr tagInfo ); + [DllImport("c4dll.dll")] + private static extern int d4close( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern IntPtr d4code( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern void d4delete( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4deleted( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4eof( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4fieldNumber( IntPtr data4, [MarshalAs(UnmanagedType.LPStr)] string fieldName ) ; + [DllImport("c4dll.dll")] + private static extern IntPtr d4fieldsAdd( IntPtr data4, [MarshalAs(UnmanagedType.I2)] short nFields, IntPtr fieldInfo); + [DllImport("c4dll.dll")] /* LY 2002/09/25 : replaced d4fileName() */ + private static extern void d4fileNameW( IntPtr data4, StringBuilder buff ) ; + [DllImport("c4dll.dll")] + private static extern int d4flush( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4freeBlocks( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4goLow( IntPtr data4, [MarshalAs(UnmanagedType.I4)] int recNo, [MarshalAs(UnmanagedType.I2)] short goForWrite ) ; + [DllImport("c4dll.dll")] + private static extern int d4goBof( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4goEof( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4lockInternal( IntPtr data4, [MarshalAs(UnmanagedType.I4)] int recNum, [MarshalAs(UnmanagedType.U1)] byte doUnlock, [MarshalAs(UnmanagedType.I4)] int lockType ) ; + [DllImport("c4dll.dll")] + private static extern int d4lockAdd( IntPtr data4, [MarshalAs(UnmanagedType.I4)] int recNum ) ; + [DllImport("c4dll.dll")] + private static extern int d4lockAddAppend( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4lockAddFile( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4lockAddAll( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4lockAllInternal( IntPtr data4, [MarshalAs(UnmanagedType.U1)] byte doUnlock ) ; + [DllImport("c4dll.dll")] + private static extern int d4lockAppendInternal( IntPtr data4, [MarshalAs(UnmanagedType.U1)] byte doUnlock ) ; + [DllImport("c4dll.dll")] + private static extern int d4lockFileInternal( IntPtr data4, [MarshalAs(UnmanagedType.U1)] byte doUnlock, [MarshalAs(UnmanagedType.I4)] int lockType ) ; + [DllImport("c4dll.dll")] + private static extern int d4log( IntPtr data4, [MarshalAs(UnmanagedType.I4)] int logging ) ; + [DllImport("c4dll.dll")] + private static extern short d4logStatusCB( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4memoCompress(IntPtr data4); + [DllImport("c4dll.dll")] + private static extern IntPtr d4modifyStructure(IntPtr data4, IntPtr fieldInfo, IntPtr tagInfo ); + [DllImport("c4dll.dll")] + private static extern IntPtr d4open( IntPtr code4, [MarshalAs(UnmanagedType.LPStr)] string name ) ; + [DllImport("c4dll.dll")] + private static extern IntPtr d4openClone( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4optimize( IntPtr data4, [MarshalAs(UnmanagedType.I4)] int opt ) ; + [DllImport("c4dll.dll")] + private static extern int d4optimizeWrite( IntPtr data4, [MarshalAs(UnmanagedType.I4)] int opt ) ; + [DllImport("c4dll.dll")] + private static extern int d4pack( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern double d4position( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4positionSet( IntPtr data4, [MarshalAs(UnmanagedType.R8)] double pos ) ; + [DllImport("c4dll.dll")] + private static extern void d4recall( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4recCountDo2( IntPtr data4, [MarshalAs(UnmanagedType.I2)] short assumeLocked ) ; + [DllImport("c4dll.dll")] + private static extern uint d4recWidthLow( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4refresh( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4refreshRecord( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4reindex( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4remove( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4seek( IntPtr data4, [MarshalAs(UnmanagedType.LPStr)] string key ) ; + [DllImport("c4dll.dll")] + private static extern int d4seekN( IntPtr data4, [MarshalAs(UnmanagedType.LPStr)] string key, [MarshalAs(UnmanagedType.I2)] short len ) ; + [DllImport("c4dll.dll")] + private static extern int d4seekDouble( IntPtr data4, [MarshalAs(UnmanagedType.R8)] double key ) ; + [DllImport("c4dll.dll")] + private static extern int d4seekNext( IntPtr data4, [MarshalAs(UnmanagedType.LPStr)] string key ) ; + [DllImport("c4dll.dll")] + private static extern int d4seekNextN( IntPtr data4, [MarshalAs(UnmanagedType.LPStr)] string key, [MarshalAs(UnmanagedType.I2)] short len ) ; + [DllImport("c4dll.dll")] + private static extern int d4seekNextDouble( IntPtr data4, [MarshalAs(UnmanagedType.R8)] double key ) ; + [DllImport("c4dll.dll")] + private static extern int d4seekNextUnicodeN( IntPtr data4, [MarshalAs(UnmanagedType.LPWStr)] string key, [MarshalAs(UnmanagedType.I2)] short len ) ; + [DllImport("c4dll.dll")] + private static extern int d4seekUnicodeN( IntPtr data4, [MarshalAs(UnmanagedType.LPWStr)] string key, [MarshalAs(UnmanagedType.I2)] short len ) ; + [DllImport("c4dll.dll")] + private static extern int d4skip( IntPtr data4, [MarshalAs(UnmanagedType.I4)] int number ) ; + [DllImport("c4dll.dll")] + private static extern int d4tagSync( IntPtr data4, IntPtr tag4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4tagSelect( IntPtr data4, IntPtr tag4 ) ; + [DllImport("c4dll.dll")] + private static extern IntPtr d4tagSelected( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4top( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4unlock( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4writeLow( IntPtr data4, + [MarshalAs(UnmanagedType.I4)] int number, + [MarshalAs(UnmanagedType.I4)] int unlock, + [MarshalAs(UnmanagedType.I4)] int doLock + ) ; + [DllImport("c4dll.dll")] + private static extern int d4zap( IntPtr data4, [MarshalAs(UnmanagedType.I4)] int first, [MarshalAs(UnmanagedType.I4)] int last ) ; + + public Data4() { data = IntPtr.Zero; } + public Data4( Data4 d ) { data = d.data ; code4 = d.code4 ; } + + /* here because of Field4::data(), but do we really want this? */ + /* yes we do as it is also needed in the relation module. */ + public Data4( IntPtr d ) { data = d ; code4 = d4code( d ) ; } + + public Data4( Code4 code, string name ) { data = d4open( code.cod(), name ) ; if ( data != IntPtr.Zero ) code4 = d4code( data ) ; } + + public IntPtr cod() { return code4 ; } + + public string alias + { + get + { + /* 33 = LEN4DATA_ALIAS + 1 */ + StringBuilder buff = new StringBuilder( 33 ) ; + d4aliasW( data, buff ) ; + return buff.ToString() ; + } + set + { + d4aliasSet( data, value ) ; + } + } + public IntPtr dat() { return data ; } + + public int append() { return d4append( data ) ; } + public int appendBlank() { return d4appendBlank( data ) ; } + public short appendStart( short memo ){ return d4appendStart( data, memo ) ; } + public short appendStart( ) { return( d4appendStart( data, 0 ) ); } + public void blank() { d4blank( data ) ; } + public int bof() { return d4bof( data ) ; } + public int bottom() { return d4bottom( data ) ; } + public short changed + { + get + { + return d4changed( data, -1 ) ; + } + set + { + d4changed( data, value ) ; + } + } + public int checkIndex() { return d4check( data ) ; } + public int close() + { + if (data != IntPtr.Zero) + { + int rc = d4close( data ) ; + data = IntPtr.Zero; + return rc; + } + else + return 0 ; + } + + public int create( ref Code4 code, string name, ref Field4info f, ref Tag4info t) + { + data = d4create( code.cod(), name, f.fields(), t.tags() ) ; + if (data != IntPtr.Zero) + code4 = code.cod() ; + return code.errorCode ; + } + public int create( ref Code4 code, string name, ref Field4info f) + { + data = d4create(code.cod(), name, f.fields(), IntPtr.Zero); + if (data != IntPtr.Zero) + code4 = code.cod() ; + return code.errorCode ; + } + + public void deleteRec() { d4delete( data ) ; } + public int deleted() { return d4deleted( data ) ; } + public int eof() { return d4eof( data ) ; } + public int fieldNumber( string name ) { return d4fieldNumber( data, name ) ; } + public int fieldsAdd( ref Field4info f ) + { + // 2006/01/26 CS Add Data4.fieldsAdd method. + IntPtr new_data = d4fieldsAdd( data, (short)f.numFields(), f.fields() ) ; + if (new_data != IntPtr.Zero) + { + // success + data = new_data ; + return 0; + } + else + { + //fail + return -1; + } + } + public string fileName() + { + /* 250 = LEN4PATH */ + StringBuilder nameBuff = new StringBuilder( 250 ) ; + d4fileNameW( data, nameBuff ) ; + return nameBuff.ToString() ; + } + public int flush() { return d4flush( data ) ; } + public int freeBlocks() { return d4freeBlocks( data ) ; } + public int getErrorCode() { return code4errorCode( code4, -5 ) ; } + public int go( int rec ) { return d4goLow( data, rec, 1 ) ; } + public int goBof() { return d4goBof( data ) ; } + public int goEof() { return d4goEof( data ) ; } + public Index4 index( string name ) + { + Index4 idx = new Index4() ; + idx.init( this, name ) ; + return idx ; + } + public int isValid() { return ( data != IntPtr.Zero ? 1 : 0 ) ; } + public int lockRecord( int recNum ) { return d4lockInternal( data, recNum, 1, 1 ) ; } + public int lockAdd( int recnum ) { return d4lockAdd( data, recnum ) ; } + public int lockAddAppend() { return d4lockAddAppend( data ) ; } + public int lockAddFile() { return d4lockAddFile( data ) ; } + public int lockAddAll() { return d4lockAddAll( data ) ; } + public int lockAll() { return d4lockAllInternal( data, 1 ) ; } + public int lockAppend() { return d4lockAppendInternal( data, 1 ) ; } + public int lockFile() { return d4lockFileInternal( data, 1, 1 ) ; } + public int log + { + set + { + d4log( data, value ) ; + } + get + { + return d4log( data, -1 ) ; + } + } + public int logStatus() { return (int)d4logStatusCB( data ) ; } + public int memoCompress() { return d4memoCompress( data ) ; } + + public int modifyStructure(ref Field4info f, ref Tag4info t) + { + data = d4modifyStructure(data, f.fields(), t.tags()); + return getErrorCode(); + } + public int modifyStructure(ref Field4info f) + { + data = d4modifyStructure(data, f.fields(), IntPtr.Zero); + return getErrorCode(); + } + + public int numFields() { return (int)d4numFields( data ) ; } + public int open( ref Code4 code, string name ) + { + data = d4open( code.cod(), name ) ; + if (data != IntPtr.Zero) + code4 = code.cod() ; + return ( (code.errOpen == 0) ? (code.errorCode) : (code.errorCode < 0 ? (int) code.errorCode : 0 )) ; + } + public int openClone( Data4 d ) + { + data = d4openClone( d.dat() ) ; + if (data != IntPtr.Zero) + { + code4 = d.code4 ; + return getErrorCode() ; + } + else + return -1 ; + } + public int optimize( int optFlag ) { return d4optimize( data, optFlag ) ; } + public int optimizeWrite( int optFlag ) { return d4optimizeWrite( data, optFlag ) ; } + public int pack() { return d4pack( data ) ; } + public double position + { + get + { + return d4position( data ) ; + } + set + { + d4positionSet( data, value ) ; + } + } + public void recall() { d4recall( data ) ; } + public int recCount() { return d4recCountDo2( data, 0 ) ; } + public int recNo() { return d4recNoLow( data ) ; } + public uint recWidth() { return d4recWidthLow( data ) ; } + public int refresh() { return d4refresh( data ) ; } + public int refreshRecord() { return d4refreshRecord( data ) ; } + public int reindex() { return d4reindex( data ) ; } + + public int remove() + { + int rc = d4remove( data ) ; + if ( rc == 0 ) + data = IntPtr.Zero; + return rc ; + } + public int seek( string ptr ) { return d4seek( data, ptr ) ; } + public int seek( string ptr, short len ) { return d4seekN( data, ptr, len ) ; } + public int seek( double d ) { return d4seekDouble( data, d ) ; } + public int seekUnicode( string ptr ) { return d4seekUnicodeN( data, ptr, (short)(ptr.Length * 2) ) ; } + public int seekUnicode( string ptr, short len ) { return d4seekUnicodeN( data, ptr, len ) ; } + public int seekNext( string ptr ) { return d4seekNext( data, ptr ) ; } + public int seekNext( string ptr, short len ) { return d4seekNextN( data, ptr, len ) ; } + public int seekNext( double d ) { return d4seekNextDouble( data, d ) ; } + public int seekNextUnicode( string ptr ) { return d4seekNextUnicodeN( data, ptr, (short)(ptr.Length * 2) ) ; } + public int seekNextUnicode( string ptr, short len ) { return d4seekNextUnicodeN( data, ptr, len ) ; } + public void select() { d4tagSelect(data, IntPtr.Zero); } + public void select( Tag4 tag ) { d4tagSelect( data, tag.tg() ) ; } + public void select( string tagName ) + { + if( tagName.Length != 0 ) + { + Tag4 tag = new Tag4( this, tagName ) ; + d4tagSelect( data, tag.tg() ) ; + } + else + { + d4tagSelect(data, IntPtr.Zero); + } + } + public int skip( int n ) { return d4skip( data, n ) ; } + public int skip() { return d4skip( data, 1) ; } + public int tagSync() { return d4tagSync( data, d4tagSelected( data ) ) ; } + public int top() { return d4top( data ) ; } + public int unlock() { return d4unlock( data ) ; } + public int write( int rec ) { return d4writeLow( data, rec, 0, 1 ) ; } + public int write() { return d4writeLow( data, -1, 0, 1 ) ; } + public int zap( int f, int last ) { return d4zap( data, f, last ) ; } + public int zap() { return d4zap( data, 1, 1000000000 ) ; } + } ; + + public class Index4 : Error4 + { + private IntPtr index ; + private Data4 D4 ; + + [DllImport("c4dll.dll")] + private static extern IntPtr i4openW( IntPtr data4, [MarshalAs(UnmanagedType.LPStr)] string name ) ; + [DllImport("c4dll.dll")] + private static extern int i4close( IntPtr index4 ) ; + [DllImport("c4dll.dll")] + private static extern IntPtr i4create( IntPtr data4, [MarshalAs(UnmanagedType.LPStr)] string name, IntPtr tagInfo ); + [DllImport("c4dll.dll")] /* LY 2002/09/25 : replaced i4fileName() */ + private static extern void i4fileNameW( IntPtr index4, StringBuilder buff ) ; + [DllImport("c4dll.dll")] + private static extern IntPtr d4index( IntPtr data4, [MarshalAs(UnmanagedType.LPStr)] string name ) ; + [DllImport("c4dll.dll")] + private static extern int i4reindex( IntPtr index4 ) ; + // [DllImport("c4dll.dll")] + // private static extern int i4tag( IntPtr index4, [MarshalAs(UnmanagedType.LPStr)] string name ) ; + + public IntPtr cod() { return code4 ; } + public IntPtr idx() { return index ; } + + public Index4() { index = IntPtr.Zero; } + public Index4( Data4 d, string name ) + { + index = i4openW( d.dat(), name ) ; + if (index != IntPtr.Zero) + { + code4 = d.cod() ; + D4 = d ; + } + } + public int close() + { + int rc = i4close( index ) ; + D4 = null ; + index = IntPtr.Zero; + code4 = IntPtr.Zero; + return rc; + } + public int create( ref Data4 data, string name, ref Tag4info t) + { + int rc ; + + code4 = data.cod() ; + if (data.dat() == IntPtr.Zero) + { + rc = throwError( e4struct, 60709 ) ; + } + else + { + index = i4create( data.dat(), name, t.tags() ) ; + if ( index != IntPtr.Zero ) + { + D4 = data ; + } + rc = data.getErrorCode() ; + } + return rc ; + } + public string fileName() + { + /* 250 = LEN4PATH */ + StringBuilder nameBuff = new StringBuilder( 250 ) ; + i4fileNameW( index, nameBuff ) ; + return nameBuff.ToString() ; + } + public void init( Data4 d, string name ) + { + index = d4index( d.dat(), name ); + if (index != IntPtr.Zero) + { + code4 = d.cod() ; + D4 = d ; + } + } + public int isValid() { return (index != IntPtr.Zero ? 1 : 0); } + public int open( Data4 d, string file ) + { + int rc ; + + code4 = d.cod() ; + if (d.dat() == IntPtr.Zero) + { + rc = throwError( e4struct, 60709 ) ; + } + else + { + index = i4openW( d.dat(), file ) ; + if (index != IntPtr.Zero) + { + D4 = d ; + } + rc = d.getErrorCode() ; + } + return rc ; + } + public int reindex() { return i4reindex( index ) ; } + public Tag4 tag( string name ) { return new Tag4( D4, name ) ; } + } ; + + public class Tag4 : Error4 + { + private IntPtr tag ; + private IntPtr data ; + + [DllImport("c4dll.dll")] /* LY 2002/09/25 : replaced t4alias() */ + private static extern void t4aliasW( IntPtr tag4, StringBuilder buff ) ; + [DllImport("c4dll.dll")] + private static extern int t4close( IntPtr tag4 ) ; + [DllImport("c4dll.dll")] + private static extern short t4descending( IntPtr tag4 ) ; + [DllImport("c4dll.dll")] /* LY 2002/09/25 : replaced t4exprCB() */ + private static extern void t4exprW( IntPtr tag4, StringBuilder buff ) ; + [DllImport("c4dll.dll")] /* LY 2002/09/25 : replaced t4filterCB */ + private static extern void t4filterW( IntPtr tag4, StringBuilder buff ) ; + [DllImport("c4dll.dll")] + private static extern IntPtr d4tag(IntPtr data4, [MarshalAs(UnmanagedType.LPStr)] string name); + [DllImport("c4dll.dll")] + private static extern IntPtr d4tagSelected(IntPtr data4); + [DllImport("c4dll.dll")] + private static extern IntPtr d4tagNext( IntPtr data4, IntPtr tag4 ) ; + [DllImport("c4dll.dll")] + private static extern IntPtr d4tagPrev(IntPtr data4, IntPtr tag4); + [DllImport("c4dll.dll")] + private static extern IntPtr t4openLow( IntPtr data4, IntPtr index4, [MarshalAs(UnmanagedType.LPStr)] string name ) ; + [DllImport("c4dll.dll")] + private static extern int t4seekN( IntPtr tag4, [MarshalAs(UnmanagedType.LPStr)] string seekValue, [MarshalAs(UnmanagedType.I2)] short len, [MarshalAs(UnmanagedType.I2)] short doDataPosition ) ; + [DllImport("c4dll.dll")] + private static extern int t4seekNW( IntPtr tag4, [MarshalAs(UnmanagedType.LPWStr)] string seekValue, [MarshalAs(UnmanagedType.I2)] short len, [MarshalAs(UnmanagedType.I2)] short doDataPosition ) ; + [DllImport("c4dll.dll")] + private static extern short t4unique( IntPtr tag4 ) ; + [DllImport("c4dll.dll")] + private static extern int t4uniqueSet( IntPtr tag4, [MarshalAs(UnmanagedType.I2)] short unique ) ; + + public Tag4() { tag = IntPtr.Zero; } + public Tag4( Data4 d, string name ) + { + init( d, name ); + if (tag != IntPtr.Zero) + code4 = d.cod() ; + } + + public Tag4( IntPtr dataPointer, IntPtr tagPointer ) + { + + tag = tagPointer ; + } + + public IntPtr tg() { return tag ; } + + public string alias() + { + /* 11 = LEN4TAG_ALIAS + 1 */ + StringBuilder buff = new StringBuilder( 11 ) ; + t4aliasW( tag, buff ) ; + return buff.ToString() ; + } + public int close() + { + int rc = t4close( tag ) ; + tag = IntPtr.Zero; + code4 = IntPtr.Zero ; + return rc ; + } + public int descending() + { + int rc; + + if (tag == IntPtr.Zero) + { + throwError( e4struct, 60913 ) ; + rc = 0 ; + } + else + rc = t4descending( tag ) ; + return rc ; + } + public string expr() + { + StringBuilder buff = new StringBuilder( 512 ) ; + t4exprW( tag, buff ) ; + return buff.ToString() ; + } + public string filter() + { + StringBuilder buff = new StringBuilder( 512 ) ; + t4filterW( tag, buff ) ; + return buff.ToString() ; + } + public void init( Data4 d, string name ) + { + if ( name.Length != 0 ) + tag = d4tag( d.dat(), name ) ; + else + { + tag = d4tagSelected( d.dat() ) ; + + if (tag == IntPtr.Zero) + tag = d4tagNext( d.dat(), IntPtr.Zero ) ; + } + if ( tag != IntPtr.Zero ) + { + data = d.dat() ; + code4 = d.cod() ; + } + else + { + data = IntPtr.Zero; + code4 = IntPtr.Zero ; + } + } + public void initFirst( Data4 d ) + { + tag = d4tagNext(d.dat(), IntPtr.Zero); + if (tag != IntPtr.Zero) + { + data = d.dat() ; + code4 = d.cod() ; + } + else + { + data = IntPtr.Zero; + code4 = IntPtr.Zero; + } + } + public void initLast( Data4 d ) + { + tag = d4tagPrev(d.dat(), IntPtr.Zero); + if (tag != IntPtr.Zero) + { + data = d.dat() ; + code4 = d.cod() ; + } + else + { + data = IntPtr.Zero; + code4 = IntPtr.Zero; + } + } + public void initNext() { if( isValid() != 0 ) tag = d4tagNext( data, tag ) ; } + public void initPrev() { if( isValid() != 0 ) tag = d4tagPrev( data, tag ) ; } + public void initSelected( Data4 d ) + { + tag = d4tagSelected( d.dat() ) ; + if (tag != IntPtr.Zero) + { + data = d.dat() ; + code4 = d.cod() ; + } + else + { + data = IntPtr.Zero; + code4 = IntPtr.Zero; + } + } + public int isValid() { return (tag != IntPtr.Zero ? 1 : 0); } + public void open( Data4 d, string name ) + { + tag = t4openLow(d.dat(), IntPtr.Zero, name); + if (tag != IntPtr.Zero) + { + data = d.dat() ; + code4 = d.cod() ; + } + else + { + data = IntPtr.Zero; + code4 = IntPtr.Zero; + } + } + public void open( Data4 d, Index4 i, string name ) + { + tag = t4openLow( d.dat(), i.idx(), name ) ; + if (tag != IntPtr.Zero) + { + data = d.dat() ; + code4 = d.cod() ; + } + else + { + data = IntPtr.Zero; + code4 = IntPtr.Zero; + } + } + public int seekN( string seekValue, short len, short doDataPosition ) + { + return t4seekN( tag, seekValue, len, doDataPosition ) ; + } + public int seekUnicodeN( string seekValue, short len, short doDataPosition ) + { + return t4seekNW( tag, seekValue, len, doDataPosition ) ; + } + public short unique + { + set + { + t4uniqueSet( tag, value ) ; + } + get + { + return t4unique( tag ) ; + } + } + } ; + + + public class Field4 : Error4 + { + private IntPtr field ; + private IntPtr db ; + + private const int r4cdx = 200 ; + + [DllImport("c4dll.dll")] + private static extern int code4indexFormat( IntPtr code4 ) ; + [DllImport("c4dll.dll")] + private static extern int d4lockTest( IntPtr data4, [MarshalAs(UnmanagedType.I4)] int recNo, [MarshalAs(UnmanagedType.I4)] int lockType ) ; + [DllImport("c4dll.dll")] + private static extern byte d4versionCB( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern void f4assignBytesW( IntPtr field4, [MarshalAs(UnmanagedType.LPArray)] byte[] val, [MarshalAs(UnmanagedType.I4)] int len ) ; + [DllImport("c4dll.dll")] + private static extern void f4assignCurrency( IntPtr field4, [MarshalAs(UnmanagedType.LPStr)] string val ) ; + [DllImport("c4dll.dll")] + private static extern void f4assignDateTime( IntPtr field4, [MarshalAs(UnmanagedType.LPStr)] string val ) ; + [DllImport("c4dll.dll")] + private static extern void f4assignDouble( IntPtr field4, [MarshalAs(UnmanagedType.R8)] double val ) ; + [DllImport("c4dll.dll")] + private static extern void f4assignField( IntPtr fieldTo, IntPtr fieldFrom ) ; + [DllImport("c4dll.dll")] + private static extern void f4assignN( IntPtr field4, [MarshalAs(UnmanagedType.LPStr)] string val, [MarshalAs(UnmanagedType.U4)] uint len ) ; + [DllImport("c4dll.dll")] + private static extern void f4assignNotNull( IntPtr field4 ) ; + [DllImport("c4dll.dll")] + private static extern void f4assignNull( IntPtr field4 ) ; + [DllImport("c4dll.dll")] + private static extern void f4assignInt( IntPtr field4, [MarshalAs(UnmanagedType.I4)] int val ) ; + [DllImport("c4dll.dll")] + private static extern void f4assignUnicode( IntPtr field4, [MarshalAs(UnmanagedType.LPWStr)] string val ) ; + [DllImport("c4dll.dll")] + private static extern void f4bytesW( IntPtr field4, [MarshalAs(UnmanagedType.LPArray)] byte[] val, [MarshalAs(UnmanagedType.I4)] int len ) ; + [DllImport("c4dll.dll")] /* LY 2002/09/25 : replaced f4currency() */ + private static extern void f4currencyW( IntPtr field4, [MarshalAs(UnmanagedType.I2)] short numDec, StringBuilder buff ) ; + [DllImport("c4dll.dll")] + private static extern char f4char( IntPtr field4 ) ; + [DllImport("c4dll.dll")] /* LY 2002/09/25 : replaced f4dateTime() */ + private static extern void f4dateTimeW( IntPtr field4, StringBuilder buff ) ; + [DllImport("c4dll.dll")] + private static extern double f4double( IntPtr field4 ) ; + [DllImport("c4dll.dll")] + private static extern int f4int( IntPtr field4 ) ; + [DllImport("c4dll.dll")] + private static extern int f4number( IntPtr field4 ) ; + [DllImport("c4dll.dll")] /* LY 2002/09/25 : replaced f4str() */ + private static extern void f4strW( IntPtr field4, byte[] buff ) ; + [DllImport("c4dll.dll")] // LY Jun 23/04 : replaced f4strUnicode() + private static extern void f4strUnicodeW( IntPtr field4, [MarshalAs(UnmanagedType.LPWStr)] string buff ) ; + [DllImport("c4dll.dll")] + private static extern int f4true( IntPtr field4 ) ; + + public IntPtr cod() { return code4 ; } + public IntPtr dat() { return db ; } + public IntPtr fld() { return field ; } + + // AS Feb 23/06 - also support as an int...makes conversion avoidance (d4fieldNumber returns int) + public Field4( Data4 d, int j ) + { + field = d4fieldJ( d.dat(), (short)j ) ; + if (field != IntPtr.Zero) + { + db = d.dat() ; + code4 = d.cod() ; + } + } + public Field4( Data4 d, short j ) + { + field = d4fieldJ( d.dat(), j ) ; + if ( field != IntPtr.Zero ) + { + db = d.dat() ; + code4 = d.cod() ; + } + } + public Field4( Data4 d, string name ) + { + field = d4field( d.dat(), name ) ; + if (field != IntPtr.Zero) + { + db = d.dat() ; + code4 = d.cod() ; + } + } + public Field4( ref Field4 f ) + { + field = d4fieldJ( f.dat(), (short)f.number() ) ; + if (field != IntPtr.Zero) + { + db = f.dat() ; + code4 = f.code4 ; + } + } + + /* not allowed to overload int and double -- added 'get" */ + public char getChar() { return f4char( field ) ; } + public int getInt() { return f4int( field ) ; } + public double getDouble() { return f4double(field) ; } + + public void assign( string data ) { f4assignN( field, data, (uint)data.Length ) ; } + public void assign( string data, uint len ) { f4assignN( field, data, len ) ; } + public void assignBytes( byte[] data, int len ) { f4assignBytesW( field, data, len ) ; } + public void assignCurrency( string data ) { f4assignCurrency( field, data ) ; } + public void assignDateTime( string data ) { f4assignDateTime( field, data ) ; } + public void assignDouble( double data ) { f4assignDouble( field, data ) ; } + public void assignField( ref Field4 f ) { f4assignField( field, f.fld() ) ; } + public void assignInt( int data ) { f4assignInt( field, data ) ; } + public void assignNull() { f4assignNull( field ) ; } + public void assignUnicode( string str ) { f4assignUnicode( field, str ) ; } + public void bytes( byte[] data, int len ) { f4bytesW( field, data, len ) ; } + public void changed() + { + if (field == IntPtr.Zero) + throwError( e4struct, E61203 ); + else + d4changed( db, 1 ) ; + if ( d4versionCB( db ) == 0x30 ) + f4assignNotNull( field ) ; + } + public Data4 data() + { + Data4 dt = new Data4() ; + + if (field == IntPtr.Zero) + throwError( e4struct, 61204 ) ; + else + dt = new Data4( db ) ; + + return dt ; + } + + public string currency( short numDec ) + { + StringBuilder buff = new StringBuilder( 20 ) ; + f4currencyW( field, numDec, buff ) ; + return buff.ToString(0, Math.Min(20, buff.Length)).TrimEnd('\0'); + } + public string dateTime() + { + StringBuilder buff = new StringBuilder( 21 ) ; + f4dateTimeW( field, buff ) ; + return buff.ToString(0, Math.Min(20, buff.Length)).TrimEnd('\0'); // CS 2010/08/10 + } + public int decimals() { return f4decimals( field ) ; } + public int init( Data4 d, string name ) + { + field = d4field( d.dat(), name ) ; + if (field != IntPtr.Zero) + { + db = d.dat() ; + code4 = d.cod() ; + return 0 ; + } + else + { + db = IntPtr.Zero; + code4 = IntPtr.Zero; + return -1 ; + } + } + public int init( Data4 d, short j ) + { + field = d4fieldJ( d.dat(), j ) ; + if (field != IntPtr.Zero) + { + db = d.dat() ; + code4 = d.cod() ; + return 0 ; + } + else + { + db = IntPtr.Zero; + code4 = IntPtr.Zero; + return -1 ; + } + } + + public short isBinaryField() + { + switch ( f4type( field ) ) + { + case r4int: + case r4double: + case r4currency: + case r4dateTime: + /*case r5i2: + case r5ui2: + case r5ui4: + case r5i8: + case r5ui8:*/ + return 1 ; + default: + break ; + } + return 0; + } + + public int isNull() { return f4null( field ) ; } + public int isValid() { return (field != IntPtr.Zero ? 1 : 0); } + public int isTrue() { return f4true( field ) ; } + public uint len() { return f4len( field ) ; } + public uint len1() { return f4len( field ) ; } + public int lockCheck() + { + if ( code4accessMode( code4, -5 ) != OPEN4DENY_NONE) + return r4success ; + if ( c4getLockEnforce( code4 ) == 0 || d4recNoLow( db ) <= 0 ) + return r4success ; + // Check to see if the record is locked. + if ( d4lockTest( db, d4recNoLow( db ), lock4write ) != 0 ) + return r4success ; + return throwError( e4lock, E60201 ) ; + } + + public string name() + { + /* LY 2002/09/24 : .NET corrupting FIELD4 struct when using + f4name() (requires calling ::name() on >6 fields to appear) */ + StringBuilder nameBuff = new StringBuilder( 10 ) ; + f4nameW( field, nameBuff ) ; + if ( nameBuff.Length < 10 ) + return nameBuff.ToString() ; + else + return nameBuff.ToString( 0, 10 ) ; + } + + public int number() { return f4number( field ) ; } + + public char type() { return f4type( field ) ; } + public string str() + { + int tempLen = (int) this.len() ; + byte[] strBuff = new byte[tempLen]; + switch ( f4type( field ) ) + { + case r4int: + int ival = f4int( field ) ; + return ival.ToString() ; + case r4currency: + if ( code4indexFormat( code4 ) == r4cdx ) + { + StringBuilder buff = new StringBuilder( 20 ) ; + f4currencyW( field, 2, buff ) ; + return buff.ToString() ; + } + else + { + f4strW( field, strBuff ) ; + return System.Text.Encoding.Default.GetString(strBuff); + } + case r4dateTime: + if ( code4indexFormat( code4 ) == r4cdx ) + { + StringBuilder buff = new StringBuilder( 16 ) ; + f4dateTimeW( field, buff ) ; + return buff.ToString() ; + } + else + { + f4strW( field, strBuff ) ; + return System.Text.Encoding.Default.GetString(strBuff); + } + case r4double: + if ( code4indexFormat( code4 ) == r4cdx ) + { + double dval = f4double( field ) ; + return dval.ToString() ; + } + else + { + f4strW( field, strBuff ) ; + return System.Text.Encoding.Default.GetString(strBuff); + } + case r4unicode: + // CS 2006/12/12 Trim trailing nulls. + if ( code4indexFormat( code4 ) == r4cdx ) + { + String buff = new String( ' ', tempLen / 2 + tempLen % 2 ) ; + f4strUnicodeW( field, buff ) ; + return buff.TrimEnd('\0') ; + } + else + { + f4strW( field, strBuff ) ; + return System.Text.Encoding.Default.GetString(strBuff); + } + default : + f4strW( field, strBuff ) ; + return System.Text.Encoding.Default.GetString(strBuff); + } + } + + } ; + + + public class Field4info : Error4 + { + private IntPtr fldInfo ; + private int fldInfoSize ; + + [DllImport("c4dll.dll")] + private static extern IntPtr f4infoAdd( + IntPtr code4, + IntPtr fldInfo, + [MarshalAs(UnmanagedType.I4)] int fldInfoSize, + [MarshalAs(UnmanagedType.LPStr)] string name, + [MarshalAs(UnmanagedType.U2)] char type, + [MarshalAs(UnmanagedType.I4)] int len, + [MarshalAs(UnmanagedType.I4)] int dec, + [MarshalAs(UnmanagedType.I4)] int nulls ) ; + [DllImport("c4dll.dll")] + private static extern IntPtr f4infoInit( + IntPtr code4, + [MarshalAs(UnmanagedType.LPStr)] string name, + [MarshalAs(UnmanagedType.U2)] char type, + [MarshalAs(UnmanagedType.I4)] int len, + [MarshalAs(UnmanagedType.I4)] int dec, + [MarshalAs(UnmanagedType.I4)] int nulls ) ; + [DllImport("c4dll.dll")] + private static extern int f4infoDel( + IntPtr code4, + IntPtr fldInfo, + [MarshalAs(UnmanagedType.I4)] int fldInfoSize, + [MarshalAs(UnmanagedType.I4)] int fldNum ) ; + [DllImport("c4dll.dll")] + private static extern int f4infoFree( + IntPtr fldInfo, + [MarshalAs(UnmanagedType.I4)] int fldInfoSize ) ; + [DllImport("c4dll.dll")] + private static extern void f4infoName( + IntPtr code4, + IntPtr fldInfo, + [MarshalAs(UnmanagedType.I4)] int fldNum, + StringBuilder buff) ; + + public Field4info( ref Code4 code ) + { + code4 = code.cod() ; + fldInfo = IntPtr.Zero; + fldInfoSize = 0 ; + } + + public Field4info( Data4 d ) + { + if (d.dat() == IntPtr.Zero) + { + Error4 err = new Error4() ; + err.throwError( Error4.e4struct, Error4.E60282 ) ; + } + fldInfo = IntPtr.Zero; + fldInfoSize = 0 ; + code4 = d.cod() ; + add( d ) ; + } + + ~Field4info() + { + if (fldInfo != IntPtr.Zero) + free() ; + } + public int add( string name, char type, int len, int dec, int options ) + { + IntPtr temp = f4infoAdd( code4, fldInfo, fldInfoSize, name, type, len, dec, options ) ; + if (temp != IntPtr.Zero) + { + fldInfo = temp ; + fldInfoSize++ ; + return 0 ; + } + else + return -1 ; + } + public int add( Field4 field) + { + return add( field.name(), field.type(), (int)field.len(), field.decimals(), (ushort)field.isNull() ) ; + } + public int del( string alias ) + { + StringBuilder nameBuff = new StringBuilder( 10 ) ; + + for( int i = 0 ; i < fldInfoSize ; i++ ) + { + f4infoName( code4, fldInfo, i, nameBuff ) ; + if ( nameBuff.ToString().ToUpper() == alias.ToUpper() ) + { + del( i ) ; + return 0 ; + } + } + error( e4fieldName, E60281, alias, "", "" ) ; + return -1 ; + } + public int add( Data4 data) + { + IntPtr f ; + short i, numFields ; + //char[] temp ; + /* LY 2002/09/24 : changed from string */ + StringBuilder currName = new StringBuilder( 10 ) ; + + numFields = d4numFields( data.dat() ) ; + for( i = 1 ; i <= numFields ; i++ ) + { + f = d4fieldJ( data.dat(), i ) ; + f4nameW( f, currName ) ; /* LY 2002/09/24 : changed from f4name() */ + /* LY 2002/09/24 : added ::toString() */ + if ( add( currName.ToString(), f4type( f ), (int)f4len( f ), + f4decimals(f), (ushort)f4null( f ) ) < 0 ) + return -1 ; + } + return 0 ; + } + + public int del( int index ) + { + if( index >= fldInfoSize || index < 0 ) + { + throwError( e4parm, E60281 ) ; + return -1 ; + } + + if ( f4infoDel( code4, fldInfo, fldInfoSize, index ) == 0 ) + { + fldInfoSize-- ; + return 0 ; + } + else + return -1 ; + } + + public void free() + { + f4infoFree( fldInfo, fldInfoSize ) ; + fldInfo = IntPtr.Zero; + } + + public int numFields() { return fldInfoSize ; } + public IntPtr fields() { return fldInfo ; } + } ; + + public class Tag4info : Error4 + { + [DllImport("c4dll.dll")] + private static extern IntPtr d4nextIndex(IntPtr code4, IntPtr data4, IntPtr index4); + [DllImport("c4dll.dll")] + private static extern IntPtr i4tagInfo(IntPtr index4) ; + [DllImport("c4dll.dll")] + private static extern IntPtr t4infoAdd( + IntPtr code4, + IntPtr tag4info, + [MarshalAs(UnmanagedType.I4)] int size, + [MarshalAs(UnmanagedType.LPStr)] string name, + [MarshalAs(UnmanagedType.LPStr)] string expr, + [MarshalAs(UnmanagedType.LPStr)] string filter, + [MarshalAs(UnmanagedType.I2)] short unique, + [MarshalAs(UnmanagedType.U2)] ushort desc ) ; + [DllImport("c4dll.dll")] + private static extern int t4infoDel( + IntPtr code4, + IntPtr tag4info, + [MarshalAs(UnmanagedType.I4)] int size, + [MarshalAs(UnmanagedType.I4)] int index ) ; + [DllImport("c4dll.dll")] + private static extern ushort t4infoDescend( + IntPtr code4, + IntPtr tag4info, + [MarshalAs(UnmanagedType.I4)] int index ) ; + [DllImport("c4dll.dll")] + private static extern void t4infoExpr( + IntPtr code4, + IntPtr tag4info, + [MarshalAs(UnmanagedType.I4)] int index, + StringBuilder buff ) ; + [DllImport("c4dll.dll")] + private static extern void t4infoFilter( + IntPtr code4, + IntPtr tag4info, + [MarshalAs(UnmanagedType.I4)] int index, + StringBuilder buff ) ; + [DllImport("c4dll.dll")] + private static extern void t4infoFree( + IntPtr tag4info, + [MarshalAs(UnmanagedType.I4)] int size ) ; + [DllImport("c4dll.dll")] + private static extern void t4infoFreeInternal( + IntPtr tag4info); + [DllImport("c4dll.dll")] + private static extern void t4infoName( + IntPtr code4, + IntPtr tag4info, + [MarshalAs(UnmanagedType.I4)] int index, + StringBuilder buff ) ; + [DllImport("c4dll.dll")] + private static extern int t4infoSize( + IntPtr code4, + IntPtr tag4info ) ; + [DllImport("c4dll.dll")] + private static extern short t4infoUnique( + IntPtr code4, + IntPtr tag4info, + [MarshalAs(UnmanagedType.I4)] int index ) ; + [DllImport("c4dll.dll")] + private static extern IntPtr t4tagInfo( + IntPtr tag4); + + private IntPtr tagInfo ; + private int tagInfoSize ; + + public Tag4info( Code4 code ) + { + tagInfoSize = 0 ; + code4 = code.cod() ; + tagInfo = IntPtr.Zero ; + } + public Tag4info( Data4 d ) + { + IntPtr index4ptr = IntPtr.Zero; + if (d.dat() == IntPtr.Zero) + throwError( e4struct, E60983 ) ; + + tagInfoSize = 0 ; + code4 = d.cod() ; + tagInfo = IntPtr.Zero; + + for( index4ptr = d4nextIndex( code4, d.dat(), index4ptr ) ; + index4ptr != IntPtr.Zero; + index4ptr = d4nextIndex( code4, d.dat(), index4ptr ) ) + { + addIndex_tags( index4ptr ) ; + } + } + public Tag4info( Index4 index ) + { + if (index.idx() == IntPtr.Zero) + throwError( e4struct, E60983 ) ; + + tagInfoSize = 0 ; + code4 = index.cod() ; + tagInfo = IntPtr.Zero; + + addIndex_tags( index.idx() ) ; + } + ~Tag4info() + { + if (tagInfo != IntPtr.Zero) + free() ; + } + + public int add( string name, string expr, string filter, short uniq, short desc ) + { + IntPtr temp = t4infoAdd( code4, tagInfo, tagInfoSize, name, expr, filter, uniq, (ushort)desc ) ; + + if (temp != IntPtr.Zero) + { + tagInfo = temp ; + tagInfoSize++ ; + return 0 ; + } + + return -1 ; + } + + public int add( Tag4 tag ) + { + IntPtr tagInfoInternal ; + int i = 0 ; + string name ; + //string expr, filter ; + StringBuilder tempName = new StringBuilder( 10 ) ; + StringBuilder tempExpr = new StringBuilder( 512 ) ; + StringBuilder tempFilter = new StringBuilder( 512 ) ; + + if ( tag.isValid() == 0 ) + { + throwError( e4struct, E60991 ) ; + return -1 ; + } + + tagInfoInternal = t4tagInfo( tag.tg() ) ; + if (tagInfoInternal == IntPtr.Zero) + { + throwError( e4struct, E60991 ) ; + return -1 ; + } + + name = tag.alias() ; + t4infoName( code4, tagInfoInternal, i, tempName ) ; + while( name.ToUpper() != tempName.ToString().ToUpper() + || i < tagInfoSize ) + { + i++ ; + t4infoName( code4, tagInfoInternal, i, tempName ) ; + } + + t4infoExpr( code4, tagInfoInternal, i, tempExpr ) ; + t4infoFilter( code4, tagInfoInternal, i, tempFilter ) ; + add( name, tempExpr.ToString(), tempFilter.ToString(), t4infoUnique( code4, tagInfoInternal, i), + (short)t4infoDescend( code4, tagInfoInternal, i ) ) ; + t4infoFreeInternal( tagInfoInternal ) ; + + return 0 ; + } + + private int addIndex_tags( IntPtr index4 ) + { + IntPtr tagInfoInternal; + int i, numTags ; + // string currName, currExpr, currFilter ; + StringBuilder tempName = new StringBuilder( 10 ) ; + StringBuilder tempExpr = new StringBuilder( 512 ) ; + StringBuilder tempFilter = new StringBuilder( 512 ) ; + + tagInfoInternal = i4tagInfo( index4 ) ; + if (tagInfoInternal == IntPtr.Zero) + throwError( e4struct, E60984 ) ; + numTags = t4infoSize( code4, tagInfoInternal ) ; + for ( i = 0 ; i < numTags ; i++ ) + { + t4infoName( code4, tagInfoInternal, i, tempName ) ; + t4infoExpr( code4, tagInfoInternal, i, tempExpr ) ; + t4infoFilter( code4, tagInfoInternal, i, tempFilter ) ; + add( tempName.ToString(), tempExpr.ToString(), tempFilter.ToString(), + t4infoUnique( code4, tagInfoInternal, i ), + (short)t4infoDescend( code4, tagInfoInternal, i ) ) ; + } + t4infoFreeInternal( tagInfoInternal ) ; + + return 0 ; + } + + public int del( int index ) + { + if (code4 == IntPtr.Zero) + { + throwError( e4struct, E60982 ) ; + return -1 ; + } + if ( index >= t4infoSize( code4, tagInfo ) || index < 0 ) + { + throwError( e4parm, E60982 ) ; + return -1 ; + } + if ( t4infoDel( code4, tagInfo, tagInfoSize, index ) == 0 ) + { + tagInfoSize-- ; + return 0 ; + } + else + return -1 ; + } + public int del( string name ) + { + int i ; + string temp = name.ToUpper() ; + StringBuilder tempName = new StringBuilder( 10 ) ; + temp.PadRight( 10, ' ' ) ; + + for( i = 0 ; i < tagInfoSize ; i++ ) + { + t4infoName( code4, tagInfo, i, tempName ) ; + if ( temp.Substring( 0, 10 ).ToUpper() == tempName.ToString().ToUpper() ) + { + del( i ) ; + return 0 ; + } + } + + error( e4parm, E60982, name, "", "" ) ; + return -1 ; + } + + public void free() + { + t4infoFree( tagInfo, tagInfoSize ) ; + tagInfo = IntPtr.Zero; + } + public int numTags() { return tagInfoSize ; } + public IntPtr tags() { return tagInfo ; } + } ; + + + public class Field4memo : Error4 + { + private IntPtr field ; + private IntPtr db ; + private int currentMemoPos, finalMemoLen ; + + [DllImport("c4dll.dll")] + private static extern void f4memoAssign( + IntPtr field4, + [MarshalAs(UnmanagedType.LPStr)] string val + ) ; + [DllImport("c4dll.dll")] + private static extern int f4memoAssignBytesW( + IntPtr field4, + [MarshalAs(UnmanagedType.LPArray)] byte[] val, + [MarshalAs(UnmanagedType.U4)] uint len + ) ; + [DllImport("c4dll.dll")] + private static extern void f4memoAssignN( + IntPtr field4, + [MarshalAs(UnmanagedType.LPStr)] string val, + [MarshalAs(UnmanagedType.U4)] uint len + ) ; + [DllImport("c4dll.dll")] + private static extern void f4memoAssignUnicode( + IntPtr field4, + [MarshalAs(UnmanagedType.LPWStr)] string val + ) ; + [DllImport("c4dll.dll")] + private static extern uint f4memoBytesW( + IntPtr field4, + [MarshalAs(UnmanagedType.LPArray)] byte[] val, + [MarshalAs(UnmanagedType.U4)] uint len + ) ; + [DllImport("c4dll.dll")] + private static extern void f4memoChanged( + IntPtr field4 + ) ; + [DllImport("c4dll.dll")] + private static extern void f4memoFree( + IntPtr field4 + ) ; + [DllImport("c4dll.dll")] + private static extern uint f4memoLen( + IntPtr field4 + ) ; + [DllImport("c4dll.dll")] + private static extern void f4memoReadW( + IntPtr field4, + [MarshalAs(UnmanagedType.U4)] uint readLen, + [MarshalAs(UnmanagedType.U4)] uint startPos, + StringBuilder buff + ) ; + [DllImport("c4dll.dll")] + private static extern int f4memoSetLenW( + IntPtr field4, + [MarshalAs(UnmanagedType.U4)] uint newLen + ) ; + [DllImport("c4dll.dll")] /* LY 2002/09/25 : replaced f4memoStr() */ + private static extern void f4memoStrW( + IntPtr field4, + byte[] buff + ); + [DllImport("c4dll.dll")] /* LY 2002/09/25 : replaced f4memoStr() */ + private static extern int f4memoReadPart( + IntPtr field4, + byte[] buff, + [MarshalAs(UnmanagedType.I4)] int readLen, + [MarshalAs(UnmanagedType.I4)] int startPos + ); + [DllImport("c4dll.dll")] + private static extern void f4memoUnicodeStrW( + IntPtr field4, + [MarshalAs(UnmanagedType.LPWStr)] string buff + ) ; + [DllImport("c4dll.dll")] + private static extern int f4memoWritePart( + IntPtr field4, + [MarshalAs(UnmanagedType.LPStr)] string dataToWrite, + [MarshalAs(UnmanagedType.U4)] uint dataLen, + [MarshalAs(UnmanagedType.I4)] int memoLen, + [MarshalAs(UnmanagedType.I4)] int offset + ) ; + [DllImport("c4dll.dll")] + private static extern int f4memoWriteFinish( + IntPtr data4 + ) ; + + public IntPtr cod() { return code4 ; } + public IntPtr dat() { return db ; } + public IntPtr fld() { return field ; } + + public Field4memo( Data4 d, short i ) + { + field = d4fieldJ( d.dat(), i ) ; + if (field != IntPtr.Zero) + { + db = d.dat() ; + code4 = d.cod() ; + } + } + public Field4memo( Data4 d, string name ) + { + field = d4field( d.dat(), name ) ; + if (field != IntPtr.Zero) + { + db = d.dat() ; + code4 = d.cod() ; + } + } + public Field4memo( Field4 f ) + { + field = f.fld() ; + if (field != IntPtr.Zero) + { + db = f.dat() ; + code4 = f.cod() ; + } + } + public Field4memo( Field4memo f ) + { + field = f.fld() ; + if (field != IntPtr.Zero) + { + db = f.dat() ; + code4 = f.cod() ; + } + } + + public void assign( string data ) { f4memoAssign( field, data ) ; } + public void assign( string data, uint len ) { f4memoAssignN( field, data, len ) ; } + public int assignBytes( byte[] data, uint len ) { return f4memoAssignBytesW( field, data, len ) ; } + public uint bytes( byte[] data, uint len ) { return f4memoBytesW( field, data, len ) ; } + public void changed() + { + if (field == IntPtr.Zero) + throwError( e4struct, E60523 ) ; + else + f4memoChanged( field ) ; + } + + public void free() { f4memoFree( field ) ; } + public int isNull() { return f4null( field ) ; } + public int isValid() { return (field != IntPtr.Zero ? 1 : 0); } + public uint len() { return f4memoLen( field ) ; } + public int setLen( uint newLen ) + { + if (field == IntPtr.Zero) + return throwError( e4struct, E60525 ) ; + else + return f4memoSetLenW( field, newLen ) ; + } + + public void assignUnicode( string str ) { f4memoAssignUnicode( field, str ) ; } + + // char S4PTR*ptr() { return f4memoPtr( field ) ; } + // char const S4PTR*ptr1() const { return f4memoPtr( field ) ; } + public string str() + { + int tempLen = (int)this.len(); + byte[] buff = new byte[tempLen]; + f4memoStrW(field, buff); + return System.Text.Encoding.Default.GetString(buff); + } + + public string str(int readLen, int startPos) + { + byte[] buff = new byte[readLen]; + int bytesRead = f4memoReadPart(field, buff, readLen, startPos); + return System.Text.Encoding.Default.GetString(buff); + } + + public string strUnicode() + { + int tempLen = (int)this.len() ; + string buff = new String( ' ', tempLen / 2 + tempLen % 2 ) ; + f4memoUnicodeStrW( field, buff ) ; + return buff ; + } + + // AS 03/29/00 Added partial read/write support independent of normal mechanism + public string read( uint readLen, uint startPos ) + { + StringBuilder buff = new StringBuilder( (int)readLen + 1 ) ; + f4memoReadW( field, readLen, startPos, buff ) ; + return buff.ToString() ; + } + public int write( string ptrToData, uint lenToWrite ) + { + int rc = f4memoWritePart( field, ptrToData, lenToWrite, finalMemoLen, currentMemoPos ) ; + currentMemoPos += (int)lenToWrite ; + return rc ; + } + public void writeStart( int memoLen ) { currentMemoPos = 0 ; finalMemoLen = memoLen ; } + public int writeFinish() { return f4memoWriteFinish( db ) ; } + } ; + + /* public class Date4 : Error4 + { + private int dt ; // C char pointer + private int result ; // for ::format(), ::timeNow() + + [DllImport("c4dll.dll")] + private static extern int date4alloc( [MarshalAs(UnmanagedType.LPStr)]UCT int code4, [MarshalAs(UnmanagedType.LPStr)] string pict ) ; + [DllImport("c4dll.dll")] + private static extern void date4assign( int ptr, [MarshalAs(UnmanagedType.I4)] int d ) ; + [DllImport("c4dll.dll")] + private static extern void date4assignW( int ptr, [MarshalAs(UnmanagedType.LPStr)] string d ) ; + [DllImport("c4dll.dll")] + private static extern string date4cdow( int ptr ) ; + [DllImport("c4dll.dll")] + private static extern string date4cmonth( int ptr ) ; + [DllImport("c4dll.dll")] + private static extern int date4day( int ptr ) ; + [DllImport("c4dll.dll")] + private static extern int date4dow( int ptr ) ; + [DllImport("c4dll.dll")] + private static extern void date4init( int ptr, [MarshalAs(UnmanagedType.LPStr)] string d, [MarshalAs(UnmanagedType.LPStr)] string pict ) ; + [DllImport("c4dll.dll")] + private static extern double date4formatMdx( int ptr ) ; + [DllImport("c4dll.dll")] + private static extern string date4formatW( int ptr, int result, [MarshalAs(UnmanagedType.LPStr)] string pict ) ; + [DllImport("c4dll.dll")] + private static extern int date4long( int ptr ) ; + [DllImport("c4dll.dll")] + private static extern int date4month( int ptr ) ; + [DllImport("c4dll.dll")] + private static extern string date4timeNowW( int ptr ) ; + [DllImport("c4dll.dll")] + private static extern void date4today( int ptr ) ; + [DllImport("c4dll.dll")] + private static extern int date4year( int ptr ) ; + + public Date4() + { + dt = date4alloc( code4, "CCYYMMDD" ) ; + } + ~Date4() + { + if ( dt != 0 ) + u4free( dt ) ; + } + public Date4( int l ) + { + dt = date4alloc( code4, "CCYYMMDD" ) ; + if ( dt != 0 ) + date4assign(dt, l) ; + } + public Date4( string d ) + { + dt = date4alloc( code4, "CCYYMMDD" ) ; + if ( dt != 0 ) + date4assignW( dt, d ) ; + } + public Date4( string d, string format ) + { + dt = date4alloc( code4, "CCYYMMDD" ) ; + if ( dt != 0 ) + date4init( dt, d, format ) ; + } + public Date4( Date4 s ) + { + dt = date4alloc( code4, "CCYYMMDD" ) ; + if ( dt != 0 ) + date4assign( dt, s.getInt() ) ; + } + // can't overload Date4 &operator =( const Str4 &s ) { assign( s ) ; return *this ; } + public int getInt() + { + if ( dt != 0 ) + return date4long( dt ) ; + else + return 0 ; + } + public double getdouble() + { + if ( dt != 0 ) + return date4formatMdx( dt ) ; + else + return 1.0E100 ; + } + public static int operator +( Date4 d, int l ) + { + if ( d.dt != 0 ) + return ( date4long( d.dt )+l ) ; + else + return 0 ; + } + public static int operator -( Date4 d, int l ) + { + if ( d.dt != 0 ) + return ( date4long( d.dt )-l ) ; + else + return 0 ; + } + // can't overload void operator +=( const long l ) { date4assign( ptr(), date4long( ptr() )+l ) ; } + public void add( int l ) + { + if ( dt != 0 ) + date4assign( dt, date4long( dt ) + l ) ; + } + // " " void operator -=( const long l ) { date4assign( ptr(), date4long( ptr() )-l ) ; } + public void subtract( int l ) + { + if ( dt != 0 ) + date4assign( dt, date4long( dt ) - l ) ; + } + + // problem: unary operators ++ and -- must return same type as parameter, + // but C++ Date ++ and -- return long values + // public static Date4 operator ++( Date4 d ) { d.add( 1 ) ; return d.getInt() ; } + // public static Date4 operator --( Date4 d ) { d.subtract( 1 ) ; return d.getInt() ; } + public void assign( int l ) + { + if ( dt != 0 ) + date4assign( dt , l ) ; + } + public void assign( string d ) + { + if ( dt != 0 ) + date4assignW( dt, d ) ; + } + public void assign( string p, string pict ) + { + if ( dt != 0 ) + date4init( dt, p, pict ) ; + } + // void assign( Str4 &s ) { Str4::assign( s ) ; } + public string cdow() + { + if ( dt != 0 ) + return date4cdow( dt ) ; + else + return " " ; + } + public string cmonth() + { + if ( dt != 0 ) + return date4cmonth( dt ) ; + else + return " " ; + } + public int day() + { + if ( dt != 0 ) + return date4day( dt ) ; // Day of month ( 1-31 ) + else + return 0 ; + } + public int dow() + { + if ( dt != 0 ) + return date4dow( dt ) ; // Day of week ( 1-7 ) + else + return 0 ; + } + public string format( string pict ) + { + result = date4alloc( cb, pict ) ; + if ( result != 0 ) + { + string temp = date4formatW( dt, result, pict ) ; + u4free( result ) ; + return temp ; + } + else + return " " ; + } + public int isLeap() + { + if ( dt != 0 ) + { + int y = date4year( dt ) ; + return ( y%4 == 0 && y%100 != 0 || y%400 == 0 ) ? 1 : 0 ; + } + else + return -1 ; + } + // unsigned long len() const { return 8 ; } + // unsigned long len1() const { return 8 ; } + public int month() + { + if ( dt != 0 ) + return date4month( dt ) ; // Month of year ( 1-12 ) + else + return 0 ; + } + public string timeNow() + { + result = date4alloc( cb, "HH:MM:SS" ) ; + if ( result != 0 ) + { + string temp = date4timeNowW( result ) ; + u4free( result ) ; + return temp ; + } + else + return " " ; + } + public void today() { date4today( dt ) ; } + public int year() { return date4year( dt ) ; } + // char S4PTR*ptr() { return dt ; } + // char const S4PTR*ptr1() const { return dt ; } + } ;*/ + + public class Relate4 : Error4 + { + [DllImport("c4dll.dll")] + private static extern IntPtr relate4createSlave( + IntPtr relate4, + IntPtr data4, + [MarshalAs(UnmanagedType.LPStr)] string masterExpr, + IntPtr tag ); + [DllImport("c4dll.dll")] + private static extern IntPtr relate4dataCB( IntPtr relate4 ) ; + [DllImport("c4dll.dll")] + private static extern int relate4dataTag( IntPtr relate4 ) ; + [DllImport("c4dll.dll")] + private static extern int relate4doOne( IntPtr relate4 ) ; + [DllImport("c4dll.dll")] + private static extern int relate4errorAction( IntPtr relate4, int value ) ; + [DllImport("c4dll.dll")] + private static extern IntPtr relate4masterCB( IntPtr relate4 ) ; + [DllImport("c4dll.dll")] /* LY 2002/09/25 : replaced relate4masterExprCB() */ + private static extern void relate4masterExprW( IntPtr relate4, StringBuilder buff ) ; + [DllImport("c4dll.dll")] + private static extern int relate4matchLen( IntPtr relate4, int value ) ; + [DllImport("c4dll.dll")] + private static extern int relate4type( IntPtr relate4, int value ) ; + [DllImport("c4dll.dll")] + protected static extern int relate4next( ref IntPtr relate4 ) ; + + public Relate4() { relate = IntPtr.Zero; } + public Relate4( Relate4 master, Data4 slave, string masterExpr, Tag4 t ) + { relate = relate4createSlave( master.rl(), slave.dat(), masterExpr, t.tg() ) ; } + public Relate4( Relate4 r ) { relate = r.rl() ; } + public Relate4( IntPtr rel ) { relate = rel ; } + public Data4 data() + { + if ( relate != IntPtr.Zero ) + return new Data4( relate4dataCB(relate) ) ; + else + return new Data4() ; + } + public Tag4 dataTag() + { + if (relate == IntPtr.Zero) + return new Tag4() ; + + Data4 dataTemp = new Data4( relate4dataCB( relate ) ) ; + return new Tag4( dataTemp, "" ) ; + } + public int doOne() { return relate4doOne( relate ) ; } + public int errorAction( int a ) { return relate4errorAction( relate, a ) ; } + public int init( Relate4 master, Data4 slave, string masterExpr, Tag4 t ) + { + relate = relate4createSlave( master.relate, slave.dat(), masterExpr, t.tg() ) ; + code4 = slave.cod() ; + return code4errorCode( code4, -5 ) ; + } + + public int isValid() { return (relate != IntPtr.Zero ? 1 : 0); } + public Relate4 master() + { + if (relate != IntPtr.Zero) + return new Relate4( relate4masterCB(relate) ); + else + return new Relate4( ) ; + } + + public string masterExpr() + { + StringBuilder buff = new StringBuilder( 512 ) ; + relate4masterExprW( relate, buff ) ; + return buff.ToString() ; + } + + public int matchLen( int p ) { return relate4matchLen( relate, p ) ; } + public int type( int p ) { return relate4type( relate, p ) ; } + + public IntPtr rl() { return relate ; } + + protected IntPtr relate ; + } ; + + public class Relate4iterator : Relate4 + { + public Relate4iterator() { relate = IntPtr.Zero; } + public Relate4iterator( Relate4 r ) { relate = r.rl() ; } + + public int next() { return ( relate4next( ref relate ) != 2 ? 1 : 0 ) ; } + public int nextPosition() { return relate4next( ref relate ) ; } + } ; + + public class Relate4set: Relate4 + { + [DllImport("c4dll.dll")] + private static extern int relate4bottom( IntPtr relate4 ) ; + [DllImport("c4dll.dll")] + private static extern void relate4changed( IntPtr relate4 ) ; + [DllImport("c4dll.dll")] + private static extern uint relate4count( IntPtr relate4 ) ; + [DllImport("c4dll.dll")] + private static extern int relate4doAll( IntPtr relate4 ) ; + [DllImport("c4dll.dll")] + private static extern int relate4eof( IntPtr relate4 ) ; + [DllImport("c4dll.dll")] + private static extern int relate4free( IntPtr relate4, int value ) ; + [DllImport("c4dll.dll")] + private static extern IntPtr relate4init( IntPtr data4 ) ; + [DllImport("c4dll.dll")] + private static extern int relate4lockAdd( IntPtr relate4 ) ; + [DllImport("c4dll.dll")] + private static extern int relate4optimizeable( IntPtr relate4 ) ; + [DllImport("c4dll.dll")] + private static extern int relate4querySet( IntPtr relate4, [MarshalAs(UnmanagedType.LPStr)] string query ) ; + [DllImport("c4dll.dll")] + private static extern int relate4skip( IntPtr relate4, [MarshalAs(UnmanagedType.I4)] int l ) ; + [DllImport("c4dll.dll")] + private static extern int relate4skipEnable( IntPtr relate4, [MarshalAs(UnmanagedType.I4)] int doEnable ) ; + [DllImport("c4dll.dll")] + private static extern int relate4sortSet( IntPtr relate4, [MarshalAs(UnmanagedType.LPStr)] string sort ) ; + [DllImport("c4dll.dll")] + private static extern int relate4top( IntPtr relate4 ) ; + + public Relate4set( Data4 data ) { relate = relate4init( data.dat() ) ; } + public Relate4set() { relate = IntPtr.Zero; } + public Relate4set( Relate4 r ) { relate = r.rl() ; } + + public int bottom() { return relate4bottom( relate ) ; } + public void changed() { relate4changed( relate ) ; } + public uint count() { return relate4count( relate ) ; } + public int doAll() { return relate4doAll( relate ) ; } + public int eof() { return relate4eof( relate ) ; } + public int free() { int rc = relate4free(relate, 0); relate = IntPtr.Zero; return rc; } + public int free(int p) { int rc = relate4free(relate, p); relate = IntPtr.Zero; return rc; } + public int init( Data4 data ) + { + relate = relate4init( data.dat() ) ; + code4 = data.cod() ; + return code4errorCode( code4, -5 ) ; + } + public int lockAdd() { return relate4lockAdd( relate ) ; } + public int optimizeable() { return relate4optimizeable( relate ) ; } + public int querySet( string p ) { return relate4querySet( relate, p ) ; } + public int skip( int n ) { return relate4skip( relate, n ) ; } + public int skip() { return relate4skip( relate, 1 ) ; } + public int skipEnable( int doEnable ) { return relate4skipEnable( relate, doEnable ) ; } + public int sortSet( string sort ) { return relate4sortSet( relate, sort ) ; } + public int top() { return relate4top( relate ) ; } + } ; + +} + diff --git a/interfaces/VB.NET/CodeBase.vb b/interfaces/VB.NET/CodeBase.vb new file mode 100644 index 0000000..72c3eaa --- /dev/null +++ b/interfaces/VB.NET/CodeBase.vb @@ -0,0 +1,1689 @@ +Option Strict Off +Option Explicit On + +Module CodeBase + ' codebase.vb (c)Copyright Sequiter Software Inc., 1988-2011. All rights reserved. + + 'Data Types Used by CodeBase + + Structure FIELD4INFOCB + Dim fName As Integer + Dim ftype As Short + Dim flength As Short + Dim fdecimals As Short + Dim fnulls As Short + End Structure + + Structure FIELD4INFO + Dim fName As String + Dim ftype As String + Dim flength As Short + Dim fdecimals As Short + Dim fnulls As Short + End Structure + + Structure TAG4INFOCB + Dim name As Integer + Dim expression As Integer + Dim filter_Renamed As Integer + Dim unique As Short + Dim descending As Short + End Structure + + Structure TAG4INFO + Dim name As String + Dim expression As String + Dim filter_Renamed As String + Dim unique As Short + Dim descending As Short + End Structure + + '=================================================================================== + ' + ' CODE4 Access function prototypes + ' + '=================================================================================== +#If USE_D4DLL Then + Declare Sub c4setAcceptTimeOut Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) + Declare Function code4actionCode Lib "d4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4accessMode Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Sub code4autoIncrementStart Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Double) + Declare Function code4autoOpen Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4calcCreate Lib "d4dll.dll" (ByVal c4 As Integer, ByVal expr4 As Integer, ByVal fcnName As String) As Short + Declare Sub code4calcReset Lib "d4dll.dll" (ByVal c4 As Integer) + Declare Function code4codePage Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4collatingSequence Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4collate Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4compatibility Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4compress Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4connect Lib "d4dll.dll" (ByVal c4 As Integer, ByVal serverId As String, ByVal processId As String, ByVal userName As String, ByVal password As String, ByVal protocol As String) As Short + Declare Function code4close Lib "d4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4createTemp Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4data Lib "d4dll.dll" (ByVal c4 As Integer, ByVal AliasName As String) As Integer + Declare Function code4dateFormatVB Lib "d4dll.dll" Alias "code4dateFormat" (ByVal c4 As Integer) As Integer + Declare Function code4dateFormatSet Lib "d4dll.dll" (ByVal c4 As Integer, ByVal fmt As String) As Short + Declare Function code4errCreate Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errDefaultUnique Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errorCode Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errExpr Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errFieldName Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errGo Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errSkip Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errTagName Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Sub code4exit Lib "d4dll.dll" (ByVal c4 As Integer) + Declare Function code4fileFlush Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4flush Lib "d4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4hInst Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4indexBlockSize Lib "d4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4indexBlockSizeSet Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4indexExtensionVB Lib "d4dll.dll" Alias "code4indexExtension" (ByVal c4 As Integer) As Integer + Declare Function code4hWnd Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) As Integer + Declare Function code4allocDll Lib "d4dll.dll" (ByVal dllName As String) As Integer + Declare Function code4initUndo Lib "d4dll.dll" (ByVal c4 As Integer) As Short + Declare Sub code4largeOn Lib "d4dll.dll" (ByVal c4 As Integer) + Declare Function code4lock Lib "d4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4lockAttempts Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4lockAttemptsSingle Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Sub code4lockClear Lib "d4dll.dll" (ByVal c4 As Integer) + Declare Function code4lockDelay Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) As Integer + Declare Function code4lockEnforce Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4lockFileNameVB Lib "d4dll.dll" Alias "code4lockFileName" (ByVal c4 As Integer) As Integer + Declare Function code4lockItem Lib "d4dll.dll" (ByVal c4 As Integer) As Integer + Declare Function code4lockNetworkIdVB Lib "d4dll.dll" Alias "code4lockNetworkId" (ByVal c4 As Integer) As Integer + Declare Function code4lockUserIdVB Lib "d4dll.dll" Alias "code4lockUserId" (ByVal c4 As Integer) As Integer + Declare Function code4log Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4logCreate Lib "d4dll.dll" (ByVal c4 As Integer, ByVal logName As String, ByVal userId As String) As Short + Declare Function code4logFileNameVB Lib "d4dll.dll" (ByVal c4 As Integer) As Integer + Declare Function code4logOpen Lib "d4dll.dll" (ByVal c4 As Integer, ByVal logName As String, ByVal userId As String) As Short + Declare Sub code4logOpenOff Lib "d4dll.dll" (ByVal c4 As Integer) + Declare Function code4memExpandBlock Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memExpandData Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memExpandIndex Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memExpandLock Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memExpandTag Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memSizeBlock Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) As Integer + Declare Function code4memSizeBuffer Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) As Integer + Declare Function code4memSizeMemo Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memSizeMemoExpr Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) As Integer + Declare Function code4memSizeSortBuffer Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) As Integer + Declare Function code4memSizeSortPool Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) As Integer + Declare Function code4memStartBlock Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memStartData Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memStartIndex Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memStartLock Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memStartMax Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) As Integer + Declare Function code4memStartTag Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errOff Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errOpen Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4optAll Lib "d4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4optimize Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4optStart Lib "d4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4optSuspend Lib "d4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4optimizeWrite Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4readLock Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4readOnly Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errRelate Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4safety Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4singleOpen Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4serverOS Lib "d4dll.dll" (ByVal c4 As Integer) As Integer + Declare Function code4timeout Lib "d4dll.dll" (ByVal c4 As Integer) As Integer + Declare Sub code4timeoutSet Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) + Declare Function code4tranStart Lib "d4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4tranStatus Lib "d4dll.dll" Alias "code4tranStatusCB" (ByVal c4 As Integer) As Short + Declare Function code4tranCommit Lib "d4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4tranRollback Lib "d4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4unlock Lib "d4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4unlockAuto Lib "d4dll.dll" Alias "code4unlockAutoCB" (ByVal c4 As Integer) As Short + Declare Function code4useGeneralTagsInRelate Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Sub code4unlockAutoSet Lib "d4dll.dll" Alias "code4unlockAutoSetCB" (ByVal c4 As Integer, ByVal value As Short) + Declare Sub code4verifySet Lib "d4dll.dll" (ByVal c4 As Integer, ByVal value As String) +#Else + Declare Sub c4setAcceptTimeOut Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) + Declare Function code4actionCode Lib "c4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4accessMode Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Sub code4autoIncrementStart Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Double) + Declare Function code4autoOpen Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4calcCreate Lib "c4dll.dll" (ByVal c4 As Integer, ByVal expr4 As Integer, ByVal fcnName As String) As Short + Declare Sub code4calcReset Lib "c4dll.dll" (ByVal c4 As Integer) + Declare Function code4codePage Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4collatingSequence Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4collate Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4compatibility Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4compress Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4connect Lib "c4dll.dll" (ByVal c4 As Integer, ByVal serverId As String, ByVal processId As String, ByVal userName As String, ByVal password As String, ByVal protocol As String) As Short + Declare Function code4close Lib "c4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4createTemp Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4data Lib "c4dll.dll" (ByVal c4 As Integer, ByVal AliasName As String) As Integer + Declare Function code4dateFormatVB Lib "c4dll.dll" Alias "code4dateFormat" (ByVal c4 As Integer) As Integer + Declare Function code4dateFormatSet Lib "c4dll.dll" (ByVal c4 As Integer, ByVal fmt As String) As Short + Declare Sub code4encryptFile Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) + Declare Function code4encryptInit Lib "c4dll.dll" (ByVal c4 As Integer, ByVal key As String, ByVal length As Short) As Short + Declare Function code4errCreate Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errDefaultUnique Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errorCode Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errExpr Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errFieldName Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errGo Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errSkip Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errTagName Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Sub code4exit Lib "c4dll.dll" (ByVal c4 As Integer) + Declare Function code4fileFlush Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4flush Lib "c4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4hInst Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4indexBlockSize Lib "c4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4indexBlockSizeSet Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4indexExtensionVB Lib "c4dll.dll" Alias "code4indexExtension" (ByVal c4 As Integer) As Integer + Declare Function code4hWnd Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) As Integer + Declare Function code4init Lib "c4dll.dll" Alias "code4initVB" () As Integer + Declare Function code4initUndo Lib "c4dll.dll" (ByVal c4 As Integer) As Short + Declare Sub code4largeOn Lib "c4dll.dll" (ByVal c4 As Integer) + Declare Sub code4limitKeySizeSet Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) + Declare Function code4lock Lib "c4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4lockAttempts Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4lockAttemptsSingle Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Sub code4lockClear Lib "c4dll.dll" (ByVal c4 As Integer) + Declare Function code4lockDelay Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) As Integer + Declare Function code4lockEnforce Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4lockFileNameVB Lib "c4dll.dll" Alias "code4lockFileName" (ByVal c4 As Integer) As Integer + Declare Function code4lockItem Lib "c4dll.dll" (ByVal c4 As Integer) As Integer + Declare Function code4lockNetworkIdVB Lib "c4dll.dll" Alias "code4lockNetworkId" (ByVal c4 As Integer) As Integer + Declare Function code4lockUserIdVB Lib "c4dll.dll" Alias "code4lockUserId" (ByVal c4 As Integer) As Integer + Declare Function code4log Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4logCreate Lib "c4dll.dll" (ByVal c4 As Integer, ByVal logName As String, ByVal userId As String) As Short + Declare Function code4logFileNameVB Lib "c4dll.dll" (ByVal c4 As Integer) As Integer + Declare Function code4logOpen Lib "c4dll.dll" (ByVal c4 As Integer, ByVal logName As String, ByVal userId As String) As Short + Declare Sub code4logOpenOff Lib "c4dll.dll" (ByVal c4 As Integer) + Declare Function code4memExpandBlock Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memExpandData Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memExpandIndex Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memExpandLock Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memExpandTag Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memoCompress Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Integer + Declare Function code4memSizeBlock Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) As Integer + Declare Function code4memSizeBuffer Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) As Integer + Declare Function code4memSizeMemo Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memSizeMemoExpr Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) As Integer + Declare Function code4memSizeSortBuffer Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) As Integer + Declare Function code4memSizeSortPool Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) As Integer + Declare Function code4memStartBlock Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memStartData Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memStartIndex Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memStartLock Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4memStartMax Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) As Integer + Declare Function code4memStartTag Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errOff Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errOpen Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4optAll Lib "c4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4optimize Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4optStart Lib "c4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4optSuspend Lib "c4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4optimizeWrite Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4ping Lib "c4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4readLock Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4readOnly Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4errRelate Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4safety Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4singleOpen Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Function code4serverOS Lib "c4dll.dll" (ByVal c4 As Integer) As Integer + Declare Function code4timeout Lib "c4dll.dll" (ByVal c4 As Integer) As Integer + Declare Sub code4timeoutSet Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Integer) + Declare Function code4tranStart Lib "c4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4tranStatus Lib "c4dll.dll" Alias "code4tranStatusCB" (ByVal c4 As Integer) As Short + Declare Function code4tranCommit Lib "c4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4tranRollback Lib "c4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4unlock Lib "c4dll.dll" (ByVal c4 As Integer) As Short + Declare Function code4unlockAuto Lib "c4dll.dll" Alias "code4unlockAutoCB" (ByVal c4 As Integer) As Short + Declare Function code4useGeneralTagsInRelate Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As Short) As Short + Declare Sub code4unlockAutoSet Lib "c4dll.dll" Alias "code4unlockAutoSetCB" (ByVal c4 As Integer, ByVal value As Short) + Declare Sub code4verifySet Lib "c4dll.dll" (ByVal c4 As Integer, ByVal value As String) +#End If + '=============================================================================================== + ' + ' Data File Functions' Prototypes + ' + '----------------------------------------------------------------------------------------------- +#If USE_D4DLL Then + Declare Function d4aliasCB Lib "d4dll.dll" Alias "d4alias"(ByVal d4 As Integer) As Integer + Declare Sub d4aliasSet Lib "d4dll.dll" (ByVal d4 As Integer, ByVal AliasValue As String) + Declare Function d4append Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4appendBlank Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4appendStart Lib "d4dll.dll" (ByVal d4 As Integer, ByVal UseMemoEntries As Short) As Short + Declare Sub d4blank Lib "d4dll.dll" (ByVal d4 As Integer) + Declare Function d4bof Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4bottom Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4changed Lib "d4dll.dll" (ByVal d4 As Integer, ByVal intFlag As Short) As Short + Declare Function d4check Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4close Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4codePage Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4createCB Lib "d4dll.dll" Alias "d4create"(ByVal c4 As Integer, ByVal DbfName As String, ByVal fieldinfo As Integer, ByVal tagInfo As Integer) As Integer + Declare Function d4createLow Lib "d4dll.dll" Alias "d4create" (ByVal c4 As Integer, ByVal DbfName As String, ByRef fieldinfo As FIELD4INFOCB, ByRef tagInfo As TAG4INFOCB) As Integer + Declare Function d4createLow Lib "d4dll.dll" Alias "d4create" (ByVal c4 As Integer, ByVal DbfName As String, ByRef fieldinfo As FIELD4INFOCB, Optional ByVal tagInfo As Integer = 0) As Integer + Declare Sub d4delete Lib "d4dll.dll" (ByVal d4 As Integer) + Declare Function d4deleted Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4eof Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4field Lib "d4dll.dll" (ByVal d4 As Integer, ByVal FieldName As String) As Integer + Declare Function d4fieldInfo Lib "d4dll.dll" (ByVal d4 As Integer) As Integer + Declare Function d4fieldJ Lib "d4dll.dll" (ByVal d4 As Integer, ByVal JField As Short) As Integer + Declare Function d4fieldNumber Lib "d4dll.dll" (ByVal d4 As Integer, ByVal FieldName As String) As Short + Declare Function d4fieldsAddCB Lib "d4dll.dll" Alias "d4fieldsAdd" (ByVal d4 As Integer, ByVal nFields As Short, ByRef fieldinfo As FIELD4INFOCB) As Integer + Declare Function d4fieldsRemoveCB Lib "d4dll.dll" Alias "d4fieldsRemove" (ByRef d4 As Integer, ByVal nFields As Short, ByRef fieldNames As Integer) As Integer + Declare Function d4fileNameCB Lib "d4dll.dll" Alias "d4fileName"(ByVal d4 As Integer) As Integer + Declare Function d4flush Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4freeBlocks Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4goLow Lib "d4dll.dll" (ByVal d4 As Integer, ByVal RecNum As Integer, ByVal goForWrite As Short) As Short + Declare Function d4goBof Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4goEof Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4index Lib "d4dll.dll" (ByVal d4 As Integer, ByVal IndexName As String) As Integer + Declare Function d4log Lib "d4dll.dll" Alias "d4logVB"(ByVal d4 As Integer, ByVal logging As Short) As Short + Declare Function d4lock Lib "d4dll.dll" Alias "d4lockVB"(ByVal d4 As Integer, ByVal recordNum As Integer) As Short + Declare Function d4lockAdd Lib "d4dll.dll" (ByVal d4 As Integer, ByVal recordNum As Integer) As Short + Declare Function d4lockAddAll Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4lockAddAppend Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4lockAddFile Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4lockAll Lib "d4dll.dll" Alias "d4lockAllVB"(ByVal d4 As Integer) As Short + Declare Function d4lockAppend Lib "d4dll.dll" Alias "d4lockAppendVB"(ByVal d4 As Integer) As Short + Declare Function d4lockFile Lib "d4dll.dll" Alias "d4lockFileVB"(ByVal d4 As Integer) As Short + Declare Function d4logStatus Lib "d4dll.dll" Alias "d4logStatusCB"(ByVal d4 As Integer) As Short + Declare Function d4memoCompress Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4numFields Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4open Lib "d4dll.dll" (ByVal c4 As Integer, ByVal DbfName As String) As Integer + Declare Function d4openClone Lib "d4dll.dll" (ByVal d4 As Integer) As Integer + Declare Function d4optimize Lib "d4dll.dll" Alias "d4optimizeVB"(ByVal d4 As Integer, ByVal OptFlag As Short) As Short + Declare Function d4optimizeWrite Lib "d4dll.dll" Alias "d4optimizeWriteVB"(ByVal d4 As Integer, ByVal OptFlag As Short) As Short + Declare Function d4pack Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4packData Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4position Lib "d4dll.dll" (ByVal d4 As Integer) As Double + Declare Function d4positionSet Lib "d4dll.dll" (ByVal d4 As Integer, ByVal Percentage As Double) As Short + Declare Function d4readBuffer Lib "d4dll.dll" (ByVal d4 As Integer, ByVal numRecsToBuf As Integer, ByVal doMemos As Short) As Integer + Declare Sub d4recall Lib "d4dll.dll" (ByVal d4 As Integer) + Declare Function d4recCount Lib "d4dll.dll" Alias "d4recCountDo"(ByVal d4 As Integer) As Integer + Declare Function d4recNo Lib "d4dll.dll" Alias "d4recNoLow"(ByVal d4 As Integer) As Integer + Declare Function d4record Lib "d4dll.dll" Alias "d4recordLow"(ByVal d4 As Integer) As Integer + Declare Function d4recWidth Lib "d4dll.dll" Alias "d4recWidth_v"(ByVal d4 As Integer) As Integer + Declare Function d4remove Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4refresh Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4refreshRecord Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4reindex Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Delegate Function d4reindexWithProgressDelegate(ByVal percent As Double) As Short + Declare Function d4reindexWithProgress Lib "d4dll.dll" (ByVal d4 As Integer, ByVal callback As d4reindexWithProgressDelegate, ByVal milliseconds As Integer) As Short + Declare Function d4seek Lib "d4dll.dll" (ByVal d4 As Integer, ByVal seekValue As String) As Short + Declare Function d4seekDouble Lib "d4dll.dll" (ByVal d4 As Integer, ByVal value As Double) As Short + Declare Function d4seekN Lib "d4dll.dll" (ByVal d4 As Integer, ByVal seekValue As String, ByVal seekLen As Short) As Short + Declare Function d4seekNext Lib "d4dll.dll" (ByVal d4 As Integer, ByVal seekValue As String) As Short + Declare Function d4seekNextDouble Lib "d4dll.dll" (ByVal d4 As Integer, ByVal seekValue As Double) As Short + Declare Function d4seekNextN Lib "d4dll.dll" (ByVal d4 As Integer, ByVal seekValue As String, ByVal seekLen As Short) As Short + Declare Function d4skip Lib "d4dll.dll" (ByVal d4 As Integer, ByVal NumberRecords As Integer) As Short + Declare Function d4tag Lib "d4dll.dll" (ByVal d4 As Integer, ByVal TagName As String) As Integer + Declare Function d4tagDefault Lib "d4dll.dll" (ByVal d4 As Integer) As Integer + Declare Function d4tagNext Lib "d4dll.dll" (ByVal d4 As Integer, ByVal TagOn As Integer) As Integer + Declare Function d4tagPrev Lib "d4dll.dll" (ByVal d4 As Integer, ByVal TagOn As Integer) As Integer + Declare Sub d4tagSelect Lib "d4dll.dll" (ByVal d4 As Integer, ByVal tPtr As Integer) + Declare Function d4tagSelected Lib "d4dll.dll" (ByVal d4 As Integer) As Integer + Declare Function d4tagSync Lib "d4dll.dll" (ByVal d4 As Integer, ByVal tPtr As Integer) As Short + Declare Function d4top Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4unlock Lib "d4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4unlockFiles Lib "d4dll.dll" Alias "code4unlock"(ByVal d4 As Integer) As Short + Declare Function d4write Lib "d4dll.dll" Alias "d4writeVB"(ByVal d4 As Integer, ByVal RecNum As Integer) As Short + Declare Function d4writeBuffer Lib "d4dll.dll" (ByVal r4 As Integer, ByVal numRecs As Integer) As Integer + Declare Function d4zap Lib "d4dll.dll" (ByVal d4 As Integer, ByVal StartRecord As Integer, ByVal EndRecord As Integer) As Short +#Else + Declare Function d4aliasCB Lib "c4dll.dll" Alias "d4alias" (ByVal d4 As Integer) As Integer + Declare Sub d4aliasSet Lib "c4dll.dll" (ByVal d4 As Integer, ByVal AliasValue As String) + Declare Function d4append Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4appendBlank Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4appendStart Lib "c4dll.dll" (ByVal d4 As Integer, ByVal UseMemoEntries As Short) As Short + Declare Sub d4blank Lib "c4dll.dll" (ByVal d4 As Integer) + Declare Function d4bof Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4bottom Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4changed Lib "c4dll.dll" (ByVal d4 As Integer, ByVal intFlag As Short) As Short + Declare Function d4check Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4close Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4codePage Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4compress Lib "c4dll.dll" (ByVal d4 As Integer, ByVal compressedName As String, ByVal blockSize As Short) As Integer + Declare Function d4createCB Lib "c4dll.dll" Alias "d4create" (ByVal c4 As Integer, ByVal DbfName As String, ByVal fieldinfo As Integer, ByVal tagInfo As Integer) As Integer + Declare Function d4createLow Lib "c4dll.dll" Alias "d4create" (ByVal c4 As Integer, ByVal DbfName As String, ByRef fieldinfo As FIELD4INFOCB, ByRef tagInfo As TAG4INFOCB) As Integer + Declare Function d4createLow Lib "c4dll.dll" Alias "d4create" (ByVal c4 As Integer, ByVal DbfName As String, ByRef fieldinfo As FIELD4INFOCB, Optional ByVal tagInfo As Integer = 0) As Integer + Declare Sub d4delete Lib "c4dll.dll" (ByVal d4 As Integer) + Declare Function d4deleted Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4eof Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4field Lib "c4dll.dll" (ByVal d4 As Integer, ByVal FieldName As String) As Integer + Declare Function d4fieldInfo Lib "c4dll.dll" (ByVal d4 As Integer) As Integer + Declare Function d4fieldJ Lib "c4dll.dll" (ByVal d4 As Integer, ByVal JField As Short) As Integer + Declare Function d4fieldNumber Lib "c4dll.dll" (ByVal d4 As Integer, ByVal FieldName As String) As Short + Declare Function d4fieldsAddCB Lib "c4dll.dll" Alias "d4fieldsAdd" (ByVal d4 As Integer, ByVal nFields As Short, ByRef fieldinfo As FIELD4INFOCB) As Integer + Declare Function d4fieldsRemoveCB Lib "c4dll.dll" Alias "d4fieldsRemove" (ByRef d4 As Integer, ByVal nFields As Short, ByRef fieldNames As Integer) As Integer + Declare Function d4fileNameCB Lib "c4dll.dll" Alias "d4fileName" (ByVal d4 As Integer) As Integer + Declare Function d4flush Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4freeBlocks Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4goLow Lib "c4dll.dll" (ByVal d4 As Integer, ByVal RecNum As Integer, ByVal goForWrite As Short) As Short + Declare Function d4goBof Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4goEof Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4index Lib "c4dll.dll" (ByVal d4 As Integer, ByVal IndexName As String) As Integer + Declare Function d4log Lib "c4dll.dll" Alias "d4logVB" (ByVal d4 As Integer, ByVal logging As Short) As Short + Declare Function d4lock Lib "c4dll.dll" Alias "d4lockVB" (ByVal d4 As Integer, ByVal recordNum As Integer) As Short + Declare Function d4lockAdd Lib "c4dll.dll" (ByVal d4 As Integer, ByVal recordNum As Integer) As Short + Declare Function d4lockAddAll Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4lockAddAppend Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4lockAddFile Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4lockAll Lib "c4dll.dll" Alias "d4lockAllVB" (ByVal d4 As Integer) As Short + Declare Function d4lockAppend Lib "c4dll.dll" Alias "d4lockAppendVB" (ByVal d4 As Integer) As Short + Declare Function d4lockFile Lib "c4dll.dll" Alias "d4lockFileVB" (ByVal d4 As Integer) As Short + Declare Function d4logStatus Lib "c4dll.dll" Alias "d4logStatusCB" (ByVal d4 As Integer) As Short + Declare Function d4memoCompress Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4numFields Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4open Lib "c4dll.dll" (ByVal c4 As Integer, ByVal DbfName As String) As Integer + Declare Function d4openClone Lib "c4dll.dll" (ByVal d4 As Integer) As Integer + Declare Function d4optimize Lib "c4dll.dll" Alias "d4optimizeVB" (ByVal d4 As Integer, ByVal OptFlag As Short) As Short + Declare Function d4optimizeWrite Lib "c4dll.dll" Alias "d4optimizeWriteVB" (ByVal d4 As Integer, ByVal OptFlag As Short) As Short + Declare Function d4pack Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4packData Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Delegate Function d4packWithProgressDelegate(ByVal percent As Double) As Short + Declare Function d4packWithProgress Lib "c4dll.dll" (ByVal d4 As Integer, ByVal callback As d4packWithProgressDelegate, ByVal milliseconds As Integer) As Short + Declare Function d4position Lib "c4dll.dll" (ByVal d4 As Integer) As Double + Declare Function d4positionSet Lib "c4dll.dll" (ByVal d4 As Integer, ByVal Percentage As Double) As Short + Declare Function d4readBuffer Lib "c4dll.dll" (ByVal d4 As Integer, ByVal numRecsToBuf As Integer, ByVal doMemos As Short) As Integer + Declare Sub d4recall Lib "c4dll.dll" (ByVal d4 As Integer) + Declare Function d4recCount Lib "c4dll.dll" Alias "d4recCountDo" (ByVal d4 As Integer) As Integer + Declare Function d4recNo Lib "c4dll.dll" Alias "d4recNoLow" (ByVal d4 As Integer) As Integer + Declare Function d4record Lib "c4dll.dll" Alias "d4recordLow" (ByVal d4 As Integer) As Integer + Declare Function d4recWidth Lib "c4dll.dll" Alias "d4recWidth_v" (ByVal d4 As Integer) As Integer + Declare Function d4remove Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4refresh Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4refreshRecord Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4reindex Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Delegate Function d4reindexWithProgressDelegate(ByVal percent As Double) As Short + Declare Function d4reindexWithProgress Lib "c4dll.dll" (ByVal d4 As Integer, ByVal callback As d4reindexWithProgressDelegate, ByVal milliseconds As Integer) As Short + Declare Function d4seek Lib "c4dll.dll" (ByVal d4 As Integer, ByVal seekValue As String) As Short + Declare Function d4seekDouble Lib "c4dll.dll" (ByVal d4 As Integer, ByVal value As Double) As Short + Declare Function d4seekN Lib "c4dll.dll" (ByVal d4 As Integer, ByVal seekValue As String, ByVal seekLen As Short) As Short + Declare Function d4seekNext Lib "c4dll.dll" (ByVal d4 As Integer, ByVal seekValue As String) As Short + Declare Function d4seekNextDouble Lib "c4dll.dll" (ByVal d4 As Integer, ByVal seekValue As Double) As Short + Declare Function d4seekNextN Lib "c4dll.dll" (ByVal d4 As Integer, ByVal seekValue As String, ByVal seekLen As Short) As Short + Declare Function d4skip Lib "c4dll.dll" (ByVal d4 As Integer, ByVal NumberRecords As Integer) As Short + Declare Function d4tag Lib "c4dll.dll" (ByVal d4 As Integer, ByVal TagName As String) As Integer + Declare Function d4tagDefault Lib "c4dll.dll" (ByVal d4 As Integer) As Integer + Declare Function d4tagNext Lib "c4dll.dll" (ByVal d4 As Integer, ByVal TagOn As Integer) As Integer + Declare Function d4tagPrev Lib "c4dll.dll" (ByVal d4 As Integer, ByVal TagOn As Integer) As Integer + Declare Sub d4tagSelect Lib "c4dll.dll" (ByVal d4 As Integer, ByVal tPtr As Integer) + Declare Function d4tagSelected Lib "c4dll.dll" (ByVal d4 As Integer) As Integer + Declare Function d4tagSync Lib "c4dll.dll" (ByVal d4 As Integer, ByVal tPtr As Integer) As Short + Declare Function d4top Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4unlock Lib "c4dll.dll" (ByVal d4 As Integer) As Short + Declare Function d4unlockFiles Lib "c4dll.dll" Alias "code4unlock" (ByVal d4 As Integer) As Short + Declare Function d4write Lib "c4dll.dll" Alias "d4writeVB" (ByVal d4 As Integer, ByVal RecNum As Integer) As Short + Declare Function d4writeBuffer Lib "c4dll.dll" (ByVal r4 As Integer, ByVal numRecs As Integer) As Integer + Declare Function d4zap Lib "c4dll.dll" (ByVal d4 As Integer, ByVal StartRecord As Integer, ByVal EndRecord As Integer) As Short +#End If + + '=============================================================================================== + ' + ' Date Functions' Prototypes + ' + '----------------------------------------------------------------------------------------------- +#If USE_D4DLL Then + Declare Sub date4assignLow Lib "d4dll.dll" (ByVal dateForm As String, ByVal julianDay As Integer, ByVal isOle As Short) + Declare Function date4cdowCB Lib "d4dll.dll" Alias "date4cdow"(ByVal dateForm As String) As Integer + Declare Function date4cmonthCB Lib "d4dll.dll" Alias "date4cmonth"(ByVal dateForm As String) As Integer + Declare Function date4day Lib "d4dll.dll" Alias "date4day_v"(ByVal dateForm As String) As Short + Declare Function date4dow Lib "d4dll.dll" (ByVal dateForm As String) As Short + Declare Sub date4formatCB Lib "d4dll.dll" Alias "date4format"(ByVal dateForm As String, ByVal Result As String, ByVal pic As String) + Declare Sub date4initCB Lib "d4dll.dll" Alias "date4init"(ByVal dateForm As String, ByVal value As String, ByVal pic As String) + Declare Function date4isLeap Lib "d4dll.dll" (ByVal dateForm As String) As Short + Declare Function date4long Lib "d4dll.dll" (ByVal dateForm As String) As Integer + Declare Function date4month Lib "d4dll.dll" Alias "date4month_v"(ByVal dateForm As String) As Short + Declare Sub date4timeNow Lib "d4dll.dll" (ByVal TimeForm As String) + Declare Sub date4todayCB Lib "d4dll.dll" Alias "date4today"(ByVal dateForm As String) + Declare Function date4year Lib "d4dll.dll" Alias "date4year_v"(ByVal dateForm As String) As Short +#Else + Declare Sub date4assignLow Lib "c4dll.dll" (ByVal dateForm As String, ByVal julianDay As Integer, ByVal isOle As Short) + Declare Function date4cdowCB Lib "c4dll.dll" Alias "date4cdow" (ByVal dateForm As String) As Integer + Declare Function date4cmonthCB Lib "c4dll.dll" Alias "date4cmonth" (ByVal dateForm As String) As Integer + Declare Function date4day Lib "c4dll.dll" Alias "date4day_v" (ByVal dateForm As String) As Short + Declare Function date4dow Lib "c4dll.dll" (ByVal dateForm As String) As Short + Declare Sub date4formatCB Lib "c4dll.dll" Alias "date4format" (ByVal dateForm As String, ByVal Result As String, ByVal pic As String) + Declare Sub date4initCB Lib "c4dll.dll" Alias "date4init" (ByVal dateForm As String, ByVal value As String, ByVal pic As String) + Declare Function date4isLeap Lib "c4dll.dll" (ByVal dateForm As String) As Short + Declare Function date4long Lib "c4dll.dll" (ByVal dateForm As String) As Integer + Declare Function date4month Lib "c4dll.dll" Alias "date4month_v" (ByVal dateForm As String) As Short + Declare Sub date4timeNow Lib "c4dll.dll" (ByVal TimeForm As String) + Declare Sub date4todayCB Lib "c4dll.dll" Alias "date4today" (ByVal dateForm As String) + Declare Function date4year Lib "c4dll.dll" Alias "date4year_v" (ByVal dateForm As String) As Short +#End If + + '=============================================================================================== + ' + ' Error Functions' Prototypes + ' + '----------------------------------------------------------------------------------------------- +#If USE_D4DLL Then + Declare Function error4 Lib "d4dll.dll" Alias "error4VB"(ByVal c4 As Integer, ByVal errCode As Short, ByVal extraInfo As Integer) As Short + Declare Sub error4exitTest Lib "d4dll.dll" (ByVal c4 As Integer) + Declare Function error4describe Lib "d4dll.dll" Alias "error4describeVB"(ByVal c4 As Integer, ByVal errCode As Short, ByVal extraInfo As Integer, ByVal desc1 As String, ByVal desc2 As String, ByVal desc3 As String) As Short + Declare Function error4file Lib "d4dll.dll" (ByVal c4 As Integer, ByVal fileName As String, ByVal overwrite As Short) As Short + Declare Function error4lastDescription Lib "d4dll.dll" (ByVal c4 As Integer) As String + Declare Function error4set Lib "d4dll.dll" (ByVal c4 As Integer, ByVal errCode As Short) As Short + Declare Function error4textCB Lib "d4dll.dll" Alias "error4text"(ByVal c4 As Integer, ByVal errCode As Integer) As Integer +#Else + Declare Function error4 Lib "c4dll.dll" Alias "error4VB" (ByVal c4 As Integer, ByVal errCode As Short, ByVal extraInfo As Integer) As Short + Declare Sub error4exitTest Lib "c4dll.dll" (ByVal c4 As Integer) + Declare Function error4describe Lib "c4dll.dll" Alias "error4describeVB" (ByVal c4 As Integer, ByVal errCode As Short, ByVal extraInfo As Integer, ByVal desc1 As String, ByVal desc2 As String, ByVal desc3 As String) As Short + Declare Function error4file Lib "c4dll.dll" (ByVal c4 As Integer, ByVal fileName As String, ByVal overwrite As Short) As Short + Declare Function error4lastDescription Lib "c4dll.dll" (ByVal c4 As Integer) As String + Declare Function error4set Lib "c4dll.dll" (ByVal c4 As Integer, ByVal errCode As Short) As Short + Declare Function error4textCB Lib "c4dll.dll" Alias "error4text" (ByVal c4 As Integer, ByVal errCode As Integer) As Integer +#End If + + '=============================================================================================== + ' + ' Expression Evaluation Functions' Prototypes + ' + '----------------------------------------------------------------------------------------------- +#If USE_D4DLL Then + Declare Function expr4data Lib "d4dll.dll" Alias "expr4dataCB"(ByVal exprPtr As Integer) As Integer + Declare Function expr4double Lib "d4dll.dll" (ByVal exprPtr As Integer) As Double + Declare Sub expr4free Lib "d4dll.dll" Alias "expr4freeCB"(ByVal exprPtr As Integer) + Declare Function expr4len Lib "d4dll.dll" Alias "expr4lenCB"(ByVal exprPtr As Integer) As Integer + Declare Function expr4nullLow Lib "d4dll.dll" (ByVal exprPtr As Integer, ByVal forAdd As Short) As Short + Declare Function expr4parse Lib "d4dll.dll" Alias "expr4parseCB"(ByVal d4 As Integer, ByVal expression As String) As Integer + Declare Function expr4sourceCB Lib "d4dll.dll" Alias "expr4source"(ByVal exprPtr As Integer) As Integer + Declare Function expr4strCB Lib "d4dll.dll" Alias "expr4str"(ByVal exprPtr As Integer) As Integer + Declare Function expr4true Lib "d4dll.dll" (ByVal exprPtr As Integer) As Short + Declare Function expr4typeCB Lib "d4dll.dll" (ByVal exprPtr As Integer) As Short +#Else + Declare Function expr4data Lib "c4dll.dll" Alias "expr4dataCB" (ByVal exprPtr As Integer) As Integer + Declare Function expr4double Lib "c4dll.dll" (ByVal exprPtr As Integer) As Double + Declare Sub expr4free Lib "c4dll.dll" Alias "expr4freeCB" (ByVal exprPtr As Integer) + Declare Function expr4len Lib "c4dll.dll" Alias "expr4lenCB" (ByVal exprPtr As Integer) As Integer + Declare Function expr4nullLow Lib "c4dll.dll" (ByVal exprPtr As Integer, ByVal forAdd As Short) As Short + Declare Function expr4parse Lib "c4dll.dll" Alias "expr4parseCB" (ByVal d4 As Integer, ByVal expression As String) As Integer + Declare Function expr4sourceCB Lib "c4dll.dll" Alias "expr4source" (ByVal exprPtr As Integer) As Integer + Declare Function expr4strCB Lib "c4dll.dll" Alias "expr4str" (ByVal exprPtr As Integer) As Integer + Declare Function expr4true Lib "c4dll.dll" (ByVal exprPtr As Integer) As Short + Declare Function expr4typeCB Lib "c4dll.dll" (ByVal exprPtr As Integer) As Short +#End If + + '=============================================================================================== + ' + ' Field Functions' Prototypes + ' + '----------------------------------------------------------------------------------------------- +#If USE_D4DLL Then + Declare Sub f4assignBinaryVB Lib "d4dll.dll" Alias "f4assignN"(ByVal fPtr As Integer, ByRef value As Byte, ByVal length As Short) + Declare Sub f4assignChar Lib "d4dll.dll" Alias "f4assignCharVB"(ByVal fPtr As Integer, ByVal Char_Renamed As Short) + Declare Sub f4assignCurrency Lib "d4dll.dll" (ByVal fPtr As Integer, ByVal value As String) + Declare Sub f4assignDateTime Lib "d4dll.dll" (ByVal fPtr As Integer, ByVal value As String) + Declare Sub f4assignDouble Lib "d4dll.dll" (ByVal fPtr As Integer, ByVal value As Double) + Declare Sub f4assignField Lib "d4dll.dll" (ByVal fPtrTo As Integer, ByVal fPtrFrom As Integer) + Declare Sub f4assignIntVB Lib "d4dll.dll" (ByVal fPtr As Integer, ByVal value As Short) + Declare Sub f4assignLong Lib "d4dll.dll" (ByVal fPtr As Integer, ByVal value As Integer) + Declare Sub f4assignN Lib "d4dll.dll" Alias "f4assignNVB"(ByVal fPtr As Integer, ByVal value As String, ByVal length As Short) + Declare Sub f4assignNull Lib "d4dll.dll" (ByVal fPtr As Integer) + Declare Sub f4assignUnicodeVB Lib "d4dll.dll" Alias "f4assignUnicode" (ByVal fPtr As Integer, ByRef value As Byte) + Declare Sub f4blank Lib "d4dll.dll" (ByVal fPtr As Integer) + Declare Function f4char Lib "d4dll.dll" (ByVal fPtr As Integer) As Short + Declare Function f4currencyCB Lib "d4dll.dll" Alias "f4currency"(ByVal fPtr As Integer, ByVal numDec As Short) As Integer + Declare Function f4data Lib "d4dll.dll" (ByVal fPtr As Integer) As Integer + Declare Function f4dateTimeCB Lib "d4dll.dll" Alias "f4dateTime"(ByVal fPtr As Integer) As Integer + Declare Function f4decimals Lib "d4dll.dll" (ByVal fPtr As Integer) As Short + Declare Function f4double Lib "d4dll.dll" (ByVal fPtr As Integer) As Double + Declare Function f4int Lib "d4dll.dll" (ByVal fPtr As Integer) As Short + Declare Function f4len Lib "d4dll.dll" Alias "f4len_v"(ByVal fPtr As Integer) As Short + Declare Function f4long Lib "d4dll.dll" (ByVal fPtr As Integer) As Integer + Declare Function f4memoAssign Lib "d4dll.dll" (ByVal fPtr As Integer, ByVal value As String) As Short + Declare Function f4memoAssignBinaryVB Lib "d4dll.dll" Alias "f4memoAssignNVB" (ByVal fPtr As Integer, ByRef value As Byte, ByVal length As Short) As Short + Declare Function f4memoAssignN Lib "d4dll.dll" (ByVal fPtr As Integer, ByVal value As String, ByVal length As Integer) As Short + Declare Sub f4memoAssignUnicodeVB Lib "d4dll.dll" Alias "f4memoAssignUnicode" (ByVal fPtr As Integer, ByRef value As String) + Declare Sub f4memoFree Lib "d4dll.dll" (ByVal fPtr As Integer) + Declare Function f4memoLen Lib "d4dll.dll" (ByVal fPtr As Integer) As Integer + Declare Function f4memoNcpy Lib "d4dll.dll" (ByVal fPtr As Integer, ByVal memPtr As String, ByVal memLen As Short) As Short + Declare Function f4memoNcpyBinary Lib "d4dll.dll" Alias "f4memoNcpy" (ByVal fPtr As Integer, ByRef memPtr As Byte, ByVal memLen As Short) As Short + Declare Function f4memoPtr Lib "d4dll.dll" (ByVal fPtr As Integer) As Integer + Declare Function f4nameCB Lib "d4dll.dll" Alias "f4name"(ByVal fPtr As Integer) As Integer + Declare Function f4ncpyBinary Lib "d4dll.dll" Alias "f4ncpy" (ByVal fPtr As Integer, ByRef memPtr As Byte, ByVal memLength As Short) As Short + Declare Function f4ncpyCB Lib "d4dll.dll" Alias "f4ncpy"(ByVal fPtr As Integer, ByVal memPtr As String, ByVal memLength As Short) As Short + Declare Function f4number Lib "d4dll.dll" (ByVal fPtr As Integer) As Short + Declare Function f4null Lib "d4dll.dll" (ByVal fPtr As Integer) As Short + Declare Function f4ptr Lib "d4dll.dll" (ByVal fPtr As Integer) As Integer + Declare Function f4strCB Lib "d4dll.dll" Alias "f4str"(ByVal fPtr As Integer) As Integer + Declare Function f4true Lib "d4dll.dll" (ByVal fPtr As Integer) As Short + Declare Function f4type Lib "d4dll.dll" (ByVal fPtr As Integer) As Short +#Else + Declare Sub f4assignBinaryVB Lib "c4dll.dll" Alias "f4assignN" (ByVal fPtr As Integer, ByRef value As Byte, ByVal length As Short) + Declare Sub f4assignChar Lib "c4dll.dll" Alias "f4assignCharVB" (ByVal fPtr As Integer, ByVal Char_Renamed As Short) + Declare Sub f4assignCurrency Lib "c4dll.dll" (ByVal fPtr As Integer, ByVal value As String) + Declare Sub f4assignDateTime Lib "c4dll.dll" (ByVal fPtr As Integer, ByVal value As String) + Declare Sub f4assignDouble Lib "c4dll.dll" (ByVal fPtr As Integer, ByVal value As Double) + Declare Sub f4assignField Lib "c4dll.dll" (ByVal fPtrTo As Integer, ByVal fPtrFrom As Integer) + Declare Sub f4assignIntVB Lib "c4dll.dll" (ByVal fPtr As Integer, ByVal value As Short) + Declare Sub f4assignLong Lib "c4dll.dll" (ByVal fPtr As Integer, ByVal value As Integer) + Declare Sub f4assignN Lib "c4dll.dll" Alias "f4assignNVB" (ByVal fPtr As Integer, ByVal value As String, ByVal length As Short) + Declare Sub f4assignNull Lib "c4dll.dll" (ByVal fPtr As Integer) + Declare Sub f4assignUnicodeVB Lib "c4dll.dll" Alias "f4assignUnicode" (ByVal fPtr As Integer, ByRef value As Byte) + Declare Sub f4blank Lib "c4dll.dll" (ByVal fPtr As Integer) + Declare Function f4char Lib "c4dll.dll" (ByVal fPtr As Integer) As Short + Declare Function f4currencyCB Lib "c4dll.dll" Alias "f4currency" (ByVal fPtr As Integer, ByVal numDec As Short) As Integer + Declare Function f4data Lib "c4dll.dll" (ByVal fPtr As Integer) As Integer + Declare Function f4dateTimeCB Lib "c4dll.dll" Alias "f4dateTime" (ByVal fPtr As Integer) As Integer + Declare Function f4decimals Lib "c4dll.dll" (ByVal fPtr As Integer) As Short + Declare Function f4double Lib "c4dll.dll" (ByVal fPtr As Integer) As Double + Declare Function f4int Lib "c4dll.dll" (ByVal fPtr As Integer) As Short + Declare Function f4len Lib "c4dll.dll" Alias "f4len_v" (ByVal fPtr As Integer) As Short + Declare Function f4long Lib "c4dll.dll" (ByVal fPtr As Integer) As Integer + Declare Function f4memoAssign Lib "c4dll.dll" (ByVal fPtr As Integer, ByVal value As String) As Short + Declare Function f4memoAssignBinaryVB Lib "c4dll.dll" Alias "f4memoAssignNVB" (ByVal fPtr As Integer, ByRef value As Byte, ByVal length As Short) As Short + Declare Function f4memoAssignN Lib "c4dll.dll" (ByVal fPtr As Integer, ByVal value As String, ByVal length As Integer) As Short + Declare Sub f4memoAssignUnicodeVB Lib "c4dll.dll" Alias "f4memoAssignUnicode" (ByVal fPtr As Integer, ByRef value As String) + Declare Sub f4memoFree Lib "c4dll.dll" (ByVal fPtr As Integer) + Declare Function f4memoLen Lib "c4dll.dll" (ByVal fPtr As Integer) As Integer + Declare Function f4memoNcpy Lib "c4dll.dll" (ByVal fPtr As Integer, ByVal memPtr As String, ByVal memLen As Short) As Short + Declare Function f4memoNcpyBinary Lib "c4dll.dll" Alias "f4memoNcpy" (ByVal fPtr As Integer, ByRef memPtr As Byte, ByVal memLen As Short) As Short + Declare Function f4memoPtr Lib "c4dll.dll" (ByVal fPtr As Integer) As Integer + Declare Function f4nameCB Lib "c4dll.dll" Alias "f4name" (ByVal fPtr As Integer) As Integer + Declare Function f4ncpyBinary Lib "c4dll.dll" Alias "f4ncpy" (ByVal fPtr As Integer, ByRef memPtr As Byte, ByVal memLength As Short) As Short + Declare Function f4ncpyCB Lib "c4dll.dll" Alias "f4ncpy" (ByVal fPtr As Integer, ByVal memPtr As String, ByVal memLength As Short) As Short + Declare Function f4number Lib "c4dll.dll" (ByVal fPtr As Integer) As Short + Declare Function f4null Lib "c4dll.dll" (ByVal fPtr As Integer) As Short + Declare Function f4ptr Lib "c4dll.dll" (ByVal fPtr As Integer) As Integer + Declare Function f4strCB Lib "c4dll.dll" Alias "f4str" (ByVal fPtr As Integer) As Integer + Declare Function f4true Lib "c4dll.dll" (ByVal fPtr As Integer) As Short + Declare Function f4type Lib "c4dll.dll" (ByVal fPtr As Integer) As Short +#End If + + '=============================================================================================== + ' + ' Index Functions' Prototypes + ' + '----------------------------------------------------------------------------------------------- +#If USE_D4DLL Then + Declare Function i4close Lib "d4dll.dll" (ByVal i4 As Integer) As Short + Declare Function i4createCB Lib "d4dll.dll" Alias "i4create"(ByVal d4 As Integer, ByVal fileName As String, ByRef tagInfo As TAG4INFOCB) As Integer + Declare Function i4fileNameCB Lib "d4dll.dll" Alias "i4fileName"(ByVal i4 As Integer) As Integer + Declare Function i4openCB Lib "d4dll.dll" Alias "i4open" (ByVal d4 As Integer, ByVal fileName As String) As Integer + Declare Function i4reindex Lib "d4dll.dll" (ByVal i4 As Integer) As Short + Declare Function i4tag Lib "d4dll.dll" (ByVal i4 As Integer, ByVal fileName As String) As Integer + Declare Function i4tagInfo Lib "d4dll.dll" (ByVal i4 As Integer) As Integer + Declare Function i4tagAddCB Lib "d4dll.dll" Alias "i4tagAdd"(ByVal i4 As Integer, ByRef tagInfo As TAG4INFOCB) As Short + Declare Function i4tagRemove Lib "d4dll.dll" (ByVal t4 As Integer) As Short +#Else + Declare Function i4close Lib "c4dll.dll" (ByVal i4 As Integer) As Short + Declare Function i4createCB Lib "c4dll.dll" Alias "i4create" (ByVal d4 As Integer, ByVal fileName As String, ByRef tagInfo As TAG4INFOCB) As Integer + Declare Function i4fileNameCB Lib "c4dll.dll" Alias "i4fileName" (ByVal i4 As Integer) As Integer + Declare Function i4openCB Lib "c4dll.dll" Alias "i4open" (ByVal d4 As Integer, ByVal fileName As String) As Integer + Declare Function i4reindex Lib "c4dll.dll" (ByVal i4 As Integer) As Short + Declare Function i4tag Lib "c4dll.dll" (ByVal i4 As Integer, ByVal fileName As String) As Integer + Declare Function i4tagInfo Lib "c4dll.dll" (ByVal i4 As Integer) As Integer + Declare Function i4tagAddCB Lib "c4dll.dll" Alias "i4tagAdd" (ByVal i4 As Integer, ByRef tagInfo As TAG4INFOCB) As Short + Declare Function i4tagRemove Lib "c4dll.dll" (ByVal t4 As Integer) As Short +#End If + + '=============================================================================================== + ' + ' Relate Functions' Prototypes + ' + '----------------------------------------------------------------------------------------------- +#If USE_D4DLL Then + Declare Function relate4bottom Lib "d4dll.dll" (ByVal r4 As Integer) As Short + Declare Sub relate4changed Lib "d4dll.dll" (ByVal r4 As Integer) + Declare Function relate4createSlave Lib "d4dll.dll" (ByVal r4 As Integer, ByVal d4 As Integer, ByVal mExpr As String, ByVal t4 As Integer) As Integer + Declare Function relate4count Lib "d4dll.dll" (ByVal r4 As Integer) As Integer + Declare Function relate4data Lib "d4dll.dll" Alias "relate4dataCB"(ByVal r4 As Integer) As Integer + Declare Function relate4dataTag Lib "d4dll.dll" Alias "relate4dataTagCB"(ByVal r4 As Integer) As Integer + Declare Function relate4doAll Lib "d4dll.dll" (ByVal r4 As Integer) As Short + Declare Function relate4doOne Lib "d4dll.dll" (ByVal r4 As Integer) As Short + Declare Function relate4eof Lib "d4dll.dll" (ByVal r4 As Integer) As Short + Declare Function relate4errorAction Lib "d4dll.dll" Alias "relate4errorActionVB"(ByVal r4 As Integer, ByVal ErrAction As Short) As Short + Declare Function relate4free Lib "d4dll.dll" Alias "relate4freeVB"(ByVal r4 As Integer, ByVal CloseFlag As Short) As Short + Declare Function relate4init Lib "d4dll.dll" (ByVal d4 As Integer) As Integer + Declare Function relate4lockAdd Lib "d4dll.dll" (ByVal r4 As Integer) As Short + Declare Function relate4master Lib "d4dll.dll" Alias "relate4masterCB"(ByVal r4 As Integer) As Integer + Declare Function relate4masterExprCB Lib "d4dll.dll" (ByVal r4 As Integer) As Integer + Declare Function relate4matchLen Lib "d4dll.dll" Alias "relate4matchLenVB"(ByVal r4 As Integer, ByVal length As Short) As Short + Declare Function relate4next Lib "d4dll.dll" (ByRef r4 As Integer) As Short + Declare Function relate4optimizeable Lib "d4dll.dll" (ByVal r4 As Integer) As Short + Declare Function relate4querySet Lib "d4dll.dll" (ByVal r4 As Integer, ByVal expr As String) As Short + Declare Function relate4readBuffer Lib "d4dll.dll" (ByVal r4 As Integer, ByVal numRecsToBuf As Integer, ByVal doMemos As Short) As Integer + Declare Function relate4retain Lib "d4dll.dll" (ByVal r4 As Integer, ByVal value As Short) As Short + Declare Function relate4retrieve Lib "d4dll.dll" (ByVal c4 As Integer, ByVal fileName As String, ByVal openFiles As Short, ByVal dataPathName As String) As Integer + Declare Function relate4save Lib "d4dll.dll" (ByVal rel4 As Integer, ByVal fileName As String, ByVal savePathNames As Short) As Short + Declare Function relate4skip Lib "d4dll.dll" (ByVal r4 As Integer, ByVal NumRecs As Integer) As Short + Declare Function relate4skipEnable Lib "d4dll.dll" Alias "relate4skipEnableVB" (ByVal r4 As Integer, ByVal DoEnable As Short) As Short + Declare Function relate4skipMaster Lib "d4dll.dll" (ByVal r4 As Integer, ByVal numSkip As Integer) As Short + Declare Function relate4sortSet Lib "d4dll.dll" (ByVal r4 As Integer, ByVal expr As String) As Short + Declare Function relate4top Lib "d4dll.dll" (ByVal r4 As Integer) As Short + Declare Function relate4topMaster Lib "d4dll.dll" (ByVal r4 As Integer) As Integer + Declare Function relate4type Lib "d4dll.dll" Alias "relate4typeVB" (ByVal r4 As Integer, ByVal rType As Short) As Short +#Else + Declare Function relate4bottom Lib "c4dll.dll" (ByVal r4 As Integer) As Short + Declare Sub relate4changed Lib "c4dll.dll" (ByVal r4 As Integer) + Declare Function relate4createSlave Lib "c4dll.dll" (ByVal r4 As Integer, ByVal d4 As Integer, ByVal mExpr As String, ByVal t4 As Integer) As Integer + Declare Function relate4count Lib "c4dll.dll" (ByVal r4 As Integer) As Integer + Declare Function relate4data Lib "c4dll.dll" Alias "relate4dataCB" (ByVal r4 As Integer) As Integer + Declare Function relate4dataTag Lib "c4dll.dll" Alias "relate4dataTagCB" (ByVal r4 As Integer) As Integer + Declare Function relate4doAll Lib "c4dll.dll" (ByVal r4 As Integer) As Short + Declare Function relate4doOne Lib "c4dll.dll" (ByVal r4 As Integer) As Short + Declare Function relate4eof Lib "c4dll.dll" (ByVal r4 As Integer) As Short + Declare Function relate4errorAction Lib "c4dll.dll" Alias "relate4errorActionVB" (ByVal r4 As Integer, ByVal ErrAction As Short) As Short + Declare Function relate4free Lib "c4dll.dll" Alias "relate4freeVB" (ByVal r4 As Integer, ByVal CloseFlag As Short) As Short + Declare Function relate4init Lib "c4dll.dll" (ByVal d4 As Integer) As Integer + Declare Function relate4lockAdd Lib "c4dll.dll" (ByVal r4 As Integer) As Short + Declare Function relate4master Lib "c4dll.dll" Alias "relate4masterCB" (ByVal r4 As Integer) As Integer + Declare Function relate4masterExprCB Lib "c4dll.dll" (ByVal r4 As Integer) As Integer + Declare Function relate4matchLen Lib "c4dll.dll" Alias "relate4matchLenVB" (ByVal r4 As Integer, ByVal length As Short) As Short + Declare Function relate4next Lib "c4dll.dll" (ByRef r4 As Integer) As Short + Declare Function relate4optimizeable Lib "c4dll.dll" (ByVal r4 As Integer) As Short + Declare Function relate4querySet Lib "c4dll.dll" (ByVal r4 As Integer, ByVal expr As String) As Short + Declare Function relate4readBuffer Lib "c4dll.dll" (ByVal r4 As Integer, ByVal numRecsToBuf As Integer, ByVal doMemos As Short) As Integer + Declare Function relate4retain Lib "c4dll.dll" (ByVal r4 As Integer, ByVal value As Short) As Short + Declare Function relate4retrieve Lib "c4dll.dll" (ByVal c4 As Integer, ByVal fileName As String, ByVal openFiles As Short, ByVal dataPathName As String) As Integer + Declare Function relate4save Lib "c4dll.dll" (ByVal rel4 As Integer, ByVal fileName As String, ByVal savePathNames As Short) As Short + Declare Function relate4skip Lib "c4dll.dll" (ByVal r4 As Integer, ByVal NumRecs As Integer) As Short + Declare Function relate4skipEnable Lib "c4dll.dll" Alias "relate4skipEnableVB" (ByVal r4 As Integer, ByVal DoEnable As Short) As Short + Declare Function relate4skipMaster Lib "c4dll.dll" (ByVal r4 As Integer, ByVal numSkip As Integer) As Short + Declare Function relate4sortSet Lib "c4dll.dll" (ByVal r4 As Integer, ByVal expr As String) As Short + Declare Function relate4top Lib "c4dll.dll" (ByVal r4 As Integer) As Short + Declare Function relate4topMaster Lib "c4dll.dll" (ByVal r4 As Integer) As Integer + Declare Function relate4type Lib "c4dll.dll" Alias "relate4typeVB" (ByVal r4 As Integer, ByVal rType As Short) As Short +#End If + + '=============================================================================================== + ' + ' Report function prototypes + ' + '================================================================================================ +#If USE_D4DLL Then + Declare Function report4caption Lib "d4dll.dll" (ByVal r4 As Integer, ByVal caption As String) As Short + Declare Function report4currency Lib "d4dll.dll" (ByVal r4 As Integer, ByVal currncy As String) As Short + Declare Function report4dateFormat Lib "d4dll.dll" (ByVal r4 As Integer, ByVal dateFmt As String) As Short + Declare Function report4decimal Lib "d4dll.dll" Alias "report4decimal_v"(ByVal r4 As Integer, ByVal decChar As String) As Short + Declare Function report4do Lib "d4dll.dll" Alias "report4doCB"(ByVal r4 As Integer) As Short + Declare Sub report4freeLow Lib "d4dll.dll" (ByVal r4 As Integer, ByVal freeRelate As Short, ByVal closeFiles As Short, ByVal doPrinterFree As Short) + Declare Function report4margins Lib "d4dll.dll" (ByVal r4 As Integer, ByVal mLeft As Integer, ByVal mRight As Integer, ByVal mTop As Integer, ByVal mBottom As Integer, ByVal uType As Short) As Short + Declare Function report4pageSize Lib "d4dll.dll" (ByVal r4 As Integer, ByVal pHeight As Integer, ByVal pWidth As Integer, ByVal uType As Short) As Short + Declare Function report4parent32 Lib "d4dll.dll" Alias "report4parent" (ByVal r4 As Integer, ByVal hWnd As IntPtr) As Short + Declare Sub report4printerSelect Lib "d4dll.dll" (ByVal r4 As Integer) + Declare Function report4querySet Lib "d4dll.dll" (ByVal r4 As Integer, ByVal queryExpr As String) As Short + Declare Function report4relate Lib "d4dll.dll" (ByVal r4 As Integer) As Integer + Declare Function report4retrieve Lib "d4dll.dll" (ByVal c4 As Integer, ByVal fileName As String, ByVal openFiles As Short, ByVal dataPath As String) As Integer + Declare Function report4save Lib "d4dll.dll" (ByVal r4 As Integer, ByVal fileName As String, ByVal savePaths As Short) As Short + Declare Function report4screenBreaks Lib "d4dll.dll" (ByVal r4 As Integer, ByVal value As Short) As Short + Declare Function report4separator Lib "d4dll.dll" Alias "report4separator_v"(ByVal r4 As Integer, ByVal separator As String) As Short + Declare Function report4sortSet Lib "d4dll.dll" (ByVal r4 As Integer, ByVal sortExpr As String) As Short + Declare Function report4toScreen Lib "d4dll.dll" (ByVal r4 As Integer, ByVal toScreen As Short) As Short +#Else + Declare Function report4caption Lib "c4dll.dll" (ByVal r4 As Integer, ByVal caption As String) As Short + Declare Function report4currency Lib "c4dll.dll" (ByVal r4 As Integer, ByVal currncy As String) As Short + Declare Function report4dateFormat Lib "c4dll.dll" (ByVal r4 As Integer, ByVal dateFmt As String) As Short + Declare Function report4decimal Lib "c4dll.dll" Alias "report4decimal_v" (ByVal r4 As Integer, ByVal decChar As String) As Short + Declare Function report4do Lib "c4dll.dll" Alias "report4doCB" (ByVal r4 As Integer) As Short + Declare Sub report4freeLow Lib "c4dll.dll" (ByVal r4 As Integer, ByVal freeRelate As Short, ByVal closeFiles As Short, ByVal doPrinterFree As Short) + Declare Function report4margins Lib "c4dll.dll" (ByVal r4 As Integer, ByVal mLeft As Integer, ByVal mRight As Integer, ByVal mTop As Integer, ByVal mBottom As Integer, ByVal uType As Short) As Short + Declare Function report4pageSize Lib "c4dll.dll" (ByVal r4 As Integer, ByVal pHeight As Integer, ByVal pWidth As Integer, ByVal uType As Short) As Short + Declare Function report4parent32 Lib "c4dll.dll" Alias "report4parent" (ByVal r4 As Integer, ByVal hWnd As IntPtr) As Short + Declare Sub report4printerSelect Lib "c4dll.dll" (ByVal r4 As Integer) + Declare Function report4querySet Lib "c4dll.dll" (ByVal r4 As Integer, ByVal queryExpr As String) As Short + Declare Function report4relate Lib "c4dll.dll" (ByVal r4 As Integer) As Integer + Declare Function report4retrieve Lib "c4dll.dll" (ByVal c4 As Integer, ByVal fileName As String, ByVal openFiles As Short, ByVal dataPath As String) As Integer + Declare Function report4save Lib "c4dll.dll" (ByVal r4 As Integer, ByVal fileName As String, ByVal savePaths As Short) As Short + Declare Function report4screenBreaks Lib "c4dll.dll" (ByVal r4 As Integer, ByVal value As Short) As Short + Declare Function report4separator Lib "c4dll.dll" Alias "report4separator_v" (ByVal r4 As Integer, ByVal separator As String) As Short + Declare Function report4sortSet Lib "c4dll.dll" (ByVal r4 As Integer, ByVal sortExpr As String) As Short + Declare Function report4toScreen Lib "c4dll.dll" (ByVal r4 As Integer, ByVal toScreen As Short) As Short +#End If + + '=============================================================================================== + ' + ' Tag Functions' Prototypes + ' + '----------------------------------------------------------------------------------------------- +#If USE_D4DLL Then + Declare Function t4aliasCB Lib "d4dll.dll" Alias "t4alias"(ByVal t4 As Integer) As Integer + Declare Function t4close Lib "d4dll.dll" (ByVal t4 As Integer) As Short + Declare Function t4descending Lib "d4dll.dll" Alias "tfile4isDescending"(ByVal t4 As Integer) As Short + Declare Function t4exprCB Lib "d4dll.dll" (ByVal t4 As Integer) As Integer + Declare Function t4filterCB Lib "d4dll.dll" (ByVal t4 As Integer) As Integer + Declare Function t4open Lib "d4dll.dll" Alias "t4openCB" (ByVal dbPtr As Integer, ByVal IndexName As String) As Integer + Declare Function t4seekN Lib "d4dll.dll" (ByVal t4 As Integer, ByVal seekValue As String, ByVal inputKeyLen As Short, ByVal doDataPosition As Short) As Short + Declare Function t4unique Lib "d4dll.dll" (ByVal t4 As Integer) As Short + Declare Function t4uniqueSet Lib "d4dll.dll" Alias "t4uniqueSetVB"(ByVal t4 As Integer, ByVal value As Short) As Short +#Else + Declare Function t4aliasCB Lib "c4dll.dll" Alias "t4alias" (ByVal t4 As Integer) As Integer + Declare Function t4close Lib "c4dll.dll" (ByVal t4 As Integer) As Short + Declare Function t4descending Lib "c4dll.dll" Alias "tfile4isDescending" (ByVal t4 As Integer) As Short + Declare Function t4exprCB Lib "c4dll.dll" (ByVal t4 As Integer) As Integer + Declare Function t4filterCB Lib "c4dll.dll" (ByVal t4 As Integer) As Integer + Declare Function t4open Lib "c4dll.dll" Alias "t4openCB" (ByVal dbPtr As Integer, ByVal IndexName As String) As Integer + Declare Function t4seekN Lib "c4dll.dll" (ByVal t4 As Integer, ByVal seekValue As String, ByVal inputKeyLen As Short, ByVal doDataPosition As Short) As Short + Declare Function t4unique Lib "c4dll.dll" (ByVal t4 As Integer) As Short + Declare Function t4uniqueSet Lib "c4dll.dll" Alias "t4uniqueSetVB" (ByVal t4 As Integer, ByVal value As Short) As Short +#End If + + '======================================================================================= + ' + ' Utility function prototypes + ' + '----------------------------------------------------------------------------------------------- +#If USE_D4DLL Then + Declare Function u4alloc Lib "d4dll.dll" Alias "u4allocDefault"(ByVal amt As Integer) As Integer + Declare Function u4allocFree Lib "d4dll.dll" Alias "u4allocFreeDefault"(ByVal c4 As Integer, ByVal amt As Integer) As Integer + Declare Sub u4free Lib "d4dll.dll" Alias "u4freeDefault"(ByVal memPtr As Integer) + + '16-Bit versions + Declare Function u4ncpy Lib "d4dll.dll" (ByVal MemPtr1 As String, ByVal memptr2 As Integer, ByVal memLength As Short) As Short + Declare Function u4ncpy2 Lib "d4dll.dll" Alias "u4ncpy"(ByVal MemPtr1 As Integer, ByVal memptr2 As String, ByVal memLength As Short) As Short + + '32-Bit versions + 'Declare Function u4ncpy& Lib "d4dll.dll" (ByVal MemPtr1$, ByVal memptr2&, ByVal memLength&) + 'Declare Function u4ncpy2& Lib "d4dll.dll" Alias "u4ncpy" (ByVal MemPtr1&, ByVal memptr2$, ByVal memLength&) + + Declare Sub u4memCpy Lib "d4dll.dll" (ByVal dest As String, ByVal source As Integer, ByVal numCopy As Integer) + Declare Function u4switch Lib "d4dll.dll" () As Integer +#Else + Declare Function u4alloc Lib "c4dll.dll" Alias "u4allocDefault" (ByVal amt As Integer) As Integer + Declare Function u4allocFree Lib "c4dll.dll" Alias "u4allocFreeDefault" (ByVal c4 As Integer, ByVal amt As Integer) As Integer + Declare Sub u4free Lib "c4dll.dll" Alias "u4freeDefault" (ByVal memPtr As Integer) + + '16-Bit versions + Declare Function u4ncpy Lib "c4dll.dll" (ByVal MemPtr1 As String, ByVal memptr2 As Integer, ByVal memLength As Short) As Short + Declare Function u4ncpy2 Lib "c4dll.dll" Alias "u4ncpy" (ByVal MemPtr1 As Integer, ByVal memptr2 As String, ByVal memLength As Short) As Short + + '32-Bit versions + 'Declare Function u4ncpy& Lib "c4dll.dll" (ByVal MemPtr1$, ByVal memptr2&, ByVal memLength&) + 'Declare Function u4ncpy2& Lib "c4dll.dll" Alias "u4ncpy" (ByVal MemPtr1&, ByVal memptr2$, ByVal memLength&) + + Declare Sub u4memCpy Lib "c4dll.dll" (ByVal dest As String, ByVal source As Integer, ByVal numCopy As Integer) + Declare Function u4switch Lib "c4dll.dll" () As Integer +#End If + '======================================================================================= + ' + ' Misc. function prototypes + ' + '======================================================================================== +#If USE_D4DLL Then + Declare Function v4Cstring Lib "d4dll.dll" (ByVal s As String) As Integer + Declare Sub v4Cstringfree Lib "d4dll.dll" (ByVal s As Integer) +#Else + Declare Function v4Cstring Lib "c4dll.dll" (ByVal s As String) As Integer + Declare Sub v4Cstringfree Lib "c4dll.dll" (ByVal s As Integer) +#End If + + Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal dest As String, ByVal src As String) As Integer + + 'CodeBase Return Code Constants + + Public Const r4success As Short = 0 + Public Const r4same As Short = 0 + Public Const r4found As Short = 1 + Public Const r4down As Short = 1 + Public Const r4after As Short = 2 + Public Const r4complete As Short = 2 + Public Const r4eof As Short = 3 + Public Const r4bof As Short = 4 + Public Const r4entry As Short = 5 + Public Const r4descending As Short = 10 + Public Const r4unique As Short = 20 + Public Const r4uniqueContinue As Short = 25 + Public Const r4locked As Short = 50 + Public Const r4noCreate As Short = 60 + Public Const r4noOpen As Short = 70 + Public Const r4notag As Short = 80 + Public Const r4terminate As Short = 90 + Public Const r4inactive As Short = 110 + Public Const r4active As Short = 120 + Public Const r4authorize As Short = 140 + Public Const r4connected As Short = 150 + Public Const r4logOpen As Short = 170 + Public Const r4logOff As Short = 180 + Public Const r4null As Short = 190 + Public Const r4timeout As Short = 225 + + Public Const relate4filterRecord As Short = 101 + Public Const relate4doRemove As Short = 102 + Public Const relate4skipped As Short = 104 + Public Const relate4blank As Short = 105 + Public Const relate4skipRec As Short = 106 + Public Const relate4terminate As Short = 107 + Public Const relate4exact As Short = 108 + Public Const relate4scan As Short = 109 + Public Const relate4approx As Short = 110 + Public Const relate4sortSkip As Short = 120 + Public Const relate4sortDone As Short = 121 + + 'CodeBasic Field Definition Constants + Public Const r4logLen As Short = 1 + Public Const r4dateLen As Short = 8 + Public Const r4memoLen As Short = 10 + Public Const r4bin As String = "B" ' Binary + Public Const r4str As String = "C" ' Character + Public Const r4charBin As String = "Z" ' Character (binary) + Public Const r4currency As String = "Y" ' Currency + Public Const r4date As String = "D" ' Date + Public Const r4dateTime As String = "T" ' DateTime + Public Const r4double As String = "B" ' Double + Public Const r4float As String = "F" ' Float + Public Const r4gen As String = "G" ' General + Public Const r4int As String = "I" ' Integer + Public Const r4log As String = "L" ' Logical + Public Const r4memo As String = "M" ' Memo + Public Const r4memoBin As String = "X" ' Memo (binary) + Public Const r4num As String = "N" ' Numeric + Public Const r4dateDoub As String = "d" ' Date as Double + Public Const r4numDoub As String = "n" ' Numeric as Double + Public Const r4unicode As String = "W" ' Unicode character (same as r5wstr) + + Public Const r4system As String = "0" ' used by FoxPro for null field value field + Public Const r5wstrLen As String = "O" + Public Const r5ui4 As String = "P" + Public Const r5i2 As String = "Q" + Public Const r5ui2 As String = "R" + Public Const r5guid As String = "V" + Public Const r5wstr As String = "W" + Public Const r5i8 As String = "1" ' 8-byte long signed value (LONGLONG) + Public Const r5dbDate As String = "2" ' struct DBDATE (6 bytes) + Public Const r5dbTime As String = "3" ' struct DBTIME (6 bytes) + Public Const r5dbTimeStamp As String = "4" ' struct DBTIMESTAMP (16 bytes) + Public Const r5date As String = "5" + + 'Other CodeBase Constants + Public Const cp0 As Short = 0 'code4.codePage constant + Public Const cp437 As Short = 1 + Public Const cp850 As Short = 2 ' LY Jun 24/04 + Public Const cp1252 As Short = 3 + Public Const LOCK4OFF As Short = 0 + Public Const LOCK4ALL As Short = 1 + Public Const LOCK4DATA As Short = 2 + Public Const LOG4TRANS As Short = 0 + Public Const LOG4ON As Short = 1 + Public Const LOG4ALWAYS As Short = 2 + Public Const OPEN4DENY_NONE As Short = 0 + Public Const OPEN4DENY_RW As Short = 1 + Public Const OPEN4DENY_WRITE As Short = 2 + Public Const OPT4EXCLUSIVE As Short = -1 + Public Const OPT4OFF As Short = 0 + Public Const OPT4ALL As Short = 1 + Public Const r4check As Short = -5 + Public Const r4maxVBStringLen As Integer = 65500 + Public Const r4maxVBStrFunction As Short = 32767 + Public Const collate4machine As Short = 1 + Public Const collate4general As Short = 1001 + Public Const collate4special As Short = 1002 + Public Const sort4machine As Short = 0 'code4.collatingSequence constant + Public Const sort4general As Short = 1 + Public Const WAIT4EVER As Short = -1 + + ' Constants for code4serverOS + Public Const OS4UNKNOWN As Short = &H0S + Public Const OS4WIN32 As Short = &H1S + Public Const OS4UNIX As Short = &H2S + + + 'CodeBasic Error Code Constants + Public Const e4close As Short = -10 + Public Const e4create As Short = -20 + Public Const e4len As Short = -30 + Public Const e4lenSet As Short = -40 + Public Const e4lock As Short = -50 + Public Const e4open As Short = -60 + Public Const e4permiss As Short = -61 + Public Const e4access As Short = -62 + Public Const e4numFiles As Short = -63 + Public Const e4fileFind As Short = -64 + Public Const e4instance As Short = -69 + Public Const e4read As Short = -70 + Public Const e4remove As Short = -80 + Public Const e4rename As Short = -90 + Public Const e4seek As Short = -250 + Public Const e4unlock As Short = -110 + Public Const e4write As Short = -120 + Public Const e4data As Short = -200 + Public Const e4fieldName As Short = -210 + Public Const e4fieldType As Short = -220 + Public Const e4recordLen As Short = -230 + Public Const e4append As Short = -240 + Public Const e4entry As Short = -300 + Public Const e4index As Short = -310 + Public Const e4tagName As Short = -330 + Public Const e4unique As Short = -340 + Public Const e4tagInfo As Short = -350 + Public Const e4commaExpected As Short = -400 + Public Const e4complete As Short = -410 + Public Const e4dataName As Short = -420 + Public Const e4lengthErr As Short = -422 + Public Const e4notConstant As Short = -425 + Public Const e4numParms As Short = -430 + Public Const e4overflow As Short = -440 + Public Const e4rightMissing As Short = -450 + Public Const e4typeSub As Short = -460 + Public Const e4unrecFunction As Short = -470 + Public Const e4unrecOperator As Short = -480 + Public Const e4unrecValue As Short = -490 + Public Const e4undetermined As Short = -500 + Public Const e4tagExpr As Short = -510 + Public Const e4opt As Short = -610 + Public Const e4optSuspend As Short = -620 + Public Const e4optFlush As Short = -630 + Public Const e4relate As Short = -710 + Public Const e4lookupErr As Short = -720 + Public Const e4relateRefer As Short = -730 + Public Const e4info As Short = -910 + Public Const e4memory As Short = -920 + Public Const e4parm As Short = -930 + Public Const e4parmNull As Short = -935 + Public Const e4demo As Short = -940 + Public Const e4result As Short = -950 + Public Const e4verify As Short = -960 + Public Const e4struct As Short = -970 + Public Const e4notSupported As Short = -1090 + Public Const e4version As Short = -1095 + Public Const e4memoCorrupt As Short = -1110 + Public Const e4memoCreate As Short = -1120 + Public Const e4transViolation As Short = -1200 + Public Const e4trans As Short = -1210 + Public Const e4rollback As Short = -1220 + Public Const e4commit As Short = -1230 + Public Const e4transAppend As Short = -1240 + Public Const e4corrupt As Short = -1300 + Public Const e4connection As Short = -1310 + Public Const e4socket As Short = -1320 + Public Const e4net As Short = -1330 + Public Const e4loadlib As Short = -1340 + Public Const e4timeOut As Short = -1350 + Public Const e4message As Short = -1360 + Public Const e4packetLen As Short = -1370 + Public Const e4packet As Short = -1380 + Public Const e4max As Short = -1400 + Public Const e4codeBase As Short = -1410 + Public Const e4name As Short = -1420 + Public Const e4authorize As Short = -1430 + Public Const e4server As Short = -2100 + Public Const e4config As Short = -2110 + Public Const e4cat As Short = -2120 + + Public Const ACTION4NONE As Short = 0 + Public Const ACTION4REINDEX As Short = 1 + Public Const ACTION4INITIALIZING As Short = 32767 + + 'ADO Constants + Public Const e5badBinding As Short = 200 + Public Const e5conversion As Short = 210 + Public Const e5delete As Short = 220 + Public Const e5property As Short = 230 + + Function b4String(ByRef p As Integer) As String + 'This is a utility function for copying a 'C' string to a VB string. + + Dim s As String = New String(CChar(" "), 256) + Dim rc As Short + + If p <> 0 Then + rc = u4ncpy(s, p, 256) + End If + + b4String = Left(s, rc) + End Function + + Function code4dateFormat(ByRef c4Ptr As Integer) As String + 'This function returns the CODE4.dateFormat member + code4dateFormat = b4String(code4dateFormatVB(c4Ptr)) + End Function + + Function code4indexExtension(ByRef c4Ptr As Integer) As String + 'This function returns the CodeBase DLL index format + code4indexExtension = b4String(code4indexExtensionVB(c4Ptr)) + End Function + + Function code4lockFileName(ByRef c4Ptr As Integer) As String + 'This function returns the locked file name + code4lockFileName = b4String(code4lockFileNameVB(c4Ptr)) + End Function + + Function code4lockNetworkId(ByRef c4Ptr As Integer) As String + 'This function returns the user's network id + 'who has locked the current file + code4lockNetworkId = b4String(code4lockNetworkIdVB(c4Ptr)) + End Function + + Function code4lockUserId(ByRef c4Ptr As Integer) As String + 'This function returns the user's name + 'who has locked the current file + code4lockUserId = b4String(code4lockUserIdVB(c4Ptr)) + End Function + + Function code4logFileName(ByRef c4Ptr As Integer) As String + 'This function returns the locked file name + code4logFileName = b4String(code4lockFileNameVB(c4Ptr)) + End Function + + Function d4alias(ByRef dbPtr As Integer) As String + 'This function returns the data file alias + d4alias = b4String(d4aliasCB(dbPtr)) + End Function + + Function d4create(ByVal cb As Integer, ByRef dbname As String, ByRef D() As FIELD4INFO, ByRef n() As TAG4INFO) As Integer + + ' d4create calls d4createLow() to create a new database. + ' This function is the same as d4createData() except that + ' it requires an additional parameter which it uses to + ' create tag information for a database. + ' + ' Variable n is an array of type TAG4INFO which corresponds + ' to TAG4INFOCB, a structure that can be used by d4create. + ' The difference once again is merely the difference in the + ' representation of strings between C and Basic. + ' d4create takes the contents from the TAG4INFO structure + ' and builds a TAG4INFOCB structure which it passes to d4createLow(). + ' Note: the TAG4INFOCB array is one size larger than the TAG4INFO + ' array. The extra empty (zero filled) array element is the + ' way that d4createLow() detects the end of the array. + + + Dim i As Short + + Dim flb As Short + Dim fub As Short + Dim fs As Short + + Dim tlb As Short + Dim tub As Short + Dim ts As Short + + + flb = LBound(D) + fub = UBound(D) + ' LY Apr 13/04 : changed from fs = fub - 1, since Microsoft docs wrong about + ' array sizes (i.e. dim array(N) contains elements 0 to N, not 0 to N - 1) + fs = fub + + + Dim f((fub + 1)) As FIELD4INFOCB + i = flb + Do While D(i).fName <> "" And i <= fs + f(i).fName = v4Cstring(D(i).fName) ' note: this function allocates memory + f(i).ftype = Asc(D(i).ftype) + f(i).flength = D(i).flength + f(i).fdecimals = D(i).fdecimals + f(i).fnulls = D(i).fnulls + i = i + 1 + Loop + + tlb = LBound(n) + tub = UBound(n) + ' LY Apr 13/04 : changed from ts = tub - 1, since Microsoft docs wrong about + ' array sizes (i.e. dim array(N) contains elements 0 to N, not 0 to N - 1) + ts = tub + Dim t((tub + 1)) As TAG4INFOCB + i = tlb + Do While n(i).name <> "" And i <= ts + t(i).name = v4Cstring(n(i).name) + t(i).expression = v4Cstring(n(i).expression) + t(i).filter_Renamed = v4Cstring(n(i).filter_Renamed) + t(i).unique = n(i).unique + t(i).descending = n(i).descending + i = i + 1 + Loop + d4create = d4createLow(cb, (dbname), f(0), t(0)) + + ' Since v4Cstring allocates memory for the storage of + ' C strings, we must free the memory after it has been + ' used. + ' LY Jul 14/04 : changed from "1 to fs" to "flb to fs - 1" + For i = flb To fs - 1 + Call v4Cstringfree(f(i).fName) + Next i + + ' LY Jul 14/04 : changed from "1 to ts" to "tlb to ts - 1" + For i = tlb To ts - 1 + Call v4Cstringfree(t(i).name) + Call v4Cstringfree(t(i).expression) + Call v4Cstringfree(t(i).filter_Renamed) + Next i + + End Function + + Function d4createData(ByVal cb As Integer, ByRef dbname As String, ByRef D() As FIELD4INFO) As Integer + + ' d4createData() calls d4createLow() to create a new database. + ' d4create() builds the FIELD4INFOCB array which is + ' the one recognized by d4create (note that the only difference + ' is that the fname field is a string in type FIELD4INFO + ' and type long in FIELD4INFOCB which is how strings are represented + ' in C). Furthermore, the size of f (our FIELD4INFOCB array) is one + ' larger than the size s of FIELD4INFO d. This is because + ' d4create doesn't know the size of the array f and therefore it stops + ' when it reaches an array element that is filled with zeros which + ' the extra (s+1)'th element of f provides. + + Dim i As Short + + ' Make this array 1 larger than the one passed in. + Dim f(1 + UBound(D) - LBound(D)) As FIELD4INFOCB + + i = 0 + For Each fielddef As FIELD4INFO In D + If Len(fielddef.fName) = 0 Then + Exit For + End If + f(i).fName = v4Cstring(fielddef.fName) ' note: this function allocates memory + f(i).ftype = Asc(fielddef.ftype) + f(i).flength = fielddef.flength + f(i).fdecimals = fielddef.fdecimals + f(i).fnulls = fielddef.fnulls + i = i + 1 + Next fielddef + + d4createData = d4createLow(cb, (dbname), f(0), 0) + + ' Since v4Cstring allocates memory for the storage of + ' C strings, we must free the memory after it has been + ' used. + ' LY Jul 14/04 : changed from "lb to s" to "lb to s - 1" + For Each cf As FIELD4INFOCB In f + Call v4Cstringfree(cf.fName) + Next cf + End Function + + Function d4encodeHandle(ByRef temp As Integer) As Object + Dim EncodedString As String + EncodedString = "#" & Str(temp) + d4encodeHandle = EncodedString + End Function + + Function d4fieldsAdd(ByRef DATA4 As Integer, ByRef fields() As FIELD4INFO) As Integer + Dim i As Short + Dim ub As Short + + ub = UBound(fields) + Dim f(ub + 1) As FIELD4INFOCB + For i = LBound(fields) To ub + f(i).fName = v4Cstring(fields(i).fName) ' note: this function allocates memory + f(i).ftype = Asc(fields(i).ftype) + f(i).flength = fields(i).flength + f(i).fdecimals = fields(i).fdecimals + f(i).fnulls = fields(i).fnulls + Next i + + d4fieldsAdd = d4fieldsAddCB(DATA4, ub, f(LBound(f))) + If d4fieldsAdd <> 0 Then + DATA4 = d4fieldsAdd + End If + + ' Since v4Cstring allocates memory for the storage of + ' C strings, we must free the memory after it has been + ' used. + For i = LBound(f) To UBound(f) + Call v4Cstringfree(f(i).fName) + Next i + End Function + + Function d4fieldsRemove(ByRef DATA4 As Integer, ByRef fieldNames() As String) As Integer + Dim addrs() As Integer + Dim i As Short + ReDim addrs(UBound(fieldNames)) + For i = LBound(fieldNames) To UBound(fieldNames) + addrs(i) = v4Cstring(fieldNames(i)) + Next i + + d4fieldsRemove = d4fieldsRemoveCB(DATA4, UBound(fieldNames) - LBound(fieldNames) + 1, addrs(LBound(addrs))) + + For i = LBound(addrs) To UBound(addrs) + Call v4Cstring(CStr(addrs(i))) + Next i + End Function + + Function d4fileName(ByRef dbfPtr As Integer) As String + d4fileName = b4String(d4fileNameCB(dbfPtr)) + End Function + + Function d4go(ByRef DATA4 As Integer, ByRef recordNumber As Integer) As Short + d4go = d4goLow(DATA4, recordNumber, 1) + End Function + + Sub date4assign(ByRef dateString_Renamed As String, ByRef julianDay As Integer) + 'This functions converts the julian day into standard format + 'and puts the result in dateString + + 'Size dateString$ + dateString_Renamed = Space(8 + 1) + + Call date4assignLow(dateString_Renamed, julianDay, 0) + dateString_Renamed = Left(dateString_Renamed, 8) + End Sub + + Function date4cdow(ByRef dateString_Renamed As String) As String + 'This function returns the day of the week in a character + 'string based on the value in 'DateString' + + ' CS 2006/05/12 Fix so function always returns a value. + If Len(dateString_Renamed) < 8 Then + date4cdow = "" + Else + Dim datePtr As Integer + datePtr = date4cdowCB(dateString_Renamed) 'Get pointer to day + If datePtr <> 0 Then + date4cdow = b4String(datePtr) + Else + date4cdow = "" + End If + End If + End Function + + Function date4cmonth(ByRef dateString_Renamed As String) As String + 'This function returns the month in 'DateString' as a + 'character string + + ' CS 2006/05/12 Fix so function always returns a value. + If Len(dateString_Renamed) < 8 Then + date4cmonth = "" + Else + Dim datePtr As Integer + datePtr = date4cmonthCB(dateString_Renamed) 'Get pointer to month + If datePtr <> 0 Then + date4cmonth = b4String(datePtr) 'Return month name + Else + date4cmonth = "" + End If + End If + End Function + + Sub date4format(ByRef dateString_Renamed As String, ByRef Result As String, ByRef pic As String) + 'This function formats Result$ using the date value + ' in 'dateString$' and the format info. in 'Pic$' + + 'Size Result$ + Result = Space(Len(pic) + 1) + + Call date4formatCB(dateString_Renamed, Result, pic) + Result = Left(Result, Len(pic)) + End Sub + + Sub date4init(ByRef Result As String, ByRef dateString_Renamed As String, ByRef pic As String) + 'This function copies the date, specified by dateString, + 'and formatted according to pic, into Result. The date copied + 'will be in standard dBASE format, + + 'Size Result$ + Result = Space(9) + + Call date4initCB(Result, dateString_Renamed, pic) + Result = Left(Result, 8) + End Sub + + Sub date4today(ByRef dateS As String) + If Len(dateS) < 8 Then dateS = Space(8) + Call date4todayCB(dateS) + End Sub + + Function error4text(ByRef c4 As Integer, ByRef errCode As Integer) As String + 'This function returns the error message string + error4text = b4String(error4textCB(c4, errCode)) + End Function + + Function expr4null(ByRef exPtr As Integer) As Short + expr4null = expr4nullLow(exPtr, 1) + End Function + + Function expr4source(ByRef exPtr As Integer) As String + 'This function returns a copy of the original + 'dBASE expression string + expr4source = b4String(expr4sourceCB(exPtr)) + End Function + + Function expr4str(ByRef exPtr As Integer) As String + 'This function returns the parsed string + + 'Get pointer to alias string + Dim exprPtr As Integer = expr4strCB(exPtr) + + If exprPtr = 0 Then + Return "" + Else + Return Left(b4String(exprPtr), expr4len(exPtr)) + End If + End Function + + Function expr4type(ByRef exPtr As Integer) As String + 'This function returns the type of the parsed string + + Dim exprType As Short + + ' CS 2006/05/12 Fix so function always returns a value. + 'Get ASCII value of type + exprType = expr4typeCB(exPtr) + If exprType <> 0 Then + expr4type = Chr(exprType) + Else + expr4type = "" + End If + End Function + + Sub f4assign(ByRef fPtr As Integer, ByRef fStr As String) + Call f4assignN(fPtr, fStr, Len(fStr)) + End Sub + + Sub f4assignBinary(ByRef fPtr As Integer, ByRef value() As Byte) + Call f4assignBinaryVB(fPtr, value(LBound(value)), UBound(value) - LBound(value)) + End Sub + + Sub f4assignUnicode(ByRef fPtr As Integer, ByRef value As String) + Dim bArray() As Byte + bArray = System.Text.UnicodeEncoding.Unicode.GetBytes(value & ControlChars.NullChar) + Call f4assignUnicodeVB(fPtr, bArray(0)) + End Sub + + Sub f4assignInt(ByRef fldPtr As Integer, ByRef fldVal As Short) + Call f4assignIntVB(fldPtr, fldVal) + End Sub + + Function f4binary(ByRef field As Integer) As Object + Dim fLen As Integer + fLen = f4len(field) + Dim buffer() As Byte + If fLen = 0 Then + ReDim buffer(0) + Else + ReDim buffer((fLen + 1)) ' 1 greater because f4ncpy null-terminates the buffer + fLen = f4ncpyBinary(field, buffer(0), fLen + 1) + ReDim Preserve buffer(fLen - 1) + End If + f4binary = buffer + End Function + + Function f4currency(ByRef field As Integer, ByRef numDec As Short) As String + 'This function returns the contents of a field + f4currency = b4String(f4currencyCB(field, numDec)) + End Function + + Function f4dateTime(ByRef field As Integer) As String + 'This function returns the contents of a field + f4dateTime = b4String(f4dateTimeCB(field)) + End Function + + Function f4memoAssignBinary(ByRef fPtr As Integer, ByRef value() As Byte) As Short + f4memoAssignBinary = f4memoAssignBinaryVB(fPtr, value(LBound(value)), UBound(value) - LBound(value) + 1) + End Function + + Sub f4memoAssignUnicode(ByRef fPtr As Integer, ByRef value As String) + Dim bArray() As Byte + bArray = System.Text.UnicodeEncoding.Unicode.GetBytes(value & ControlChars.NullChar) + Call f4memoAssignUnicodeVB(fPtr, bArray(0)) + End Sub + + Function f4memoBinary(ByRef field As Integer) As Object + Dim fLen As Integer + fLen = f4memoLen(field) + Dim buffer() As Byte + If fLen = 0 Then + ReDim buffer(0) + Else + ' CS 2007/04/23 Fixes because Lbound is always 0. + ReDim buffer(fLen) + fLen = f4memoNcpyBinary(field, buffer(0), fLen + 1) + ReDim Preserve buffer(fLen - 1) + End If + f4memoBinary = buffer + End Function + + Function f4memoStr(ByRef fPtr As Integer) As String + 'This function returns a string corresponding to the memo + 'field pointer argument. + Dim MemoLen, MemoPtr As Integer + + MemoLen = f4memoLen(fPtr) 'Get memo length + + If MemoLen > &H7FFFFFFF Then + MsgBox("Error #: -910" & ControlChars.CrLf & "Unexpected Information" & vbCrLf & "Memo entry too long to return in a Visual Basic string." & vbCrLf & "Field Name:" & vbCrLf & f4name(fPtr), 16, "CodeBase Error") + Return "" + End If + + MemoPtr = f4memoPtr(fPtr) + If MemoPtr = 0 Then Return "" + + Dim MemoString As String + MemoString = New String(" ", MemoLen) + + 'Copy 'MemoPtr' to VB string 'MemoString' + u4memCpy(MemoString, MemoPtr, MemoLen) + + f4memoStr = MemoString + End Function + + Sub f4memoStr64(ByRef fPtr As Integer, ByRef src As String) + + 'This function copies a large memo entry (32K-64K) + 'into a user supplied string + + Dim r4line As String + r4line = Chr(10) & Chr(13) + + Dim MemoLen, MemoPtr As Integer + + MemoLen = f4memoLen(fPtr) 'Get memo length + + ' 'r4maxVBStringLen' defined in 'Constants' section of this file + If MemoLen > r4maxVBStringLen Then + MsgBox("Error #: -910" & r4line & "Unexpected Information" & r4line & "Memo entry too long to retrieve into VB string." & r4line & "Field Name:" & r4line & f4name(fPtr), 16, "CodeBasic Error") + Exit Sub + End If + + MemoPtr = f4memoPtr(fPtr) + If MemoPtr = 0 Then Exit Sub + + src = New String(" ", MemoLen) + + 'Copy 'MemoPtr' to VB string 'src' + u4memCpy(src, MemoPtr, MemoLen) + + End Sub + + Function f4name(ByRef fPtr As Integer) As String + 'This function returns the name of a field + + Dim FldNamePtr As Integer 'Pointer to field name + FldNamePtr = f4nameCB(fPtr) 'Get pointer + + f4name = b4String(FldNamePtr) + End Function + + Function f4nCpy(ByRef field As Integer, ByRef s As String, ByRef slen As Short) As Short + 'This function copies the fields contents into a string + s = Space(slen) 'Make s$ one byte longer for null character that u4ncpy adds + Dim fPtr As Integer + fPtr = f4ptr(field) + + If fPtr = 0 Then Exit Function + + u4memCpy(s, fPtr, slen) + + f4nCpy = Len(s) + End Function + + Function f4str(ByRef field As Integer) As String + 'This function returns the contents of a field + Dim s As String + Dim fPtr As Integer + Dim fLen As Short + + fPtr = f4ptr(field) + If fPtr = 0 Then Return "" + + fLen = f4len(field) 'Get field length + s = Space(fLen) 'Make s$ one byte longer for null character that u4ncpy adds + + u4memCpy(s, fPtr, fLen) + + f4str = s + End Function + + Function f4strUnicode(ByRef field As Integer) As String + 'This function returns the contents of a Unicode field + Dim bArray() As Byte + bArray = f4binary(field) + f4strUnicode = RTrimNulls(Left(System.Text.UnicodeEncoding.Unicode.GetString(bArray), f4len(field))) + End Function + + Function f4memoStrUnicode(ByRef field As Integer) As String + 'This function returns the contents of a Unicode memo field + Dim bArray() As Byte + bArray = f4memoBinary(field) + f4memoStrUnicode = RTrimNulls(Left(System.Text.UnicodeEncoding.Unicode.GetString(bArray), f4memoLen(field))) + End Function + + Function i4create(ByVal dbPtr As Integer, ByRef IndexName As String, ByRef n() As TAG4INFO) As Integer + ' i4create() calls i4createCB() to create a new + ' index file. Variable n is an array of type TAG4INFO + ' which corresponds to TAG4INFOCB, a structure that + ' can be used by i4createCB(). The difference once + ' again is merely the difference in the representation + ' of strings between C and Basic. + ' + ' i4create() takes the contents from the TAG4INFO + ' structure and builds a TAG4INFOCB structure which + ' it passes to i4createCB(). Note: the TAG4INFOCB + ' arrary is one size larger than the TAG4INFO array. + ' The extra empty (zero filled) array element is the + ' way that i4create detects the end of the array. + ' + ' Note also, that if 'IndexName' is an empty string, + ' the index file that is created will become a + ' "production" index file. i.e. it will be opened every + ' time the corresponding data file is opened. + + Dim i As Short + + ' CS 2006/06/21 Improve array handling. + Dim c_tag_array(UBound(n) - LBound(n)) As TAG4INFOCB ' Array size needs to be one more than VB array for null terminator. + i = 0 + For Each tag As TAG4INFO In n + c_tag_array(i).name = v4Cstring(tag.name) + c_tag_array(i).expression = v4Cstring(tag.expression) + c_tag_array(i).filter_Renamed = v4Cstring(tag.filter_Renamed) + c_tag_array(i).unique = tag.unique + c_tag_array(i).descending = tag.descending + i = i + 1 + Next tag + + ' LY Apr 18/05 : see LY Apr 18/05 in i4create.c + i4create = i4createCB(dbPtr, IndexName, c_tag_array(0)) + + ' Since v4Cstring allocates memory for the storage of + ' C strings, we must free the memory after it has been + ' used. + + For Each tag As TAG4INFOCB In c_tag_array + If tag.name <> 0 Then Call v4Cstringfree(tag.name) + If tag.expression <> 0 Then Call v4Cstringfree(tag.expression) + If tag.filter_Renamed <> 0 Then Call v4Cstringfree(tag.filter_Renamed) + Next tag + End Function + + Function i4fileName(ByRef iPtr As Integer) As String + 'This function returns the file name of an index tag + i4fileName = b4String(i4fileNameCB(iPtr)) + End Function + + Function i4open(ByRef d4 As Integer, ByRef fName As String) As Integer + If fName = "" Then + i4open = i4openCB(d4, 0) 'Use data file name + Else + i4open = i4openCB(d4, fName) 'Use supplied name + End If + End Function + + Function i4tagAdd(ByVal i4Ptr As Integer, ByRef n() As TAG4INFO) As Short + ' i4tagAdd adds additional tags to an existing + ' index. + + ' i4tagAdd takes the contents from the TAG4INFO + ' structure and builds a TAG4INFOCB structure which + ' is passed to i4tagAddCB. + + Dim i As Short + + Dim tlb As Short + Dim tub As Short + Dim ts As Short + + + tlb = LBound(n) + tub = UBound(n) + ts = tub - tlb + 1 + Dim t((ts + 1)) As TAG4INFOCB + For i = 1 To ts + t(i).name = v4Cstring(n((tlb - 1) + i).name) + t(i).expression = v4Cstring(n((tlb - 1) + i).expression) + t(i).filter_Renamed = v4Cstring(n((tlb - 1) + i).filter_Renamed) + t(i).unique = n((tlb - 1) + i).unique + t(i).descending = n((tlb - 1) + i).descending + Next i + + i4tagAdd = i4tagAddCB(i4Ptr, t(1)) + + End Function + + Function relate4masterExpr(ByRef r4Ptr As Integer) As String + 'This function returns the Relations expression string + relate4masterExpr = b4String(relate4masterExprCB(r4Ptr)) + End Function + + Function report4parent(ByVal r4 As Integer, ByVal hWnd As IntPtr) As Short + report4parent = report4parent32(r4, hWnd) + End Function + + Sub report4free(ByRef pReport As Integer, ByRef freeRelate As Short, ByRef closeFiles As Short) + Call report4freeLow(pReport, freeRelate, closeFiles, 1) + End Sub + + Function t4Alias(ByRef tPtr As Integer) As String + t4Alias = b4String(t4aliasCB(tPtr)) + End Function + + Function t4expr(ByRef tPtr As Integer) As String + 'This function returns the original tag expression + t4expr = b4String(t4exprCB(tPtr)) + End Function + + Function t4filter(ByRef tPtr As Integer) As String + + 'This function returns the tag filter expression + + Dim FilterPtr As Integer + + 'Get pointer to parsed filter expression + FilterPtr = t4filterCB(tPtr) + + If FilterPtr = 0 Then + t4filter = "" + Exit Function 'No filter + End If + + t4filter = b4String(FilterPtr) + + End Function + + Function u4descend(ByRef charString As String) As String + Dim Result As String = "" + Dim i As Short + + For i = 1 To Len(charString) + Result = Result & Chr(128 And Asc(Mid(charString, i, 1))) + Next + + u4descend = Result + End Function + + Private Function RTrimNulls(ByRef str_Renamed As String) As String + ' Returns a String containing a copy + ' of str without trailing nulls. + Dim curLength, newLength As Integer + curLength = Len(str_Renamed) + If curLength = 0 Then Return "" + + For newLength = 1 To curLength + If Mid(str_Renamed, newLength, 1) = ControlChars.NullChar Then + RTrimNulls = Left(str_Renamed, newLength - 1) + Exit Function + End If + Next + + RTrimNulls = str_Renamed + End Function +End Module diff --git a/test/CSharp/t4all.cs b/test/CSharp/t4all.cs new file mode 100644 index 0000000..cc35eb7 --- /dev/null +++ b/test/CSharp/t4all.cs @@ -0,0 +1,695 @@ +using System; +using CodeBase ; +namespace ConsoleApplication1 +{ + /// + /// Summary description for t4all1. + /// + class t4all + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main(string[] args) + { + // + // TODO: Add code to start application here + // + Code4 cb ; + Data4 data = new Data4(), data2 = new Data4(); + Tag4 tag = new Tag4() ; + Index4 index ; + Expr4 expr = new Expr4() ; + Relate4set rel = new Relate4set() ; + Relate4 relS = new Relate4() ; + string strTemp ; + Field4 fStr, fNum, fLog, fCur, fDT, fDouble ; + Field4memo fMem ; + int rc ; + short sRc ; + + cb = new Code4() ; + + // CODE4 structure members + + sRc = cb.accessMode ; + sRc = cb.autoOpen ; + rc = cb.codePage ; + rc = cb.collatingSequence ; + cb.compatibility = 30 ; + rc = cb.createTemp ; + rc = cb.errCreate ; + rc = cb.errDefaultUnique ; + rc = cb.errExpr ; + rc = cb.errFieldName ; + rc = cb.errGo ; + rc = cb.errOff ; + rc = cb.errorCode ; + rc = cb.errOpen ; + rc = cb.errRelate ; + rc = cb.errSkip ; + rc = cb.errTagName ; + rc = cb.fileFlush ; + cb.hWnd = 0 ; + rc = cb.lockAttempts ; + rc = cb.lockAttemptsSingle ; + cb.lockDelay = 10 ; + rc = cb.lockEnforce ; + rc = cb.log ; + rc = cb.memExpandBlock ; + rc = cb.memExpandData ; + rc = cb.memExpandIndex ; + rc = cb.memExpandLock ; + rc = cb.memExpandTag ; + cb.memSizeBlock = 1024 ; + cb.memSizeBuffer = 32768 ; + cb.memSizeMemo = 512 ; + cb.memSizeMemoExpr = 1024 ; + cb.memSizeSortBuffer = 4096 ; + cb.memSizeSortPool = 0xF000 ; + cb.memStartBlock = 10 ; + cb.memStartData = 10 ; + cb.memStartIndex = 10 ; + sRc = cb.memStartLock ; + rc = cb.memStartMax ; + cb.memStartTag = 10 ; + rc = cb.optimize ; + rc = cb.optimizeWrite ; + rc = cb.readLock ; + rc = cb.readOnly ; + rc = cb.safety ; + rc = cb.singleOpen ; + rc = cb.timeout ; + cb.timeout = 100 ; + + cb.errOff = 1 ; + cb.connect( "localhost", "23165", "", "", "" ) ; + cb.errOff = 0 ; + cb.errorCode = 0 ; + + cb.readOnly = 1 ; + cb.compatibility = 30 ; + if ( cb.indexExtension().ToUpper() == "NTX" ) + data.open( ref cb, "c:\\dbfs\\ntx\\student" ); + else + data.open( ref cb, "h:\\savetest\\student" ); + cb.readOnly = 0 ; + expr.parse( data, new Field4(data, 1).name() ); + cb.calcCreate( expr, "FFF" ) ; + cb.calcReset() ; + + cb.closeAll() ; + + cb.readOnly = 1 ; + cb.compatibility = 30 ; + if ( cb.indexExtension().ToUpper() == "NTX" ) + data.open( ref cb, "c:\\dbfs\\ntx\\student" ) ; + else + data.open( ref cb, "h:\\savetest\\student" ) ; + cb.readOnly = 0 ; + cb.data( "STUDENT" ) ; + data.close() ; + + string datestr = cb.dateFormat ; + cb.dateFormat = "MMM DD CCYY" ; + + // code4exit(); -- see end + + cb.flushFiles() ;; + + string extstr = cb.indexExtension() ; + + // code4init(); -- see beginning + // code4initUndo(); -- see end + + cb.lockGroup() ; + + cb.lockClear() ; + + cb.lockFileName() ; + + cb.lockItem() ; + + cb.lockNetworkId() ; + + cb.lockUserId() ; + + cb.logOpenOff() ; + + cb.safety = 0 ; + cb.logCreate( "t4all.log", "t4all" ) ; + + cb.logFileName() ; + + cb.initUndo() ; + cb.init() ; + + cb.errOff = 1 ; + cb.connect( "localhost", "23165", "", "", "" ) ; + cb.errOff = 0 ; + cb.errorCode = 0 ; + + cb.logOpen( "t4all.log", "t4all" ) ; + + cb.optAll() ; + + cb.optStart() ; + + cb.optSuspend() ; + + cb.compatibility = 30 ; + cb.safety = 0 ; + + Field4info fields = new Field4info( ref cb ) ; + fields.add( "STR", Code4.r4str, 10, 0, Code4.r4null ) ; + fields.add( "NUM", Code4.r4num, 4, 0, 0 ) ; + fields.add( "LOG", Code4.r4log, 10, 0, 0 ) ; + if ( cb.indexExtension().ToUpper() == "CDX" ) + { + fields.add( "CUR", Code4.r4currency, 10, 0, 0 ) ; + fields.add( "DOUBLE", Code4.r4double, 10, 0, 0 ) ; + fields.add( "DT", Code4.r4dateTime, 10, 0, 0 ) ; + } + fields.add( "MEM", Code4.r4memo, 10, 0, 0 ) ; + + Tag4info tags = new Tag4info( cb ) ; + tags.add( "STR", "STR", "", 0, 0 ) ; + tags.add( "NUM", "NUM", "", Code4.r4uniqueContinue, 0 ) ; + + data.create( ref cb, "t4all", ref fields, ref tags); + + cb.tranStart() ; + cb.tranCommit() ; + + cb.tranStart() ; + cb.tranRollback() ; + + cb.tranStatus() ; + + data.close() ; + + cb.unlock() ; + + rc = cb.unlockAuto ; + + cb.unlockAuto = Code4.LOCK4ALL ; + + /////////////////////////////////////////// + + cb.compatibility = 30 ; + cb.safety = 0 ; + data.create( ref cb, "t4all", ref fields, ref tags ); + + string newStr = data.alias ; + + data.alias = "newalias" ; + + data.appendStart( 0 ); + + data.append() ; + + data.appendBlank() ; + + data.blank() ; + + data.eof() ; + + data.bottom() ; + + data.changed = 0 ; + + data.checkIndex() ; + + data.close() ; + + // d4create: see above + + // d4createCB: should be performed by d4create() + + cb.compatibility = 30 ; + cb.safety = 0 ; + data.create( ref cb, "t4all", ref fields ) ; + + data.appendBlank() ; + data.deleteRec() ; + + data.deleted() ; + + data.eof() ; + + // d4field(data, 'str'); + + // u4free(PVoid(d4fieldInfo(data))); + + data.fieldNumber( new Field4( data, 1).name() ) ; + + data.fileName() ; + + data.flush() ; + + data.freeBlocks() ; + + rc = data.appendBlank() ; + data.go( 1 ); + + data.goBof() ; + + data.goEof() ; + + data.index( "" ) ; + + data.lockRecord( 1 ); + + data.lockAdd( 1 ) ; + + data.lockAddAll() ; + + data.lockAddAppend() ; + + data.lockAddFile() ; + + data.lockAll() ; + + data.lockAppend() ; + + data.lockFile() ; + + data.log = 0 ; + + rc = data.log ; + + data.memoCompress() ; + + data.numFields() ; + + data.close() ; + cb.compatibility = 30 ; + data.open( ref cb, "t4all" ); + + data2.openClone( data ) ; + data2.close() ; + + data.optimize( Code4.OPT4OFF ) ; + + data.optimizeWrite( Code4.OPT4OFF ) ; + + data.pack() ; + + double newDouble = data.position ; + + data.position = 0.5 ; + + data.recall() ; + + // d4record(data); + + data.recWidth() ; + + data.refresh() ; + + data.refreshRecord() ; + + data.reindex() ; + + data.remove() ; + cb.compatibility = 30 ; + cb.safety = 0 ; + data.create( ref cb, "t4all", ref fields, ref tags ) ; + + data.select( new Tag4( data, "STR") ); + data.seek( "s" ); + + data.seekNext( "s" ); + + data.seek( "sssss", 2 ) ; + + data.seekNext( "sssss", 2 ) ; + + data.select( new Tag4(data, "NUM") ); + data.seek( 2.0 ); + + data.seekNext( 2.0 ); + + data.top() ; + data.skip( 1 ) ; + + // d4tag: see d4seek(); + + tag.initFirst( data ) ; + + tag.initNext() ; + + tag.initPrev() ; + + // d4tagSelect: see d4seek(); + + tag.init( data, "" ) ; + + data.tagSync() ; + + data.top() ; + + data.unlock() ; + + data.appendBlank() ; + data.appendBlank() ; + data.write( 1 ) ; + + data.zap( 2, 99 ) ; + + ////////////////////////////////////////////// + + strTemp = "" ; + // date4assign(strTemp, date4long('19980909')); + + //date4cdow('19980909'); + + //date4cmonth('19980909'); + + //date4day('19980909'); + + //date4format('19980909', strTemp, 'CCYYMMDD'); + + //date4init(strTemp, '19980909', 'CCYYMMDD'); + + //date4isLeap('19980909'); + + //{date4long: see date4assign();} + + //date4month('19980909'); + + //date4today(strTemp); + + //date4year('19980909'); + + // + + cb.errOff = 1 ; + // don't display msgbox + + cb.throwError( -60, 90210 ) ; + cb.errorCode = 0 ; + + cb.error( -60, 90210, "This is a test", "", "" ) ; + cb.errorCode = 0 ; + + cb.exitTest() ; + + cb.errorFile( "t4all.err", 1 ) ; + + cb.errorSet( 0 ) ; + + cb.errorText( -60 ) ; + + cb.initUndo() ; + cb.init() ; + + // + cb.errOff = 1 ; + cb.connect( "localhost", "23165", "", "", "" ) ; + cb.errOff = 0 ; + cb.errorCode = 0 ; + + cb.compatibility = 30; + cb.safety = 0 ; + data.create( ref cb, "t4all", ref fields, ref tags ) ; + + expr = new Expr4() ; + expr.parse( data, "STR" ) ; + + expr.data() ; + + expr.len() ; + + expr.isNull() ; + + expr.source() ; + + expr.str() ; + + expr.free() ; + + expr.parse( data, "NUM" ) ; + + newDouble = (double)expr ; + + expr.free() ; + + expr.parse( data, "LOG" ) ; + + expr.isTrue() ; + + expr.free() ; + + // + + cb.closeAll() ; + cb.compatibility = 30 ; + cb.safety = 0 ; + data.create( ref cb, "t4all", ref fields, ref tags ) ; + + fStr = new Field4( data, "STR" ) ; + fNum = new Field4( data, "NUM" ) ; + fLog = new Field4( data, "LOG" ) ; + if ( cb.indexExtension().ToUpper() == "CDX" ) + { + fCur = new Field4( data, "CUR" ) ; + fDT = new Field4( data, "DT" ) ; + fDouble = new Field4( data, "DOUBLE" ) ; + } + else + { + fCur = new Field4( data, 1 ) ; + fDT = new Field4( data, 1 ) ; + fDouble = new Field4( data, 1 ) ; + } + fMem = new Field4memo( data, "MEM" ) ; + + fStr.assign( "A" ) ; + + //f4assignChar(fLog, 65); + + if ( cb.indexExtension().ToUpper() == "CDX" ) + { + fCur.assignCurrency( "8.75" ) ; + + fDT.assignDateTime( "1998090912:12:12" ) ; + + fDouble.assignDouble( 8.75 ) ; + } + + fStr.assignField( ref fNum ) ; + + fNum.assignInt( 5 ) ; + + // f4assignLong(fNum, 12345678); + + if ( cb.indexExtension().ToUpper() == "CDX" ) + fStr.assignNull() ; + + fStr.assign( "aaaaa", 2 ) ; + + // f4blank(fStr); + + fLog.getChar() ; + + if ( cb.indexExtension().ToUpper() == "CDX" ) + { + fCur.currency( 2 ) ; + + fDT.dateTime() ; + } + + fDT.data() ; + + fNum.decimals() ; + + fNum.getInt() ; + + if ( cb.indexExtension().ToUpper() == "CDX" ) + fDouble.getDouble() ; + + fStr.len() ; + + // f4long(fNum); + + fMem.assign( "AAA" ) ; + + fMem.assign( "AAA", 2 ) ; + + fMem.free() ; + + fMem.len() ; + + fMem.str() ; + + fLog.name() ; + + fStr.isNull() ; + + if ( cb.indexExtension().ToUpper() == "CDX" ) + fCur.number() ; + + // f4ptr(fStr); + + fStr.str() ; + + fLog.isTrue() ; + + if ( cb.indexExtension().ToUpper() == "CDX" ) + fDouble.type() ; + + // + + cb.closeAll() ; + + cb.compatibility = 30 ; + cb.safety = 0 ; + data.create( ref cb, "t4all", ref fields, ref tags ); + + // i4create(data, 't4all', @tags); + + data.close() ; + cb.compatibility = 30 ; + cb.autoOpen = 0 ; + data.open( ref cb, "t4all" ) ; + cb.autoOpen = 1 ; + index = new Index4( data, "t4all" ) ; + + // i4createCB: should be called by i4create(); + + index.fileName() ; + + index.reindex() ; + + index.tag( "STR" ) ; + + // i4tagAdd(index, @junkTags); + + // i4tagInfo(index); + + index.close() ; + // + + cb.closeAll() ; + cb.readOnly = 1 ; + cb.compatibility = 30 ; + if ( cb.indexExtension().ToUpper() == "NTX" ) + { + data.open( ref cb, "c:\\dbfs\\ntx\\student" ) ; + data2.open( ref cb, "c:\\dbfs\\ntx\\enroll" ) ; + } + else + { + data.open( ref cb, "h:\\savetest\\student" ) ; + data2.open( ref cb, "h:\\savetest\\enroll" ) ; + } + cb.readOnly = 0 ; + rel = new Relate4set() ; + rel.init( data ) ; + + relS = new Relate4( rel, data2, "ID", new Tag4( data2, "STU_ID_TAG") ); + + rel.querySet( "AGE < 30" ) ; + + rel.sortSet( "ID" ) ; + + rel.bottom() ; + + rel.changed() ; + + rel.data() ; + + rel.dataTag() ; + + rel.doAll() ; + + relS.doOne() ; + + rel.eof() ; + + rel.errorAction( Code4.relate4blank ) ; + + rel.lockAdd() ; + + rel.master() ; + + rel.masterExpr() ; + + relS.matchLen( 10 ) ; + + rel.optimizeable() ; + + rel.top() ; + + rel.skip( 1 ) ; + + rel.skipEnable( 1 ) ; + + relS.type( Code4.relate4scan ) ; + + Relate4iterator relIt = new Relate4iterator( rel ) ; + relIt.next() ; + + // + + cb.closeAll() ; + cb.readOnly = 1 ; + cb.errOff = 0 ; + cb.errOpen = 1 ; + cb.compatibility = 30 ; + +// report := report4retrieve(cb, 'q:\cb64\cb64\coderep\examples\tut1', 1, 'q:\cb64\cb64\coderep\examples'); +// report4caption(report, 'T4ALL'); +// report4currency(report, '$'); +// report4dateFormat(report, 'CCYYMMDD'); +// report4decimal(report, '.'); +// report4margins(report, 10, 10, 10, 10, 1); +// report4pageSize(report, 10, 10, 1); +// report4parent(report, 0); +// report4printerSelect(report); +// report4querySet(report, 'T4ALL'); +// report4relate(report); +// report4separator(report, ','); +// report4sortSet(report, 'T4ALL'); +// report4toScreen(report, 1); +// report4do(report); +// report4save(report, 'c:\temp\tut1', 0); +// report4free(report, 1, 1); + + // + + cb.closeAll() ; + + cb.compatibility = 30 ; + cb.safety = 0 ; + data.create( ref cb, "t4all", ref fields, ref tags ) ; + + tag.init( data, "STR" ) ; + + tag.alias() ; + + if ( cb.indexExtension().ToUpper() == "NTX" ) + { + tag.close() ; + tag.open( data, "STR" ) ; + } + + tag.expr() ; + + tag.filter() ; + + tag.init( data, "NUM" ) ; + short newShrt = tag.unique ; + + tag.unique = Code4.r4unique ; + + cb.initUndo() ; + cb.init() ; + Console.WriteLine( "Application is about to exit. That is good." ) ; + //cb.exit() ; + cb.initUndo() ; + } + } +}