SW-Tools ODBC - Programmers Reference


2022-09-01 008.384





1. Preface

SW-Tools ODBC driver for Navision financials is compliant to ODBC 2.10, API-Level 1, SQL core level.

Most of the extended SQL instruction set is implemented as shown below.

The driver is delivered in 32 bit version only.

2. Installation

The driver is installed using the SETUP program on the CD.

By use of the ODBC Administrator setup function you can define multiple data sources to be used with the driver.

3. Principle of operation

The SW-Tools ODBC driver uses the TRIO Data Dictionary to access files using SQL on any implemented file system based on the Navision Financials Database.

The table, index and field definitions may automatically be imported from the Navision Financials Database into the SW-Tools Data Dictionary.

This opens access to a lot of Windows products as ACCESS, EXCEL, WORD etc.

This short example collection is intended for programmmers reference merely as user handbook - the end user should focus on the application programs only.

4. ODBC.INI parameters

The following is a complete list of possible entries in ODBC.INI

       Me=        Default path the drivers files
Basis= Path for BASIS.SSV defining the file system interfaces
Dmf= Path for the datadictionary FILES.SSV and xx.SSD
Isa= Default path for the database files if needed
Com= Company number
Based= Normally blank, forces all files to a given BASIS filetype
Fixfil= 0 Forces the driver to read FILES.SSV whenever accessed
Upper= 0 Use upper/lowercase names instead of just uppercase
Fname= 0 Use File ID only as SQL tablenames
Fnamelen= n Use max n characters in tablename length
Ftext 0 Usage of file text desctiption
Qualifier= 0 Return NULL instead of file ID as table qualifier
Owner= 0 Return NULL instead of filetype as table owner
Lan= ENG The language is fixed on the disk
Test= 1 Internal testflags producing a c:\wif testoutput
Update= 1 Data source is not readonly, requires full release

5. Functions

The following is a list of implemented functions, refer first to the ODBC manual SQL functions then to the SW-Tools TRIO calculations and subfunctions manual.

ABS, ACOS, ASCII, ASIN, ATAN, ATAN2, CEILING, CHAR, CONCAT, CONV, COS, COT, CURDATE, CURTIME, DATABASE, DATE, DAY, DAYNAME, DAYOFMONTH, DAYOFWEEK, DAYOFYEAR, DEGREES, EDIT, EXP, FIND, FLOOR, FNA, FNB, FND, FNE, FNF, FNH, FNO, FNR, FNU, FNV, FNY, FRA, HOUR, IN, INSERT, INT, ISNULL, LCASE, LEFT, LEN, LENGTH, LIKE, LOCATE, LOG, LOG10, LOWER, LTRIM, MATCHES, MINUTE, MOD, MONTH, MONTHNAME, NAME, NOT, NOW, NUMBER, NUMS, PI, POW, POWER, QUARTER, RADIANS, RAND, REPEAT, REPLACE, RIGTH, ROUND, RTRIM, RUN, RUND, SECOND, SGN, SIGN, SIN, SMAA, SOGE, SPACE, SPOFF, SQR, SQRT, SUBSTRING, TAN, TIME, TOCHAR, TODBL, TOLONG, TOSHORT, TRUNCATE, UCASE, UPPER, USER, VALCH, VALID, WDAY, WEEK, YEAR

6. Examples of varius use of SQL in the SW-Tools ODBC driver

Simple SQL statements examples with access of one table

  Code Due Date Calculation Discount Date Calculati Discount % Description
1 CM CM   0 Current month
2 COD 0D   0 Cash on delivery
3 1M(8D) 1M 8D 2 1 Month/2% 8 days
4 14DAYS 14D   0 Net 14 days
5 21DAYS 21D   0 Net 21 days
6 7DAYS 7D   0 Net 7 days
1. Simple SELECT

SELECT *
FROM 'Payment Terms'

ORDER BY may reference any column, field and DESC/ASC may be used.

  No_ Name Search Name
1 44127904 WoodMart Supply Co. WOODMART SUPPLY CO.
2 46635241 Viksjö Snickerifabrik AB VIKSJÖ SNICKERIFABRIK AB
3 32665544 VELUX VELUX
4 49454647 VAG - Jürgensen VAG - JÜRGENSEN
5 42125678 UP Ostrov s.p. UP OSTROV S.P.
6 34280789 Transporte Roas TRANSPORTE ROAS
7 44729910 Tool Mart TOOL MART
8 42784512 TON s.r.o. TON S.R.O.
9 43258545 Sägewerk Mittersill SÄGEWERK MITTERSILL
10 46895623 Svensk Möbeltextil AB SVENSK MÖBELTEXTIL AB
11 34151086 Subacqua SUBACQUA
12 47562214 Stilmøbler as STILMØBLER AS
13 50000 Service Electronics Ltd. SERVICE ELECTRONICS LTD.
14 41568934 Schreinerei Peter SCHREINEREI PETER
15 45868686 Schmeichel Møbler A/S SCHMEICHEL MØBLER A/S
16 01254796 Progressive Home Furnishings PROGRESSIVE HOME FURNISHINGS
17 43589632 Paul Brettschneider KG PAUL BRETTSCHNEIDER KG
18 32554455 PURE-LOOK PURE-LOOK
19 38654478 POIIORLES d.d. POIIORLES D.D.
20 47521478 Møbelhuset AS MØBELHUSET AS
21 44127914 Mortimor Car Company MORTIMOR CAR COMPANY
22 41483124 Matter Transporte MATTER TRANSPORTE
23 42895623 Mach & spol. v.o.s. MACH & SPOL. V.O.S.
24 38521479 MASIVA d.o.o. MASIVA D.O.O.
25 10000 London Postmaster LONDON POSTMASTER
26 40000 Lewis Home Furniture LEWIS HOME FURNITURE
27 31568974 Koekamp Leerindustrie KOEKAMP LEERINDUSTRIE
28 46558855 Kinnareds Träindustri AB KINNAREDS TRÄINDUSTRI AB
29 49494949 KKA Büromaschinen Gmbh KKA BÜROMASCHINEN GMBH
30 49989898 JB-Spedition JB-SPEDITION
31 34110257 Importaciones S.A. IMPORTACIONES S.A.
32 38458653 IVERKA POHISTVO d.o.o. IVERKA POHISTVO D.O.O.
33 35225588 Husplast HF HUSPLAST HF
34 35741852 Huslagnir HUSLAGNIR
35 35336699 Hurdir HF HURDIR HF
36 31147896 Houtindustrie Bruynsma HOUTINDUSTRIE BRUYNSMA
37 47586622 Furumøbler A/S FURUMØBLER A/S
38 44756404 Furniture Industries FURNITURE INDUSTRIES
39 45774477 Fredborg Lamper A/S FREDBORG LAMPER A/S
40 41124089 Flückiger AG FLÜCKIGER AG
41 45858585 Elvstrøm Træindustri A/S ELVSTRØM TRÆINDUSTRI A/S
42 01587796 Custom Metals Incorporated CUSTOM METALS INCORPORATED
43 30000 CoolWood Technologies COOLWOOD TECHNOLOGIES
44 43698547 Beschläge Schacherhuber BESCHLÄGE SCHACHERHUBER
45 31580305 Beekhuysen BV BEEKHUYSEN BV
46 32456123 BATIMETAL BATIMETAL
47 01963656 American Wood Exports AMERICAN WOOD EXPORTS
48 20000 AR Day Property Management AR DAY PROPERTY MANAGEMENT
2. Using ORDER BY

SELECT No_, Name, 'Search Name'
FROM Vendor
ORDER BY 2 DESC, 'Search Name'

  Code Due Date Calculation Discount Date Calculati Discount % Description
1 1M(8D) 1M 8D 2 1 Month/2% 8 days
3. Simple WHERE clause

SELECT *
FROM 'Payment Terms'
WHERE 'Discount %' = 2

6.1. Calculations

Calculations may be performed both for columns and in WHERE If result columns are not named they becomes the name EXPR-1,2,...

  No_ Name Balance EXPR-1 calc new
1 10000 The Cannon Group PLC 164262.53 1149837.71 164264.53 164271.53
2 20000 James Dailey Ltd. 96049.99 672349.93 96051.99 96058.99
3 30000 John Haddock Insurance Co. 348754.27 2441279.89 348756.27 348763.27
4 50000 Guildford Water Department 32788.4 229518.8 32790.4 32797.4
5 01445544 Progressive Home Furnishings 2310.38 16172.66 2312.38 2319.38
6 01454545 New Concepts Furniture 342529.44 2397706.08 342531.44 342538.44
7 32656565 ALLCOPY 155268 1086876 155270 155277
8 35451236 Nyform 88164 617148 88166 88173
9 35963852 Heimilisprydi 203417.25 1423920.75 203419.25 203426.25
10 42147258 BYT s.r.o. 60218.65 421530.55 60220.65 60227.65
11 43687129 Designstudio Gmunden 92557.38 647901.66 92559.38 92566.38
12 46897889 Englunds Kontorsmöbler AB 12253.79 85776.53 12255.79 12262.79
13 47563218 Klubben 114728.73 803101.11 114730.73 114737.73
14 49525252 Beef House 13700.01 95900.07 13702.01 13709.01
15 49633663 Auto-Günther KG 6000 42000 6002 6009
4. Using calculations

SELECT No_, Name, Balance, Balance * 7, Balance + 2 calc, calc + 7 new
FROM Customer
WHERE new + 1 NOT BETWEEN 8 + 1 AND 99

6.2. Special column names

Special column names must be enclosed in '...', optionally for legal names

  No_ Balance Name
1 10000 164262.53 The Cannon Group PLC
2 20000 96049.99 James Dailey Ltd.
3 30000 348754.27 John Haddock Insurance Co.
4 50000 32788.4 Guildford Water Department
5 01445544 2310.38 Progressive Home Furnishings
6 01454545 342529.44 New Concepts Furniture
7 32656565 155268 ALLCOPY
8 35451236 88164 Nyform
9 35963852 203417.25 Heimilisprydi
10 42147258 60218.65 BYT s.r.o.
11 43687129 92557.38 Designstudio Gmunden
12 46897889 12253.79 Englunds Kontorsmöbler AB
13 47563218 114728.73 Klubben
14 49525252 13700.01 Beef House
15 49633663 6000 Auto-Günther KG
5. Special column names encloded in quotes

SELECT No_,'Balance','Customer'.'Name'
FROM 'Customer'
WHERE 'Balance' > 1000

The IN function may be used to select records:

6.3. Selecting using the IN clause

  No_ Description Vendor No_
1 70100 Paint, black 20000
2 70101 Paint, yellow 20000
3 70102 Paint, blue 20000
4 70103 Paint, red 20000
5 70104 Paint, green 20000
6 1900-S PARIS Guest Chair, black 20000
7 1920-S ANTWERP Conference Table 20000
8 1924-W CHAMONIX Base Storage Unit 20000
9 1936-S BERLIN Guest Chair, yellow 20000
10 1960-S ROME Guest Chair, green 20000
11 1964-S TOKYO Guest Chair, blue 20000
12 1988-S SEOUL Guest Chair, red 20000
13 1896-S ATHENS Desk 30000
14 1906-S ATHENS Mobile Pedestal 30000
15 1908-S LONDON Swivel Chair, blue 30000
16 1968-S MEXICO Swivel Chair, black 30000
17 1972-S MUNICH Swivel Chair, yellow 30000
18 1980-S MOSCOW Swivel Chair, red 30000
19 1996-S ATLANTA Whiteboard, base 30000
20 2000-S SIDNEY Swivel Chair, green 30000
6. The IN function

SELECT No_, Description, 'Vendor No_'
FROM Item
WHERE 'Vendor No_' IN ("20000", "30000")

6.4. Correlation names

Several files can be used (joined) in one select. Correlation names (AS a) for tables may be given, AS may be omitted. The correlation name does not have to be given if no duplicate column names exists.

  No_ Name Unit Price No_ Vendor No_ Description
1 20000 AR Day Property Management 420.4 1920-S 20000 ANTWERP Conference Table
2 30000 CoolWood Technologies 649.4 1896-S 30000 ATHENS Desk
3 30000 CoolWood Technologies 906.7 1996-S 30000 ATLANTA Whiteboard, base
7. Using AS clause for correlation name of table

SELECT No_, Name, 'Unit Price', a.No_, a.'Vendor No_', a.Description
FROM Vendor, Item AS a
WHERE No_ = a.'Vendor No_' AND 'Unit Price' > 400

6.5. OUTER JOIN

Tables may be joined using the OUTER JOIN facility, below also suppliers without articles are in the result set.

  No_ Unit Price No_ Vendor No_ Name
1 10000 30.7 70000 10000 London Postmaster
2 10000 40.3 70001 10000 London Postmaster
3 10000 28.7 70002 10000 London Postmaster
4 10000 29.6 70003 10000 London Postmaster
5 10000 52.1 70010 10000 London Postmaster
6 10000 72.3 70011 10000 London Postmaster
7 10000 108.2 70040 10000 London Postmaster
8 10000 23.4 70041 10000 London Postmaster
9 10000 1.3 70200 10000 London Postmaster
10 10000 1.2 70201 10000 London Postmaster
11 10000 35.6 1928-S 10000 London Postmaster
12 20000 2.7 70100 20000 AR Day Property Management
13 20000 2.7 70101 20000 AR Day Property Management
14 20000 2.7 70102 20000 AR Day Property Management
15 20000 2.7 70103 20000 AR Day Property Management
16 20000 2.7 70104 20000 AR Day Property Management
17 20000 125.1 1900-S 20000 AR Day Property Management
18 20000 420.4 1920-S 20000 AR Day Property Management
19 20000 136.4 1924-W 20000 AR Day Property Management
20 20000 125.1 1936-S 20000 AR Day Property Management
21 20000 125.1 1960-S 20000 AR Day Property Management
22 20000 125.1 1964-S 20000 AR Day Property Management
23 20000 125.1 1988-S 20000 AR Day Property Management
24 30000 649.4 1896-S 30000 CoolWood Technologies
25 30000 281.4 1906-S 30000 CoolWood Technologies
26 30000 123.3 1908-S 30000 CoolWood Technologies
27 30000 123.3 1968-S 30000 CoolWood Technologies
28 30000 123.3 1972-S 30000 CoolWood Technologies
29 30000 123.3 1980-S 30000 CoolWood Technologies
30 30000 906.7 1996-S 30000 CoolWood Technologies
31 30000 123.3 2000-S 30000 CoolWood Technologies
32 40000 0     Lewis Home Furniture
33 50000 0     Service Electronics Ltd.
34 01254796 0     Progressive Home Furnishings
35 01587796 0     Custom Metals Incorporated
36 01963656 0     American Wood Exports
37 31147896 0     Houtindustrie Bruynsma
38 31568974 0     Koekamp Leerindustrie
39 31580305 0     Beekhuysen BV
40 32456123 13.1 70060 32456123 BATIMETAL
41 32554455 0     PURE-LOOK
42 32665544 0     VELUX
43 34110257 0     Importaciones S.A.
44 34151086 0     Subacqua
45 34280789 0     Transporte Roas
46 35225588 0     Husplast HF
47 35336699 0     Hurdir HF
48 35741852 0     Huslagnir
49 38458653 0     IVERKA POHISTVO d.o.o.
50 38521479 0     MASIVA d.o.o.
51 38654478 0     POIIORLES d.d.
52 41124089 0     Flückiger AG
53 41483124 0     Matter Transporte
54 41568934 0     Schreinerei Peter
55 42125678 0     UP Ostrov s.p.
56 42784512 0     TON s.r.o.
57 42895623 0     Mach & spol. v.o.s.
58 43258545 0     Sägewerk Mittersill
59 43589632 0     Paul Brettschneider KG
60 43698547 0     Beschläge Schacherhuber
61 44127904 0     WoodMart Supply Co.
62 44127914 0     Mortimor Car Company
63 44729910 0     Tool Mart
64 44756404 0     Furniture Industries
65 45774477 0     Fredborg Lamper A/S
66 45858585 0     Elvstrøm Træindustri A/S
67 45868686 0     Schmeichel Møbler A/S
68 46558855 5.7 80100 46558855 Kinnareds Träindustri AB
69 46635241 0     Viksjö Snickerifabrik AB
70 46895623 0     Svensk Möbeltextil AB
71 47521478 0     Møbelhuset AS
72 47562214 0     Stilmøbler as
73 47586622 0     Furumøbler A/S
74 49454647 0     VAG - Jürgensen
75 49494949 0     KKA Büromaschinen Gmbh
76 49989898 0     JB-Spedition
8. Using OUTER JOIN

SELECT No_, 'Unit Price', a.No_, 'Vendor No_', Vendor.Name
FROM Vendor, OUTER Item a
WHERE 'Vendor No_' = No_ AND 'Unit Price' > 0

The full ODBC extended escape clause for outer joins are supported, however only LEFT OUTER JOINS are implemented.

  No_ Unit Price No_ Vendor No_ Name
1 30000 649.4 1896-S 30000 CoolWood Technologies
2 30000 281.4 1906-S 30000 CoolWood Technologies
3 30000 123.3 1908-S 30000 CoolWood Technologies
4 30000 123.3 1968-S 30000 CoolWood Technologies
5 30000 123.3 1972-S 30000 CoolWood Technologies
6 30000 123.3 1980-S 30000 CoolWood Technologies
7 30000 906.7 1996-S 30000 CoolWood Technologies
8 30000 123.3 2000-S 30000 CoolWood Technologies
9 40000 0     Lewis Home Furniture
10 50000 0     Service Electronics Ltd.
11 01254796 0     Progressive Home Furnishings
12 01587796 0     Custom Metals Incorporated
13 01963656 0     American Wood Exports
14 31147896 0     Houtindustrie Bruynsma
15 31568974 0     Koekamp Leerindustrie
16 31580305 0     Beekhuysen BV
17 32456123 13.1 70060 32456123 BATIMETAL
18 32554455 0     PURE-LOOK
19 32665544 0     VELUX
20 34110257 0     Importaciones S.A.
21 34151086 0     Subacqua
22 34280789 0     Transporte Roas
23 35225588 0     Husplast HF
24 35336699 0     Hurdir HF
25 35741852 0     Huslagnir
26 38458653 0     IVERKA POHISTVO d.o.o.
27 38521479 0     MASIVA d.o.o.
28 38654478 0     POIIORLES d.d.
29 41124089 0     Flückiger AG
30 41483124 0     Matter Transporte
31 41568934 0     Schreinerei Peter
32 42125678 0     UP Ostrov s.p.
33 42784512 0     TON s.r.o.
34 42895623 0     Mach & spol. v.o.s.
35 43258545 0     Sägewerk Mittersill
36 43589632 0     Paul Brettschneider KG
37 43698547 0     Beschläge Schacherhuber
38 44127904 0     WoodMart Supply Co.
39 44127914 0     Mortimor Car Company
40 44729910 0     Tool Mart
41 44756404 0     Furniture Industries
42 45774477 0     Fredborg Lamper A/S
43 45858585 0     Elvstrøm Træindustri A/S
44 45868686 0     Schmeichel Møbler A/S
45 46558855 5.7 80100 46558855 Kinnareds Träindustri AB
46 46635241 0     Viksjö Snickerifabrik AB
47 46895623 0     Svensk Möbeltextil AB
48 47521478 0     Møbelhuset AS
49 47562214 0     Stilmøbler as
50 47586622 0     Furumøbler A/S
51 49454647 0     VAG - Jürgensen
52 49494949 0     KKA Büromaschinen Gmbh
53 49989898 0     JB-Spedition
9. Using LEFT OUTER JOIN

SELECT No_, 'Unit Price', a.No_, 'Vendor No_', Name
FROM { oj Vendor LEFT OUTER JOIN Item a ON 'Vendor No_'=No_ }
WHERE No_ > 20000 AND 'Unit Price' > 0

6.6. Subqueries

Subqueries can be performed.

  No_ Name
1 10000 London Postmaster
2 20000 AR Day Property Management
3 30000 CoolWood Technologies
4 32456123 BATIMETAL
5 46558855 Kinnareds Träindustri AB
10. Multiple SELECTs for subqueries

SELECT No_, Name
FROM Vendor a
WHERE EXISTS
(SELECT * FROM Item WHERE 'Vendor No_' = a.No_)

Comparision operators may be used for subqueries

  No_ Balance Name
1 10000 114096.4 London Postmaster
2 20000 2904.53 AR Day Property Management
3 30000 93660.82 CoolWood Technologies
4 40000 0 Lewis Home Furniture
5 50000 0 Service Electronics Ltd.
6 01254796 163573.93 Progressive Home Furnishings
7 01587796 0 Custom Metals Incorporated
8 01963656 119898.98 American Wood Exports
9 31147896 0 Houtindustrie Bruynsma
10 31568974 0 Koekamp Leerindustrie
11 31580305 0 Beekhuysen BV
12 32554455 0 PURE-LOOK
13 32665544 0 VELUX
14 34110257 0 Importaciones S.A.
15 34151086 0 Subacqua
16 34280789 0 Transporte Roas
17 35225588 0 Husplast HF
18 35336699 0 Hurdir HF
19 35741852 0 Huslagnir
20 38458653 193536 IVERKA POHISTVO d.o.o.
21 38521479 0 MASIVA d.o.o.
22 38654478 0 POIIORLES d.d.
23 41124089 0 Flückiger AG
24 41483124 0 Matter Transporte
25 41568934 0 Schreinerei Peter
26 42125678 0 UP Ostrov s.p.
27 42784512 0 TON s.r.o.
28 42895623 0 Mach & spol. v.o.s.
29 43258545 0 Sägewerk Mittersill
30 43589632 0 Paul Brettschneider KG
31 43698547 0 Beschläge Schacherhuber
32 44127904 0 WoodMart Supply Co.
33 44127914 0 Mortimor Car Company
34 44729910 0 Tool Mart
35 44756404 0 Furniture Industries
36 45774477 0 Fredborg Lamper A/S
37 45858585 0 Elvstrøm Træindustri A/S
38 45868686 0 Schmeichel Møbler A/S
39 46558855 5820.24 Kinnareds Träindustri AB
40 46635241 0 Viksjö Snickerifabrik AB
41 46895623 0 Svensk Möbeltextil AB
42 47521478 0 Møbelhuset AS
43 47562214 0 Stilmøbler as
44 47586622 0 Furumøbler A/S
45 49454647 12500.01 VAG - Jürgensen
46 49494949 17100.03 KKA Büromaschinen Gmbh
47 49989898 0 JB-Spedition
11. Using comparision operators

SELECT No_, Balance, Name
FROM Vendor a
WHERE Balance > ALL
(SELECT 'Unit Price' + 7 FROM Item WHERE 'Vendor No_' = a.No_)

EXISTS, ALL, ANY, SOME may be used.

  No_ Balance Name
1 32456123 0 BATIMETAL
12. Sample use of ANY comparision

SELECT No_, Balance, Name
FROM Vendor a
WHERE Balance < ANY
(SELECT 'Unit Price' + 7 FROM Item WHERE 'Vendor No_' = a.No_)

By use of IN a result set may be scanned for values

  No_ Name
1 10000 London Postmaster
2 20000 AR Day Property Management
3 30000 CoolWood Technologies
4 32456123 BATIMETAL
5 46558855 Kinnareds Träindustri AB
13. Scanning result set when using IN clause

SELECT No_, Name FROM Vendor
WHERE No_ IN (SELECT 'Vendor No_' FROM Item)

6.7. Aggregate functions

Aggregate functions are impemented. Note that calculations as SUM(balance)+2 are not allowed.

  EXPR-1 EXPR-2 EXPR-3 EXPR-4 EXPR-5
1 48 723090.94 193536 0 15064.39458
14. Aggregate functions COUNT, SUM, MAX, MIN, AVG

SELECT COUNT(*), SUM(Balance), MAX(Balance), MIN(Balance), AVG(Balance)
FROM Vendor

More tables may be joined.

  No_ Name Name
1 10000 London Postmaster London Postmaster
2 20000 AR Day Property Management AR Day Property Management
3 30000 CoolWood Technologies CoolWood Technologies
4 40000 Lewis Home Furniture Lewis Home Furniture
5 50000 Service Electronics Ltd. Service Electronics Ltd.
6 01254796 Progressive Home Furnishings Progressive Home Furnishings
7 01587796 Custom Metals Incorporated Custom Metals Incorporated
8 01963656 American Wood Exports American Wood Exports
9 31147896 Houtindustrie Bruynsma Houtindustrie Bruynsma
10 31568974 Koekamp Leerindustrie Koekamp Leerindustrie
11 31580305 Beekhuysen BV Beekhuysen BV
12 32456123 BATIMETAL BATIMETAL
13 32554455 PURE-LOOK PURE-LOOK
14 32665544 VELUX VELUX
15 34110257 Importaciones S.A. Importaciones S.A.
16 34151086 Subacqua Subacqua
17 34280789 Transporte Roas Transporte Roas
18 35225588 Husplast HF Husplast HF
19 35336699 Hurdir HF Hurdir HF
20 35741852 Huslagnir Huslagnir
21 38458653 IVERKA POHISTVO d.o.o. IVERKA POHISTVO d.o.o.
22 38521479 MASIVA d.o.o. MASIVA d.o.o.
23 38654478 POIIORLES d.d. POIIORLES d.d.
24 41124089 Flückiger AG Flückiger AG
25 41483124 Matter Transporte Matter Transporte
26 41568934 Schreinerei Peter Schreinerei Peter
27 42125678 UP Ostrov s.p. UP Ostrov s.p.
28 42784512 TON s.r.o. TON s.r.o.
29 42895623 Mach & spol. v.o.s. Mach & spol. v.o.s.
30 43258545 Sägewerk Mittersill Sägewerk Mittersill
31 43589632 Paul Brettschneider KG Paul Brettschneider KG
32 43698547 Beschläge Schacherhuber Beschläge Schacherhuber
33 44127904 WoodMart Supply Co. WoodMart Supply Co.
34 44127914 Mortimor Car Company Mortimor Car Company
35 44729910 Tool Mart Tool Mart
36 44756404 Furniture Industries Furniture Industries
37 45774477 Fredborg Lamper A/S Fredborg Lamper A/S
38 45858585 Elvstrøm Træindustri A/S Elvstrøm Træindustri A/S
39 45868686 Schmeichel Møbler A/S Schmeichel Møbler A/S
40 46558855 Kinnareds Träindustri AB Kinnareds Träindustri AB
41 46635241 Viksjö Snickerifabrik AB Viksjö Snickerifabrik AB
42 46895623 Svensk Möbeltextil AB Svensk Möbeltextil AB
43 47521478 Møbelhuset AS Møbelhuset AS
44 47562214 Stilmøbler as Stilmøbler as
45 47586622 Furumøbler A/S Furumøbler A/S
46 49454647 VAG - Jürgensen VAG - Jürgensen
47 49494949 KKA Büromaschinen Gmbh KKA Büromaschinen Gmbh
48 49989898 JB-Spedition JB-Spedition
15. Using the same table multiple times

SELECT No_, Name, b.Name
FROM Vendor a, Vendor b
WHERE a.No_ = b.No_

6.8. LIKE and MATCHES

Like may be used for search on sting patterns as "a_b%c[^a-kp]" The ODBC like escape clause is supported

  No_ Description
1 70000 Side Panel
2 70001 Base
3 70002 Top Panel
4 70003 Rear Panel
5 70010 Wooden Door
6 70011 Glass Door
7 70040 Drawer
8 70041 Shelf
9 70060 Mounting
10 70100 Paint, black
11 70101 Paint, yellow
12 70102 Paint, blue
13 70103 Paint, red
14 70104 Paint, green
15 70200 Hinge
16 70201 Doorknob
17 80100 Printing Paper
18 1896-S ATHENS Desk
19 1900-S PARIS Guest Chair, black
20 1906-S ATHENS Mobile Pedestal
21 1920-S ANTWERP Conference Table
22 1928-S AMSTERDAM Lamp
23 1936-S BERLIN Guest Chair, yellow
24 1964-W INNSBRUCK Storage Unit/G.Door
25 1972-S MUNICH Swivel Chair, yellow
26 1976-W INNSBRUCK Storage Unit/W.Door
27 1988-W CALGARY Whiteboard, yellow
28 1992-W ALBERTVILLE Whiteboard, green
29 1996-S ATLANTA Whiteboard, base
30 2000-S SIDNEY Swivel Chair, green
16. Using the LIKE function

SELECT No_, Description
FROM Item
WHERE Description NOT LIKE "%O%" { escape 'x' }

Matches offers another search method with patterns as "a?b*c[^a-kp]"

  No_ Description
1 70010 Wooden Door
2 70011 Glass Door
3 70201 Doorknob
4 1964-W INNSBRUCK Storage Unit/G.Door
5 1976-W INNSBRUCK Storage Unit/W.Door
17. Using the MATCHES function

SELECT No_, Description
FROM Item
WHERE Description MATCHES "*Door*"

6.9. How to use functions within SELECT statements

Functions may be called directly of by use of the { fn ... } clause.

  No_ EXPR-1
1 10000 the cannon group plc
2 20000 james dailey ltd.
3 30000 john haddock insurance co.
4 40000 deerfield graphics company
5 50000 guildford water department
6 01121212 spotsmeyer's furnishings
7 01445544 progressive home furnishings
8 01454545 new concepts furniture
9 31505050 woonboulevard kuitenbrouwer
10 31669966 meersen meubelen
11 31987987 jean de bouvier
12 32124578 orangerie
13 32656565 allcopy
14 32789456 prestige
15 34010100 libros s.a.
16 34010199 corporación beta
17 34010602 diseño industrial
18 35122112 a g husgogn
19 35451236 nyform
20 35963852 heimilisprydi
21 38128456 mema ljubljana d.o.o.
22 38546552 exportles d.o.o.
23 38632147 centromerkur d.o.o.
24 41231215 miro design
25 41497647 pilatus ag
26 41597832 möbel scherrer ag
27 42147258 byt s.r.o.
28 42258258 j & v v.o.s.
29 42369147 universal a.s.
30 43687129 designstudio gmunden
31 43852147 michael feit - möbelhaus
32 43871144 möbel siegfried
33 44171511 zuni home crafts ltd.
34 44180220 latel corporation
35 44756404 london light company
36 45282828 kontorforsyningen a/s
37 45779977 ravel møbler
38 45979797 lauritzen kontormøbler a/s
39 46251425 möbelhuset idea
40 46525241 form & miljö ab
41 46897889 englunds kontorsmöbler ab
42 47523687 alléhjørnet as
43 47563218 klubben
44 47586954 sjøboden
45 49525252 beef house
46 49633663 auto-günther kg
47 49858585 hotel continental
18. Calling functions within SELECT

SELECT No_, { fn LCASE(Name) }
FROM Customer

The full ODBC syntax for functions calls may also be used.

  No_ EXPR-1 Name
1 10000 10000 The Cannon Group PLC
2 20000 20000 James Dailey Ltd.
3 30000 30000 John Haddock Insurance Co.
4 40000 40000 Deerfield Graphics Company
5 50000 50000 Guildford Water Department
6 01121212 1121212 Spotsmeyer's Furnishings
7 01445544 1445544 Progressive Home Furnishings
8 01454545 1454545 New Concepts Furniture
9 31505050 31505050 Woonboulevard Kuitenbrouwer
10 31669966 31669966 Meersen Meubelen
11 31987987 31987987 Jean de Bouvier
12 32124578 32124578 ORANGERIE
13 32656565 32656565 ALLCOPY
14 32789456 32789456 PRESTIGE
15 34010100 34010100 Libros S.A.
16 34010199 34010199 Corporación Beta
17 34010602 34010602 Diseño industrial
18 35122112 35122112 A G Husgogn
19 35451236 35451236 Nyform
20 35963852 35963852 Heimilisprydi
21 38128456 38128456 MEMA Ljubljana d.o.o.
22 38546552 38546552 EXPORTLES d.o.o.
23 38632147 38632147 Centromerkur d.o.o.
24 41231215 41231215 Miro Design
25 41497647 41497647 Pilatus AG
26 41597832 41597832 Möbel Scherrer AG
27 42147258 42147258 BYT s.r.o.
28 42258258 42258258 J & V v.o.s.
29 42369147 42369147 UNIVERSAL a.s.
30 43687129 43687129 Designstudio Gmunden
31 43852147 43852147 Michael Feit - Möbelhaus
32 43871144 43871144 Möbel Siegfried
33 44171511 44171511 Zuni Home Crafts Ltd.
34 44180220 44180220 Latel Corporation
35 44756404 44756404 London Light Company
36 45282828 45282828 Kontorforsyningen A/S
37 45779977 45779977 Ravel Møbler
38 45979797 45979797 Lauritzen Kontormøbler A/S
39 46251425 46251425 Möbelhuset IDEA
40 46525241 46525241 Form & Miljö AB
41 46897889 46897889 Englunds Kontorsmöbler AB
42 47523687 47523687 Alléhjørnet AS
43 47563218 47563218 Klubben
44 47586954 47586954 Sjøboden
45 49525252 49525252 Beef House
46 49633663 49633663 Auto-Günther KG
47 49858585 49858585 Hotel Continental
19. Calling functions within SELECT with full ODBC syntax

SELECT No_, --(*vendor(SWTools),product(ODBC) fn CONVERT(No_,SQL_INTEGER)*)--, Name
FROM Customer

6.10. Date, Time and timestamp

Date, Time and Timestamp values may be stated by { d 'yyyy-mm-dd' }, { t 'hh:mm:ss' } and { ts 'yyyy-mm-dd hh:mm:ss' }

  No_ Order Date Posting Description
1 101016 2001-01-25 Order 101016
2 101017 2001-01-26 Order 101017
3 101018 2001-01-26 Order 101018
4 101019 2001-01-22 Order 101019
5 101020 2001-01-26 Order 101020
6 101022 2001-02-04 Order 101022
7 101023 2001-02-21 Order 101023
8 1001 2001-01-25 Invoice 1001
9 104004 2001-01-26 Credit Memo 104004
20. Using Date, Time and Timestamp syntax

SELECT No_, 'Order Date', 'Posting Description'
FROM 'Sales Header'
WHERE 'Order Date' > { d '2001-01-21' }

Dates stored in the files as YYMMDD or DDMMYY will be turned to correct SQLDate YYYY-MM-DD when the format is given as ,6, or ,8,

Timestamp data are asumed to be stored as 14 digits numeric YYYYMMDDHHMMSS, fractions of seconds are not supported.

The standard SQL syntax may also be used:

  No_ Order Date
1 101016 2001-01-25
2 101017 2001-01-26
3 101018 2001-01-26
4 101019 2001-01-22
5 101020 2001-01-26
6 101022 2001-02-04
7 101023 2001-02-21
8 1001 2001-01-25
9 104004 2001-01-26
21. Using standard SQL syntax for dates

SELECT No_, 'Order Date'
FROM 'Sales Header'
WHERE 'Order Date' > #2001-01-21#

6.11. Using field numbers

As an extension to SQL fieldnumbers may be given instead of fieldnames.

  No_ Vendor No_ Unit Price No_ Name
1 1928-S 10000 35.6 10000 London Postmaster
2 1900-S 20000 125.1 20000 AR Day Property Management
3 1964-S 20000 125.1 20000 AR Day Property Management
4 1920-S 20000 420.4 20000 AR Day Property Management
5 1924-W 20000 136.4 20000 AR Day Property Management
6 1936-S 20000 125.1 20000 AR Day Property Management
7 1960-S 20000 125.1 20000 AR Day Property Management
8 1988-S 20000 125.1 20000 AR Day Property Management
9 1908-S 30000 123.3 30000 CoolWood Technologies
10 1906-S 30000 281.4 30000 CoolWood Technologies
11 1972-S 30000 123.3 30000 CoolWood Technologies
12 1980-S 30000 123.3 30000 CoolWood Technologies
13 1968-S 30000 123.3 30000 CoolWood Technologies
14 1996-S 30000 906.7 30000 CoolWood Technologies
22. Using field numbers instead of field names

SELECT #1, #31, 'Unit Price', a.#1-2
FROM Item, Vendor a
WHERE #1 MATCHES("19*") AND a.#1 = #31
ORDER BY #31

Any calculations may be given, including operations on TABLE (subscripted) fields

6.12. Field subscriptions

  No_ Description Budgeted Amoun EXPR-1 Standard Cost
1 70000 Side Panel 0 0 0
2 70001 Base 0 0 0
3 70002 Top Panel 0 0 0
4 70003 Rear Panel 0 0 0
5 70010 Wooden Door 0 0 0
6 70011 Glass Door 0 0 0
7 70040 Drawer 0 0 0
8 70041 Shelf 0 0 0
9 70060 Mounting 0 0 0
10 70100 Paint, black 0 0 0
11 70101 Paint, yellow 0 0 0
12 70102 Paint, blue 0 0 0
13 70103 Paint, red 0 0 0
14 70104 Paint, green 0 0 0
15 70200 Hinge 0 0 0
16 70201 Doorknob 0 0 0
17 80100 Printing Paper 0 0 0
18 1896-S ATHENS Desk 0 0 0
19 1900-S PARIS Guest Chair, black 0 0 0
20 1906-S ATHENS Mobile Pedestal 0 0 0
21 1908-S LONDON Swivel Chair, blue 0 0 0
22 1920-S ANTWERP Conference Table 0 0 0
23 1924-W CHAMONIX Base Storage Unit 0 0 81.6
24 1928-S AMSTERDAM Lamp 0 0 0
25 1928-W ST.MORITZ Storage Unit/Drawers 0 0 192
26 1936-S BERLIN Guest Chair, yellow 0 0 0
27 1952-W OSLO Storage Unit/Shelf 0 0 93.6
28 1960-S ROME Guest Chair, green 0 0 0
29 1964-S TOKYO Guest Chair, blue 0 0 0
30 1964-W INNSBRUCK Storage Unit/G.Door 0 0 171.2
31 1968-S MEXICO Swivel Chair, black 0 0 0
32 1968-W GRENOBLE Whiteboard, red 0 0 708.6
33 1972-S MUNICH Swivel Chair, yellow 0 0 0
34 1972-W SAPPORO Whiteboard, black 0 0 708.6
35 1976-W INNSBRUCK Storage Unit/W.Door 0 0 150.6
36 1980-S MOSCOW Swivel Chair, red 0 0 0
37 1984-W SARAJEVO Whiteboard, blue 0 0 708.6
38 1988-S SEOUL Guest Chair, red 0 0 0
39 1988-W CALGARY Whiteboard, yellow 0 0 708.6
40 1992-W ALBERTVILLE Whiteboard, green 0 0 708.6
41 1996-S ATLANTA Whiteboard, base 0 0 0
42 2000-S SIDNEY Swivel Chair, green 0 0 0
43 766BC-A OLYMPIC Conference System 0 0 3519
44 766BC-B OLYMPIC Office System 0 0 1245.8
45 766BC-C OLYMPIC Storage System 0 0 614
23. Subscribed fields

SELECT No_, Description, 'Budgeted Amount', 'Budgeted Amount'(1), 'Standard Cost'
FROM Item

6.13. GROUP BY, HAVING, DISTINCT and UNION

The GROUP BY may be used to form groups of aggregate functions

  Vendor No_ EXPR-1 EXPR-2
1   12 14068.70022
2 10000 11 423.4
3 20000 12 1195.8
4 30000 8 2454
5 32456123 1 13.1
6 46558855 1 5.7
24. A simple GROUP BY sample

SELECT 'Vendor No_', COUNT(*), SUM('Unit Price')
FROM Item
GROUP BY 'Vendor No_'

Having is a selection after the grouping has been done

  Vendor No_ EXPR-1
1 32456123 13.1
2 46558855 5.7
25. A simple HAVING sample

SELECT 'Vendor No_', SUM('Unit Price')
FROM Item
GROUP BY 'Vendor No_'
HAVING COUNT(*) = 1

By use of DISTINCT all columns with the same contents are suppressed

  Vendor No_ Class
1 10000  
2 32456123  
3 20000  
4 46558855  
5 30000  
6    
26. SELECT using DISTINCT

SELECT DISTINCT 'Vendor No_', Class
FROM Item

The DISTINCT may also suppress values when used with the aggregate functions

  EXPR-1 EXPR-2
1 13257.10022 6
27. SELECT using DISTINCT on aggregate functions

SELECT SUM(DISTINCT 'Unit Price'), COUNT(DISTINCT 'Vendor No_')
FROM Item

UNIONs of select statements may be formed, UNION ALL is supported.

  No_ Standard Cost
1 70000 0
2 70001 0
3 70002 0
4 70003 0
5 70010 0
6 70011 0
7 70040 0
8 70041 0
9 70060 0
10 70100 0
11 70101 0
12 70102 0
13 70103 0
14 70104 0
15 70200 0
16 70201 0
17 80100 0
18 1896-S 0
19 1900-S 0
20 1906-S 0
21 1908-S 0
22 1920-S 0
23 1968-S 0
24 1928-S 0
25 2000-S 0
26 1936-S 0
27 1964-S 0
28 1960-S 0
29 1972-S 0
30 1988-S 0
31 1996-S 0
32 1980-S 0
33 1924-W 81.6
34 1952-W 93.6
35 70040 108.2
36 2000-S 123.3
37 1980-S 123.3
38 1972-S 123.3
39 1968-S 123.3
40 1908-S 123.3
41 1936-S 125.1
42 1964-S 125.1
43 1960-S 125.1
44 1988-S 125.1
45 1900-S 125.1
46 1924-W 136.4
47 1976-W 150.6
48 1952-W 158.5
49 1964-W 171.2
50 1928-W 192
51 1976-W 256.1
52 1906-S 281.4
53 1964-W 292
54 1928-W 342.1
55 1920-S 420.4
56 766BC-C 614
57 1896-S 649.4
58 1984-W 708.6
59 1968-W 708.6
60 1972-W 708.6
61 1992-W 708.6
62 1988-W 708.6
63 1996-S 906.7
64 766BC-C 944.59998
65 1968-W 974.8
66 1992-W 974.8
67 1988-W 974.8
68 1972-W 974.8
69 1984-W 974.8
70 766BC-B 1787.5999
71 766BC-A 5413.80034
28. SELECT using UNIONs

SELECT No_, 'Unit Price'
FROM Item
WHERE 'Unit Price' > 100
UNION ALL
SELECT No_, 'Standard Cost' FROM Item WHERE 'Standard Cost' < 1000 ORDER BY 2

Anywhere a SELECT statement can be used, the VALUES table constructor may be used.

6.14. VALUES constructor and SELECT from result set

  V1 V2 V3
1 4701 aa 65
2 4702 bb 8
29. VALUES constructor

SELECT *
FROM VALUES ("4701","aa",65),("4702","bb",8)

SELECT from a resultset is also possible.

  No_ Name
1 40000 Deerfield Graphics Company
2 34010602 Diseño industrial
3 43687129 Designstudio Gmunden
30. SELECT from result set

SELECT *
FROM (SELECT No_, Name FROM Customer)
WHERE Name MATCHES("D*")

Note by joining tables the WHERE becomes really importent. If no where is stated, the joined table is read once for each element in the first table:

  Code Due Date Calculation Discount Date Calculati Discount % Description Code Due Date Calculation Discount Date Calculati Discount % Description
1 CM CM   0 Current month CM CM   0 Current month
2 CM CM   0 Current month COD 0D   0 Cash on delivery
3 CM CM   0 Current month 1M(8D) 1M 8D 2 1 Month/2% 8 days
4 CM CM   0 Current month 14DAYS 14D   0 Net 14 days
5 CM CM   0 Current month 21DAYS 21D   0 Net 21 days
6 CM CM   0 Current month 7DAYS 7D   0 Net 7 days
7 COD 0D   0 Cash on delivery CM CM   0 Current month
8 COD 0D   0 Cash on delivery COD 0D   0 Cash on delivery
9 COD 0D   0 Cash on delivery 1M(8D) 1M 8D 2 1 Month/2% 8 days
10 COD 0D   0 Cash on delivery 14DAYS 14D   0 Net 14 days
11 COD 0D   0 Cash on delivery 21DAYS 21D   0 Net 21 days
12 COD 0D   0 Cash on delivery 7DAYS 7D   0 Net 7 days
13 1M(8D) 1M 8D 2 1 Month/2% 8 days CM CM   0 Current month
14 1M(8D) 1M 8D 2 1 Month/2% 8 days COD 0D   0 Cash on delivery
15 1M(8D) 1M 8D 2 1 Month/2% 8 days 1M(8D) 1M 8D 2 1 Month/2% 8 days
16 1M(8D) 1M 8D 2 1 Month/2% 8 days 14DAYS 14D   0 Net 14 days
17 1M(8D) 1M 8D 2 1 Month/2% 8 days 21DAYS 21D   0 Net 21 days
18 1M(8D) 1M 8D 2 1 Month/2% 8 days 7DAYS 7D   0 Net 7 days
19 14DAYS 14D   0 Net 14 days CM CM   0 Current month
20 14DAYS 14D   0 Net 14 days COD 0D   0 Cash on delivery
21 14DAYS 14D   0 Net 14 days 1M(8D) 1M 8D 2 1 Month/2% 8 days
22 14DAYS 14D   0 Net 14 days 14DAYS 14D   0 Net 14 days
23 14DAYS 14D   0 Net 14 days 21DAYS 21D   0 Net 21 days
24 14DAYS 14D   0 Net 14 days 7DAYS 7D   0 Net 7 days
25 21DAYS 21D   0 Net 21 days CM CM   0 Current month
26 21DAYS 21D   0 Net 21 days COD 0D   0 Cash on delivery
27 21DAYS 21D   0 Net 21 days 1M(8D) 1M 8D 2 1 Month/2% 8 days
28 21DAYS 21D   0 Net 21 days 14DAYS 14D   0 Net 14 days
29 21DAYS 21D   0 Net 21 days 21DAYS 21D   0 Net 21 days
30 21DAYS 21D   0 Net 21 days 7DAYS 7D   0 Net 7 days
31 7DAYS 7D   0 Net 7 days CM CM   0 Current month
32 7DAYS 7D   0 Net 7 days COD 0D   0 Cash on delivery
33 7DAYS 7D   0 Net 7 days 1M(8D) 1M 8D 2 1 Month/2% 8 days
34 7DAYS 7D   0 Net 7 days 14DAYS 14D   0 Net 14 days
35 7DAYS 7D   0 Net 7 days 21DAYS 21D   0 Net 21 days
36 7DAYS 7D   0 Net 7 days 7DAYS 7D   0 Net 7 days
31. Joined tables without where

SELECT *, a.*
FROM 'Payment Terms', 'Payment Terms' a

7. Using Filter fields

Filter fields are supported within the WHERE clause.

  No_ Name Net Change
1 2940 Giro Account -28250
2 2990 Liquid Assets, Total -28250
3 2995 Current Assets, Total -28250
4 2999 TOTAL ASSETS -28250
5 3195 Net Income for the Year 22600
6 3199 Total Stockholder's Equity 22600
7 5530 Purchase VAT 25 % 5650
8 5790 VAT, Total 5650
9 5995 Short-term Liabilities, Total 5650
10 5997 Total Liabilities 5650
11 5999 TOTAL LIABILITIES AND EQUITY 28250
12 8530 Repairs and Maintenance 20000
13 8590 Vehicle Expenses 20000
14 8640 Miscellaneous 2600
15 8690 Other Operating Exp., Total 2600
16 8695 Total Operating Expenses 22600
17 8995 Net Operating Income 22600
18 9395 NI BEFORE EXTR. ITEMS & TAXES 22600
19 9495 NET INCOME BEFORE TAXES 22600
20 9999 NET INCOME 22600
SELECT No_, Name, 'Net Change'
FROM 'G/L Account'
WHERE 'Date Filter' = "28-02-00" AND 'Net Change' <> 0

The AND 'Net Change' <> 0 is used only to reduce the result.

The actual filter field may also be selected

  No_ Name Net Change Date Filter
1 1240 Accum. Depr., Oper. Equip. -290 30-06-00
2 1290 Operating Equipment, Total -290 30-06-00
3 1340 Accum. Depreciation, Vehicles -1450 30-06-00
4 1390 Vehicles, Total -1450 30-06-00
5 1395 Tangible Fixed Assets, Total -1740 30-06-00
6 1999 Fixed Assets, Total -1740 30-06-00
7 2940 Giro Account -500 30-06-00
8 2990 Liquid Assets, Total -500 30-06-00
9 2995 Current Assets, Total -500 30-06-00
10 2999 TOTAL ASSETS -2240 30-06-00
11 3195 Net Income for the Year 2140 30-06-00
12 3199 Total Stockholder's Equity 2140 30-06-00
13 5530 Purchase VAT 25 % 100 30-06-00
14 5790 VAT, Total 100 30-06-00
15 5995 Short-term Liabilities, Total 100 30-06-00
16 5997 Total Liabilities 100 30-06-00
17 5999 TOTAL LIABILITIES AND EQUITY 2240 30-06-00
18 8530 Repairs and Maintenance 400 30-06-00
19 8590 Vehicle Expenses 400 30-06-00
20 8695 Total Operating Expenses 400 30-06-00
21 8820 Depreciation, Equipment 290 30-06-00
22 8830 Depreciation, Vehicles 1450 30-06-00
23 8890 Total Fixed Asset Depreciation 1740 30-06-00
24 8995 Net Operating Income 2140 30-06-00
25 9395 NI BEFORE EXTR. ITEMS & TAXES 2140 30-06-00
26 9495 NET INCOME BEFORE TAXES 2140 30-06-00
27 9999 NET INCOME 2140 30-06-00
SELECT No_, Name, 'Net Change', 'Date Filter'
FROM 'G/L Account'
WHERE 'Date Filter' = "30-06-00" AND 'Net Change' <> 0

8. Updating the database and datadictionary itself

The SW-Tools ODBC driver may be delivered for read-only or optionally with update for Navision Financials.

The INTO TEMP clause creates a file and file definition with the given name. This file exists until you manually delete it with DROP TABLE which makes INTO TEMP an easy way to export a file to another system.

The filename may be qualified by: xx\yyyy.name, where

xx = Desided file ID, if omitted or invalid the driver selects a free ID
yyyy = BASIS file interface name (owner), defaults to the first (SSV).

The file definition will be marked TEMP, any existing TEMP file is overwritten. The ORDER BY (or GROUP BY) is used to define the file index.If omitted an index as #1 is used.

8.1. Copying table INTO TEMP

  Code Due Date Calculation Discount Date Calculati Discount % Description
1 14DAYS 14D   0 Net 14 days
2 1M(8D) 1M 8D 2 1 Month/2% 8 days
3 21DAYS 21D   0 Net 21 days
4 7DAYS 7D   0 Net 7 days
5 CM CM   0 Current month
6 COD 0D   0 Cash on delivery
SELECT *
FROM 'Payment Terms'
ORDER BY 1
INTO TEMP za\nf.mytable

  Code Due Date Calculation Discount Date Calculati Discount % Description
1 14DAYS 14D   0 Net 14 days
2 1M(8D) 1M 8D 2 1 Month/2% 8 days
3 21DAYS 21D   0 Net 21 days
4 7DAYS 7D   0 Net 7 days
5 CM CM   0 Current month
6 COD 0D   0 Cash on delivery
SELECT *
FROM mytable

8.2. INSERT values INTO table

By use of INSERT...VALUES new records can be created

Query executed - No results returned.

INSERT INTO mytable
VALUES (1,2,3)

  Code Due Date Calculation Discount Date Calculati Discount % Description
1 1 2 3 0  
2 14DAYS 14D   0 Net 14 days
3 1M(8D) 1M 8D 2 1 Month/2% 8 days
4 21DAYS 21D   0 Net 21 days
5 7DAYS 7D   0 Net 7 days
6 CM CM   0 Current month
7 COD 0D   0 Cash on delivery
SELECT * FROM mytable

Records from other tables can be copied with INSERT...SELECT

8.3. INSERT values from other tables

Query executed - No results returned.

INSERT INTO mytable
(SELECT No_ FROM Item WHERE No_ < 70100)

  Code Due Date Calculation Discount Date Calculati Discount % Description
1 1 2 3 0  
2 14DAYS 14D   0 Net 14 days
3 1M(8D) 1M 8D 2 1 Month/2% 8 days
4 21DAYS 21D   0 Net 21 days
5 70000     0  
6 70001     0  
7 70002     0  
8 70003     0  
9 70010     0  
10 70011     0  
11 70040     0  
12 70041     0  
13 70060     0  
14 7DAYS 7D   0 Net 7 days
15 CM CM   0 Current month
16 COD 0D   0 Cash on delivery
SELECT *
FROM mytable

Insert columns may be given and the value table contructor may be used to form multiple records

Query executed - No results returned.

INSERT INTO mytable
(Code,Description,'Discount %') VALUES ("4701","aa",65),("4702","bb",8)

  Code Due Date Calculation Discount Date Calculati Discount % Description
1 1 2 3 0  
2 14DAYS 14D   0 Net 14 days
3 1M(8D) 1M 8D 2 1 Month/2% 8 days
4 21DAYS 21D   0 Net 21 days
5 4701     65 aa
6 4702     8 bb
7 70000     0  
8 70001     0  
9 70002     0  
10 70003     0  
11 70010     0  
12 70011     0  
13 70040     0  
14 70041     0  
15 70060     0  
16 7DAYS 7D   0 Net 7 days
17 CM CM   0 Current month
18 COD 0D   0 Cash on delivery
SELECT *
FROM mytable

Together with the select specific columns can be moved

Query executed - No results returned.

INSERT INTO mytable
(Code,Description,'Discount %')
(SELECT No_, Description, 'Unit Price' FROM Item WHERE 'Unit Price' > 500)

  Code Due Date Calculation Discount Date Calculati Discount % Description
1 1 2 3 0  
2 14DAYS 14D   0 Net 14 days
3 1896-S     649.4 ATHENS Desk
4 1968-W     974.8 GRENOBLE Whiteboard, red
5 1972-W     974.8 SAPPORO Whiteboard, black
6 1984-W     974.8 SARAJEVO Whiteboard, blue
7 1988-W     974.8 CALGARY Whiteboard, yellow
8 1992-W     974.8 ALBERTVILLE Whiteboard, green
9 1996-S     906.7 ATLANTA Whiteboard, base
10 1M(8D) 1M 8D 2 1 Month/2% 8 days
11 21DAYS 21D   0 Net 21 days
12 4701     65 aa
13 4702     8 bb
14 70000     0  
15 70001     0  
16 70002     0  
17 70003     0  
18 70010     0  
19 70011     0  
20 70040     0  
21 70041     0  
22 70060     0  
23 766BC-A     5413.80034 OLYMPIC Conference System
24 766BC-B     1787.5999 OLYMPIC Office System
25 766BC-C     944.59998 OLYMPIC Storage System
26 7DAYS 7D   0 Net 7 days
27 CM CM   0 Current month
28 COD 0D   0 Cash on delivery
SELECT *
FROM mytable

8.4. Updating existing records

Existing records can be updated with the UPDATE searched statement

Query executed - No results returned.

UPDATE mytable
SET 'Discount %' = 10
WHERE 'Discount %' > 500

  Code Due Date Calculation Discount Date Calculati Discount % Description
1 1 2 3 0  
2 14DAYS 14D   0 Net 14 days
3 1896-S     10 ATHENS Desk
4 1968-W     10 GRENOBLE Whiteboard, red
5 1972-W     10 SAPPORO Whiteboard, black
6 1984-W     10 SARAJEVO Whiteboard, blue
7 1988-W     10 CALGARY Whiteboard, yellow
8 1992-W     10 ALBERTVILLE Whiteboard, green
9 1996-S     10 ATLANTA Whiteboard, base
10 1M(8D) 1M 8D 2 1 Month/2% 8 days
11 21DAYS 21D   0 Net 21 days
12 4701     65 aa
13 4702     8 bb
14 70000     0  
15 70001     0  
16 70002     0  
17 70003     0  
18 70010     0  
19 70011     0  
20 70040     0  
21 70041     0  
22 70060     0  
23 766BC-A     10 OLYMPIC Conference System
24 766BC-B     10 OLYMPIC Office System
25 766BC-C     10 OLYMPIC Storage System
26 7DAYS 7D   0 Net 7 days
27 CM CM   0 Current month
28 COD 0D   0 Cash on delivery
SELECT *
FROM mytable

8.5. DELETE multiple records

The searched DELETE removes one or several records

Query executed - No results returned.

DELETE FROM mytable
WHERE 'Discount %' = 10

After the delete the function SQLRowCount delivers number of rows updated:

  Rows
1 10
SQLRowCount(hstmt)

And the resulting table looks like:

  Code Due Date Calculation Discount Date Calculati Discount % Description
1 1 2 3 0  
2 14DAYS 14D   0 Net 14 days
3 1M(8D) 1M 8D 2 1 Month/2% 8 days
4 21DAYS 21D   0 Net 21 days
5 4701     65 aa
6 4702     8 bb
7 70000     0  
8 70001     0  
9 70002     0  
10 70003     0  
11 70010     0  
12 70011     0  
13 70040     0  
14 70041     0  
15 70060     0  
16 7DAYS 7D   0 Net 7 days
17 CM CM   0 Current month
18 COD 0D   0 Cash on delivery
SELECT *
FROM mytable

8.6. DROP table

Using DROP TABLE a table and its definition can be removed.

Query executed - No results returned.

DROP TABLE mytable

9. Current of cursors

To avoid changes in the demo Navision Financials database we duplicate

- Item
- Vendor

into

- SWItem
- SWVendor

  No_ No 2 Description Search Description Description 2 Bill Class Base Unit of Price Unit Inventory Pos She
1 1896-S   ATHENS Desk ATHENS DESK   0   PCS 0 RESALE  
2 1900-S   PARIS Guest Chair, black PARIS GUEST CHAIR, BLACK   0   PCS 0 RESALE  
3 1906-S   ATHENS Mobile Pedestal ATHENS MOBILE PEDESTAL   0   PCS 0 RESALE  
4 1908-S   LONDON Swivel Chair, blue LONDON SWIVEL CHAIR, BLUE   0   PCS 0 RESALE  
5 1920-S   ANTWERP Conference Table ANTWERP CONFERENCE TABLE   0   PCS 0 RESALE  
6 1924-W   CHAMONIX Base Storage Unit CHAMONIX BASE STORAGE UNIT   1   PCS 0 FINISHED  
7 1928-S   AMSTERDAM Lamp AMSTERDAM LAMP   0   PCS 0 RESALE  
8 1928-W   ST.MORITZ Storage Unit/Drawers ST.MORITZ STORAGE UNIT/DRAWERS   1   PCS 0 FINISHED  
9 1936-S   BERLIN Guest Chair, yellow BERLIN GUEST CHAIR, YELLOW   0   PCS 0 RESALE  
10 1952-W   OSLO Storage Unit/Shelf OSLO STORAGE UNIT/SHELF   1   PCS 0 FINISHED  
11 1960-S   ROME Guest Chair, green ROME GUEST CHAIR, GREEN   0   PCS 0 RESALE  
12 1964-S   TOKYO Guest Chair, blue TOKYO GUEST CHAIR, BLUE   0   PCS 0 RESALE  
13 1964-W   INNSBRUCK Storage Unit/G.Door INNSBRUCK STORAGE UNIT/G.DOOR   1   PCS 0 FINISHED  
14 1968-S   MEXICO Swivel Chair, black MEXICO SWIVEL CHAIR, BLACK   0   PCS 0 RESALE  
15 1968-W   GRENOBLE Whiteboard, red GRENOBLE WHITEBOARD, RED   1   PCS 0 FINISHED  
16 1972-S   MUNICH Swivel Chair, yellow MUNICH SWIVEL CHAIR, YELLOW   0   PCS 0 RESALE  
17 1972-W   SAPPORO Whiteboard, black SAPPORO WHITEBOARD, BLACK   1   PCS 0 FINISHED  
18 1976-W   INNSBRUCK Storage Unit/W.Door INNSBRUCK STORAGE UNIT/W.DOOR   1   PCS 0 FINISHED  
19 1980-S   MOSCOW Swivel Chair, red MOSCOW SWIVEL CHAIR, RED   0   PCS 0 RESALE  
20 1984-W   SARAJEVO Whiteboard, blue SARAJEVO WHITEBOARD, BLUE   1   PCS 0 FINISHED  
21 1988-S   SEOUL Guest Chair, red SEOUL GUEST CHAIR, RED   0   PCS 0 RESALE  
22 1988-W   CALGARY Whiteboard, yellow CALGARY WHITEBOARD, YELLOW   1   PCS 0 FINISHED  
23 1992-W   ALBERTVILLE Whiteboard, green ALBERTVILLE WHITEBOARD, GREEN   1   PCS 0 FINISHED  
24 1996-S   ATLANTA Whiteboard, base ATLANTA WHITEBOARD, BASE   0   PCS 0 RESALE  
25 2000-S   SIDNEY Swivel Chair, green SIDNEY SWIVEL CHAIR, GREEN   0   PCS 0 RESALE  
26 70000   Side Panel SIDE PANEL   0   PCS 0 RAW MAT  
27 70001   Base BASE   0   PCS 0 RAW MAT  
28 70002   Top Panel TOP PANEL   0   PCS 0 RAW MAT  
29 70003   Rear Panel REAR PANEL   0   PCS 0 RAW MAT  
30 70010   Wooden Door WOODEN DOOR   0   PCS 0 RAW MAT  
31 70011   Glass Door GLASS DOOR   0   PCS 0 RAW MAT  
32 70040   Drawer DRAWER   0   PCS 0 RAW MAT  
33 70041   Shelf SHELF   0   PCS 0 RAW MAT  
34 70060   Mounting MOUNTING   0   PCS 0 RAW MAT  
35 70100   Paint, black PAINT, BLACK   0   CAN 0 RAW MAT  
36 70101   Paint, yellow PAINT, YELLOW   0   CAN 0 RAW MAT  
37 70102   Paint, blue PAINT, BLUE   0   CAN 0 RAW MAT  
38 70103   Paint, red PAINT, RED   0   CAN 0 RAW MAT  
39 70104   Paint, green PAINT, GREEN   0   CAN 0 RAW MAT  
40 70200   Hinge HINGE   0   PCS 0 RAW MAT  
41 70201   Doorknob DOORKNOB   0   PCS 0 RAW MAT  
42 766BC-A   OLYMPIC Conference System OLYMPIC CONFERENCE SYSTEM   1   PCS 0 FINISHED  
43 766BC-B   OLYMPIC Office System OLYMPIC OFFICE SYSTEM   1   PCS 0 FINISHED  
44 766BC-C   OLYMPIC Storage System OLYMPIC STORAGE SYSTEM   1   PCS 0 FINISHED  
45 80100   Printing Paper PRINTING PAPER   0   BOX 0 RESALE  
SELECT *
FROM Item
ORDER BY 1
INTO TEMP zb\nf.SWItem

  No_ Name Search Name Name 2 Address Address 2 City
1 01254796 Progressive Home Furnishings PROGRESSIVE HOME FURNISHINGS   222 Reagan Drive   Columbia
2 01587796 Custom Metals Incorporated CUSTOM METALS INCORPORATED   640 Nixon Blvd.   Birmingham
3 01963656 American Wood Exports AMERICAN WOOD EXPORTS   723 North Hampton Drive   New York
4 10000 London Postmaster LONDON POSTMASTER   10 North Lake Avenue   London
5 20000 AR Day Property Management AR DAY PROPERTY MANAGEMENT   100 Day Drive   Guildford
6 30000 CoolWood Technologies COOLWOOD TECHNOLOGIES   33 Hitech Drive   Portsmouth
7 31147896 Houtindustrie Bruynsma HOUTINDUSTRIE BRUYNSMA   Havenweg 92   Zaandam
8 31568974 Koekamp Leerindustrie KOEKAMP LEERINDUSTRIE   Looiersdreef 19-27   Waalwijk
9 31580305 Beekhuysen BV BEEKHUYSEN BV   Mergelland 4   Apeldoorn
10 32456123 BATIMETAL BATIMETAL   Stationstraat 12   Humbeek
11 32554455 PURE-LOOK PURE-LOOK   Parklaan 3   Mechelen
12 32665544 VELUX VELUX   Boomgaardstraat 55   Kortrijk
13 34110257 Importaciones S.A. IMPORTACIONES S.A.   Av. Palmeras 5   Alicante
14 34151086 Subacqua SUBACQUA   c/ Neptuno 18   Salamanca
15 34280789 Transporte Roas TRANSPORTE ROAS   Pol. Ind. 4   Palma Mallorca
16 35225588 Husplast HF HUSPLAST HF   Dalvegi 24   Reykjavik
17 35336699 Hurdir HF HURDIR HF   Skeifunni 13   Reykjavik
18 35741852 Huslagnir HUSLAGNIR   Rangarseli 20   Reykjavik
19 38458653 IVERKA POHISTVO d.o.o. IVERKA POHISTVO D.O.O.   Industrijska c.15   Kranj
20 38521479 MASIVA d.o.o. MASIVA D.O.O.   Ferkova ulica4   Kranj
21 38654478 POIIORLES d.d. POIIORLES D.D.   Cankarjeva 17   Maribor
22 40000 Lewis Home Furniture LEWIS HOME FURNITURE   51 Radcroft Road   Gainsborough
23 41124089 Flückiger AG FLÜCKIGER AG   Erlenstrasse 5   Immensee
24 41483124 Matter Transporte MATTER TRANSPORTE   Industrie   Pratteln
25 41568934 Schreinerei Peter SCHREINEREI PETER   Seedamm 18   Rotkreuz
26 42125678 UP Ostrov s.p. UP OSTROV S.P.   Mayerova 12   Olomouch
27 42784512 TON s.r.o. TON S.R.O.   Krausova 125   Kyjov
28 42895623 Mach & spol. v.o.s. MACH & SPOL. V.O.S.   T.G. Masaryka 15   Blansko
29 43258545 Sägewerk Mittersill SÄGEWERK MITTERSILL   Ortstraße 12   Mittersill
30 43589632 Paul Brettschneider KG PAUL BRETTSCHNEIDER KG   Am Bahndamm 68   Murau
31 43698547 Beschläge Schacherhuber BESCHLÄGE SCHACHERHUBER   Fabrikstraße 24   Wien
32 44127904 WoodMart Supply Co. WOODMART SUPPLY CO.   12 Industrial Heights   Stratford
33 44127914 Mortimor Car Company MORTIMOR CAR COMPANY   43 Industrial Heights   Stratford
34 44729910 Tool Mart TOOL MART   8 Grovenors Park   London
35 44756404 Furniture Industries FURNITURE INDUSTRIES   23 Charington Cresent   Edinburgh
36 45774477 Fredborg Lamper A/S FREDBORG LAMPER A/S   Nyborgvej 566   Odense C
37 45858585 Elvstrøm Træindustri A/S ELVSTRØM TRÆINDUSTRI A/S   Havnevej 6   Køge
38 45868686 Schmeichel Møbler A/S SCHMEICHEL MØBLER A/S   Ndr. Frihavnsgade 45   København Ø
39 46558855 Kinnareds Träindustri AB KINNAREDS TRÄINDUSTRI AB   Stordal Torslunda   Kinnared
40 46635241 Viksjö Snickerifabrik AB VIKSJÖ SNICKERIFABRIK AB   Sjöhagsgatan 7   Sundsvall
41 46895623 Svensk Möbeltextil AB SVENSK MÖBELTEXTIL AB   Nyängsvägen 14   Göteborg
42 47521478 Møbelhuset AS MØBELHUSET AS   Vivendelveien 17   Ski
43 47562214 Stilmøbler as STILMØBLER AS   Thv. Meyersgt. 34   Oslo
44 47586622 Furumøbler A/S FURUMØBLER A/S   Østensjøveien 27   Oslo
45 49454647 VAG - Jürgensen VAG - JÜRGENSEN   Süderweg 15   Hamburg
46 49494949 KKA Büromaschinen Gmbh KKA BÜROMASCHINEN GMBH   Immermannstraße 92   Landsberg am Lech
47 49989898 JB-Spedition JB-SPEDITION   Grünfahrtsweg 20   München
48 50000 Service Electronics Ltd. SERVICE ELECTRONICS LTD.   172 Field Green   Watford
SELECT *
FROM Vendor
ORDER BY 1
INTO TEMP zc\nf.SWVendor

9.1. Getting CURSOR name

Cursors are named, the name can be retrieved by SQLGetCursorName:

  Cursorname
1 SQL_CUR00001
SQLGetCursorName(hstmt,cursorname,256,&len)

And the cursor name can be set by SQLSetCursorName before the SELECT is done.

9.2. Setting CURSOR name

Query executed - No results returned.

SQLSetCursorName(hstmt,"mycursor",SQL_NTS)

The select for UPDATE is implemented. Note both files may be updated.

9.3. SELECT for UPDATE

  No_ Description Unit Price Vendor No_ Ven
1 1896-S ATHENS Desk 0 30000 30000
2 1900-S PARIS Guest Chair, black 0 20000 20000
3 1906-S ATHENS Mobile Pedestal 0 30000 30000
4 1908-S LONDON Swivel Chair, blue 0 30000 30000
5 1920-S ANTWERP Conference Table 0 20000 20000
6 1924-W CHAMONIX Base Storage Unit 0 20000 20000
7 1928-S AMSTERDAM Lamp 0 10000 10000
8 1928-W ST.MORITZ Storage Unit/Drawers 0    
9 1936-S BERLIN Guest Chair, yellow 0 20000 20000
10 1952-W OSLO Storage Unit/Shelf 0    
11 1960-S ROME Guest Chair, green 0 20000 20000
12 1964-S TOKYO Guest Chair, blue 0 20000 20000
13 1964-W INNSBRUCK Storage Unit/G.Door 0    
14 1968-S MEXICO Swivel Chair, black 0 30000 30000
15 1968-W GRENOBLE Whiteboard, red 0    
16 1972-S MUNICH Swivel Chair, yellow 0 30000 30000
17 1972-W SAPPORO Whiteboard, black 0    
18 1976-W INNSBRUCK Storage Unit/W.Door 0    
19 1980-S MOSCOW Swivel Chair, red 0 30000 30000
20 1984-W SARAJEVO Whiteboard, blue 0    
21 1988-S SEOUL Guest Chair, red 0 20000 20000
22 1988-W CALGARY Whiteboard, yellow 0    
23 1992-W ALBERTVILLE Whiteboard, green 0    
24 1996-S ATLANTA Whiteboard, base 0 30000 30000
25 2000-S SIDNEY Swivel Chair, green 0 30000 30000
26 70000 Side Panel 0 10000 10000
27 70001 Base 0 10000 10000
28 70002 Top Panel 0 10000 10000
29 70003 Rear Panel 0 10000 10000
30 70010 Wooden Door 0 10000 10000
31 70011 Glass Door 0 10000 10000
32 70040 Drawer 0 10000 10000
33 70041 Shelf 0 10000 10000
34 70060 Mounting 0 32456123 32456123
35 70100 Paint, black 0 20000 20000
36 70101 Paint, yellow 0 20000 20000
37 70102 Paint, blue 0 20000 20000
38 70103 Paint, red 0 20000 20000
39 70104 Paint, green 0 20000 20000
40 70200 Hinge 0 10000 10000
41 70201 Doorknob 0 10000 10000
42 766BC-A OLYMPIC Conference System 0    
43 766BC-B OLYMPIC Office System 0    
44 766BC-C OLYMPIC Storage System 0    
45 80100 Printing Paper 0 46558855 46558855
SELECT No_, Description, 'Unit Price', 'Vendor No_', a.No_ Ven
FROM SWItem, OUTER SWVendor a
WHERE a.No_ = 'Vendor No_'
FOR UPDATE OF 'Unit Price'

As an extension to the SQL for these examples, the cursor can be positioned using SELECT ... WHERE CURRENT OF cursorname = rownumber

  No_ Description Unit Price Vendor No_
1 1924-W CHAMONIX Base Storage Unit 0 20000
SELECT No_, Description, 'Unit Price', 'Vendor No_'
FROM SWItem
WHERE CURRENT OF mycursor=6

Query executed - No results returned.

UPDATE SWItem
SET 'Unit Price' = 'Unit Price' + 200
WHERE CURRENT OF mycursor

9.4. SELECT from cursor

The result may be retrieved again by the extension select

  No_ Description Unit Price Vendor No_
1 1924-W CHAMONIX Base Storage Unit 200 20000
SELECT No_, Description, 'Unit Price', 'Vendor No_'
FROM SWItem
WHERE CURRENT OF mycursor

Also rows from joined tables may be used in positioned update

  No_ Name Balance
1 30000   0
SELECT No_, Name, Balance
FROM SWVendor
WHERE CURRENT OF mycursor=3
FOR UPDATE

9.5. DELETE from cursor

The positioned delete can be done:

Query executed - No results returned.

DELETE FROM SWItem
WHERE CURRENT OF mycursor=3

The FOR UPDATE may be given without fields if only DELETE should follow

  No_ Vendor No_ Unit Price
1 1896-S 30000 0
2 1900-S 20000 0
3 1908-S 30000 0
4 1920-S 20000 0
5 1924-W 20000 200
6 1928-S 10000 0
7 1928-W   0
8 1936-S 20000 0
9 1952-W   0
10 1960-S 20000 0
11 1964-S 20000 0
12 1964-W   0
13 1968-S 30000 0
14 1968-W   0
15 1972-S 30000 0
16 1972-W   0
17 1976-W   0
18 1980-S 30000 0
19 1984-W   0
20 1988-S 20000 0
21 1988-W   0
22 1992-W   0
23 1996-S 30000 0
24 2000-S 30000 0
25 70000 10000 0
26 70001 10000 0
27 70002 10000 0
28 70003 10000 0
29 70010 10000 0
30 70011 10000 0
31 70040 10000 0
32 70041 10000 0
33 70060 32456123 0
34 70100 20000 0
35 70101 20000 0
36 70102 20000 0
37 70103 20000 0
38 70104 20000 0
39 70200 10000 0
40 70201 10000 0
41 766BC-A   0
42 766BC-B   0
43 766BC-C   0
44 80100 46558855 0
SELECT No_, 'Vendor No_', 'Unit Price'
FROM SWItem
FOR UPDATE

Query executed - No results returned.

DELETE FROM SWItem
WHERE CURRENT OF mycursor

  No_ Description Unit Price
1 1896-S ATHENS Desk 0
2 1900-S PARIS Guest Chair, black 0
3 1908-S LONDON Swivel Chair, blue 0
4 1920-S ANTWERP Conference Table 0
5 1924-W CHAMONIX Base Storage Unit 200
6 1928-S AMSTERDAM Lamp 0
7 1928-W ST.MORITZ Storage Unit/Drawers 0
8 1936-S BERLIN Guest Chair, yellow 0
9 1952-W OSLO Storage Unit/Shelf 0
10 1960-S ROME Guest Chair, green 0
11 1964-S TOKYO Guest Chair, blue 0
12 1964-W INNSBRUCK Storage Unit/G.Door 0
13 1968-S MEXICO Swivel Chair, black 0
14 1968-W GRENOBLE Whiteboard, red 0
15 1972-S MUNICH Swivel Chair, yellow 0
16 1972-W SAPPORO Whiteboard, black 0
17 1976-W INNSBRUCK Storage Unit/W.Door 0
18 1980-S MOSCOW Swivel Chair, red 0
19 1984-W SARAJEVO Whiteboard, blue 0
20 1988-S SEOUL Guest Chair, red 0
21 1988-W CALGARY Whiteboard, yellow 0
22 1992-W ALBERTVILLE Whiteboard, green 0
23 1996-S ATLANTA Whiteboard, base 0
24 2000-S SIDNEY Swivel Chair, green 0
25 70000 Side Panel 0
26 70001 Base 0
27 70002 Top Panel 0
28 70003 Rear Panel 0
29 70010 Wooden Door 0
30 70011 Glass Door 0
31 70040 Drawer 0
32 70041 Shelf 0
33 70060 Mounting 0
34 70100 Paint, black 0
35 70101 Paint, yellow 0
36 70102 Paint, blue 0
37 70103 Paint, red 0
38 70104 Paint, green 0
39 70200 Hinge 0
40 70201 Doorknob 0
41 766BC-A OLYMPIC Conference System 0
42 766BC-B OLYMPIC Office System 0
43 766BC-C OLYMPIC Storage System 0
SELECT No_, Description, 'Unit Price'
FROM SWItem

10. Views

A view may be created defining a select

Query executed - No results returned.

CREATE VIEW myview (A,B,C)
AS (SELECT No_, Description, 'Unit Price' FROM Item WHERE 'Unit Price' > 0)

Selecting fields from a view first executes the defined select. The table definition but not the table itself exists. A view cannot be updated.

  A B C
1 1896-S ATHENS Desk 649.4
2 1906-S ATHENS Mobile Pedestal 281.4
3 1920-S ANTWERP Conference Table 420.4
4 1928-W ST.MORITZ Storage Unit/Drawers 342.1
5 1964-W INNSBRUCK Storage Unit/G.Door 292
6 1968-W GRENOBLE Whiteboard, red 974.8
7 1972-W SAPPORO Whiteboard, black 974.8
8 1976-W INNSBRUCK Storage Unit/W.Door 256.1
9 1984-W SARAJEVO Whiteboard, blue 974.8
10 1988-W CALGARY Whiteboard, yellow 974.8
11 1992-W ALBERTVILLE Whiteboard, green 974.8
12 1996-S ATLANTA Whiteboard, base 906.7
13 766BC-A OLYMPIC Conference System 5413.80034
14 766BC-B OLYMPIC Office System 1787.5999
15 766BC-C OLYMPIC Storage System 944.59998
SELECT *
FROM myview
WHERE C > 200

The view may be removed afterwards:

Query executed - No results returned.

DROP VIEW myview

11. Create / Alter and Rename tables

The CREATE/ALTER TABLE has the following extensions to the standard SQL:

a. Table name can be given as described for SELECT...INTO
b. Field formats may be given including Pack options/Bytes etc.
c. PRIMARY KEY may specify SWTools key syntax using fieldnumbers

11.1. How to create tables

Query executed - No results returned.

CREATE TABLE mytable (no SHORT(4),
name CHAR(20),
balance NUMERIC(8,2),
PRIMARY KEY (name ASC,no DESC))

Query executed - No results returned.

CREATE TABLE 'yourtable' ('no a' SHORT ( 4 ) UNIQUE,
'name b' CHAR ( 20 ) ,
balance DECIMAL ( 8 , 2 ) )

Query executed - No results returned.

CREATE TABLE sometable (no LONG ,
name CHAR(20),
PRIMARY KEY(#1,#2,NP))

Index can be created and dropped again

Query executed - No results returned.

CREATE UNIQUE INDEX abcdef ON mytable (no ASC,name DESC)

Query executed - No results returned.

DROP INDEX mytable.abcdef

11.2. ALTER table definition

The ALTER TABLE supports ADD,DROP and MODIFY of columns

Query executed - No results returned.

ALTER TABLE mytable ADD (date NUMERIC(,8,2P7),code CHAR(13)),
DROP COLUMN balance,name,
MODIFY no NUMERIC

A table CANNOT BE RENAMED because C/FRONT does not support it!

RENAME TABLE mytable TO agoodtable

12. Data types

The below mentioned data types returned by SQLGetTypeInfo are valid. The use of NULL values are resticted due to the file systems involved.

  TYPE_NAME DATA PRECI LPRE LSUF CREATE_PARAMS NUL CAS SEA UNS MO AUTO LOC MIN MAX
1 CHAR 1 254 " " MAX LENGTH 0 1 3 NUL 0 NULL NUL NUL NUL
2 NUMERIC 8 15 NULL NULL PRECISION,SCALE 0 0 2 0 0 0 NUL 0 9
3 DECIMAL 8 15 NULL NULL PRECISION,SCALE 0 0 2 0 0 0 NUL 0 9
4 LONG 4 10 NULL NULL PRECISION 0 0 2 0 0 0 NUL 0 0
5 SHORT 5 5 NULL NULL PRECISION 0 0 2 0 0 0 NUL 0 0
6 FLOAT 8 15 NULL NULL PRECISION,SCALE 0 0 2 0 0 0 NUL 0 9
7 REAL 8 15 NULL NULL PRECISION,SCALE 0 0 2 0 0 0 NUL 0 9
8 DOUBLE 8 15 NULL NULL PRECISION,SCALE 0 0 2 0 0 0 NUL 0 9
9 DATE 9 10 # # NULL 1 0 2 NUL 0 NULL NUL NUL NUL
10 TIME 10 8 # # NULL 1 0 2 NUL 0 NULL NUL NUL NUL
11 TIMESTAMP 11 19 # # NULL 1 0 2 NUL 0 NULL NUL NUL NUL
12 VARCHAR 12 1024 " " MAX LENGTH 0 1 3 NUL 0 NULL NUL NUL NUL
SQLGetTypeInfo(hstmt,SQL_ALL_TYPES)

Fieldnames are taken from the Data-Dictionary SQLnames, if these are not present the normal fieldname is used, ' \ . and " will be replaced by space. In case of duplicate fieldnames 1 is added to the last character in the name. Fields without name or format definitions is omitted.

A description for the 'Payment Terms' table comes like:

  QUALI OWNER TABLE_NAME COLUMN_NAME TYPE TYPE_NAME PREC LEN SCALE RADIX NULL REMARKS
1 NULL NULL Payment Te Code 12 VARCHAR 10 10 0 NULL 0 NULL
2 NULL NULL Payment Te Due Date Ca 12 VARCHAR 20 20 0 NULL 0 NULL
3 NULL NULL Payment Te Discount Da 12 VARCHAR 20 20 0 NULL 0 NULL
4 NULL NULL Payment Te Discount % 8 DOUBLE 11 8 2 10 0 NULL
5 NULL NULL Payment Te Description 12 VARCHAR 50 50 0 NULL 0 NULL
SQLColumns(hstmt,NULL,0,NULL,0,"Payment Terms",SQL_NTS,NULL,0)

After a SELECT SQLDescribeCol may look like the following:

  Code Due Date Calculation Discount Date Calculati Discount % Description
1 CM CM   0 Current month
2 COD 0D   0 Cash on delivery
SELECT *
FROM 'Payment Terms'
WHERE Description LIKE("C%")

  Name SQL-Type Precision Scale Nullable
1 Code 12 SQL_VARCHAR 10 0 0
2 Due Date Calculation 12 SQL_VARCHAR 20 0 0
3 Discount Date Calculatio 12 SQL_VARCHAR 20 0 0
4 Discount % 8 SQL_DOUBLE 11 2 0
5 Description 12 SQL_VARCHAR 50 0 0
SQLDescribeCol(hstmt,*,name,256,&len,&type,&precision,&scale,&nullable)

And the more detailed column attributes:

  Aut Cas Cou Siz Label Len M Name Nul Own Prec Qua Sca Sea Tab Typ Typname Uns Updat
1 0 1 5 10 Code 10 0 Code 0   10   0 3   12 VARCHAR 1 1
2 0 1 5 20 Due D 20 0 Due D 0   20   0 3   12 VARCHAR 1 1
3 0 1 5 20 Disco 20 0 Disco 0   20   0 3   12 VARCHAR 1 1
4 0 0 5 15 Disco 8 0 Disco 0   11   2 2   8 DOUBLE 0 1
5 0 1 5 50 Descr 50 0 Descr 0   50   0 3   12 VARCHAR 1 1
SQLColAttributes(hstmt,*,*,info,256,&len,&val)

The SQLSpecialColumns gives the best access key to the table

  SCOPE COLUMN_NAME DATA_TYPE TYPE_NAME PREC LEN SCALE PSEUDO
1 1 Code 0 12 0 10 10 1
SQLSpecialColumns(hstmt,SQL_BEST_ROWID,
NULL,0,NULL,0,"Payment Terms",SQL_NTS,
SQL_SCOPE_CURROW,SQL_NULLABLE)

Whereas SQLStatistics provides information of the table and the single keyparts

  QUALI OWNER TABLE_NAME UNI XQUALI INDEX_NAME TYP SEQ COLUMN_NAME COL CAR PAGES FIL
1 NULL NULL Payment Te NUL Paymen NULL 0 NUL NULL NUL 0 0 NUL
2 NULL NULL Payment Te 0 Paymen INDEX01 3 1 Code A 0 0 NUL
SQLStatistics(hstmt,NULL,0,NULL,0,"Payment Terms",SQL_NTS,SQL_INDEX_ALL,SQL_ENSURE)

Note: SQL_ENSURE is required to get the correct values of Cardinality and pages. For TABLE_STAT Cardinality is total number of records, Pages the files size in KB. For INDEX Cardinality is also total number of records, Pages the index size in KB.

13. Table types, names, Owners and Qualifiers

The table names is decided from the FNAME= and the FNAMELEN= parameters stated in ODBC.INI for the data source or given in the connection string to SQLDriverConnect. * marks the default.

   FNAME=n   How to use table names
0 File ID is always used
1 * If SID is filled, use the first 11 characters of this else same as
2 Use reduced FILENAME according to following rules:
a. Start from first alpha character in the name
b. If spaces is present, start after the last space found
c. If : \ or / is present, start after the last of these
d. If name becomes XX.xxx, remove XX.
e. If name ends with abc, remove abc.
3 Use FILETEXT as tablename until first non-alphanumeric character.
4 Use FILETEXT as tablename

FNAMELEN=n Length of Table name
0 No restrictions on tablename
1 * Tablename is delimited by the first occurence of a space
>2 Tablename will be of maximum this size.

The characters \ . ' and " in any file- or fieldname will be replaced by space as not all database programs is able to handle these.

If the tablename becomes invalid or if a duplicate name is found the ID is used.

The table informations also uses the following:

   OWNER=n   Usage of owners
0 No owners, NULL is returned
1 * Use file typename as owner
2 Use file ID as owner

QUALIFIER=n Usage of file qualifiers
0 No qualifiers, NULL is returned
1* Use file ID as qualifier
2 Use file typename as qualifier

FTEXT=n Usage of file text description
0 * The file text is used
1 Filename
2 Filename + File text
3 File ID + Filename + File text

  TABLE_QUALIFIER TABLE_OWNER TABLE_NAME TABLE_TYPE REMARKS
1 NULL NULL Systemfields SYSTEM TABLE Systemfields
2 NULL NULL Acc Sched Cell V TABLE Acc. Sched. Cell Value
3 NULL NULL Acc Sched Column TABLE Acc. Sched. Column
4 NULL NULL Acc Sched Column TABLE Acc. Sched. Column Layout Name
5 NULL NULL Acc Schedule Lin TABLE Acc. Schedule Line
6 NULL NULL Acc Schedule Nam TABLE Acc. Schedule Name
7 NULL NULL Accounting Perio TABLE Accounting Period
8 NULL NULL Activity TABLE Activity
9 NULL NULL Activity Type TABLE Activity Type
10 NULL NULL Adjust Exchange TABLE Adjust Exchange Rate Buffer
11 NULL NULL AllObj TABLE AllObj
12 NULL NULL Alternative Addr TABLE Alternative Address
13 NULL NULL Application Area TABLE Application Area Line
14 NULL NULL Area TABLE Area
15 NULL NULL Automation Serve TABLE Automation Servers
16 NULL NULL BOM Component TABLE BOM Component
17 NULL NULL BOM Journal Batc TABLE BOM Journal Batch
18 NULL NULL BOM Journal Line TABLE BOM Journal Line
19 NULL NULL BOM Journal Temp TABLE BOM Journal Template
20 NULL NULL BOM Ledger Entry TABLE BOM Ledger Entry
21 NULL NULL BOM Register TABLE BOM Register
22 NULL NULL Bank Acc Reconci TABLE Bank Acc. Reconciliation
23 NULL NULL Bank Acc Reconci TABLE Bank Acc. Reconciliation Line
24 NULL NULL Bank Account TABLE Bank Account
25 NULL NULL Bank Account Led TABLE Bank Account Ledger Entry
26 NULL NULL Bank Account Pos TABLE Bank Account Posting Group
27 NULL NULL Bank Account Sta TABLE Bank Account Statement
28 NULL NULL Bank Account Sta TABLE Bank Account Statement Line
29 NULL NULL Bin TABLE Bin
30 NULL NULL Business Unit TABLE Business Unit
31 NULL NULL Campaign TABLE Campaign
32 NULL NULL Campaign Line TABLE Campaign Line
33 NULL NULL Cause of Absence TABLE Cause of Absence
34 NULL NULL Cause of Inactiv TABLE Cause of Inactivity
35 NULL NULL Cheque Ledger En TABLE Cheque Ledger Entry
36 NULL NULL Close Income Sta TABLE Close Income Statement Buffer
37 NULL NULL Comment Line TABLE Comment Line
38 NULL NULL Commodity Code TABLE Commodity Code
39 NULL NULL Company TABLE Company
40 NULL NULL Company Informat TABLE Company Information
41 NULL NULL Confidential TABLE Confidential
42 NULL NULL Confidential Inf TABLE Confidential Information
43 NULL NULL Cont Mgt Comment TABLE Cont. Mgt. Comment Line
44 NULL NULL Contact TABLE Contact
45 NULL NULL Contact Job Resp TABLE Contact Job Responsibility
46 NULL NULL Contact Manageme TABLE Contact Management Setup
47 NULL NULL Country TABLE Country
48 NULL NULL Currency TABLE Currency
49 NULL NULL Currency Exchang TABLE Currency Exchange Rate
50 NULL NULL Currency Total B TABLE Currency Total Buffer
51 NULL NULL Currency for Fin TABLE Currency for Fin. Charge Terms
52 NULL NULL Currency for Rem TABLE Currency for Reminder Level
53 NULL NULL Cust Invoice Dis TABLE Cust. Invoice Disc.
54 NULL NULL Cust Ledger Entr TABLE Cust. Ledger Entry
55 NULL NULL Cust/Item Discou TABLE Cust./Item Discount
56 NULL NULL Customer TABLE Customer
57 NULL NULL Customer Amount TABLE Customer Amount
58 NULL NULL Customer Bank Ac TABLE Customer Bank Account
59 NULL NULL Customer Discoun TABLE Customer Discount Group
60 NULL NULL Customer Posting TABLE Customer Posting Group
61 NULL NULL Database File TABLE Database File
62 NULL NULL Database Key Gro TABLE Database Key Groups
63 NULL NULL Date TABLE Date
64 NULL NULL Date Compr Regis TABLE Date Compr. Register
65 NULL NULL Department TABLE Department
66 NULL NULL Depreciation Boo TABLE Depreciation Book
67 NULL NULL Depreciation Tab TABLE Depreciation Table Buffer
68 NULL NULL Depreciation Tab TABLE Depreciation Table Header
69 NULL NULL Depreciation Tab TABLE Depreciation Table Line
70 NULL NULL Document Entry TABLE Document Entry
71 NULL NULL Drive TABLE Drive
72 NULL NULL Drop Shpt Post B TABLE Drop Shpt. Post. Buffer
73 NULL NULL Employee TABLE Employee
74 NULL NULL Employee Absence TABLE Employee Absence
75 NULL NULL Employee Qualifi TABLE Employee Qualification
76 NULL NULL Employee Relativ TABLE Employee Relative
77 NULL NULL Employee Statist TABLE Employee Statistics Group
78 NULL NULL Employment Contr TABLE Employment Contract
79 NULL NULL Entry Summary TABLE Entry Summary
80 NULL NULL Entry/Exit Point TABLE Entry/Exit Point
81 NULL NULL Exch Rate Adjmt TABLE Exch. Rate Adjmt. Reg.
82 NULL NULL Extended Text He TABLE Extended Text Header
83 NULL NULL Extended Text Li TABLE Extended Text Line
84 NULL NULL FA Allocation TABLE FA Allocation
85 NULL NULL FA Buffer Projec TABLE FA Buffer Projection
86 NULL NULL FA Class TABLE FA Class
87 NULL NULL FA Date Type TABLE FA Date Type
88 NULL NULL FA Depreciation TABLE FA Depreciation Book
89 NULL NULL FA G/L Posting B TABLE FA G/L Posting Buffer
90 NULL NULL FA Journal Batch TABLE FA Journal Batch
91 NULL NULL FA Journal Line TABLE FA Journal Line
92 NULL NULL FA Journal Setup TABLE FA Journal Setup
93 NULL NULL FA Journal Templ TABLE FA Journal Template
94 NULL NULL FA Ledger Entry TABLE FA Ledger Entry
95 NULL NULL FA Location TABLE FA Location
96 NULL NULL FA Matrix Postin TABLE FA Matrix Posting Type
97 NULL NULL FA Posting Group TABLE FA Posting Group
98 NULL NULL FA Posting Type TABLE FA Posting Type
99 NULL NULL FA Posting Type TABLE FA Posting Type Setup
100 NULL NULL FA Reclass Journ TABLE FA Reclass. Journal Batch
101 NULL NULL FA Reclass Journ TABLE FA Reclass. Journal Line
102 NULL NULL FA Reclass Journ TABLE FA Reclass. Journal Template
103 NULL NULL FA Register TABLE FA Register
104 NULL NULL FA Setup TABLE FA Setup
105 NULL NULL FA Subclass TABLE FA Subclass
106 NULL NULL Field TABLE Field
107 NULL NULL File TABLE File
108 NULL NULL Fin Charge Comme TABLE Fin. Charge Comment Line
109 NULL NULL Finance Charge M TABLE Finance Charge Memo Header
110 NULL NULL Finance Charge M TABLE Finance Charge Memo Line
111 NULL NULL Finance Charge T TABLE Finance Charge Terms
112 NULL NULL Finance Charge T TABLE Finance Charge Text
113 NULL NULL Fixed Asset TABLE Fixed Asset
114 NULL NULL G/L Account TABLE G/L Account
115 NULL NULL G/L Account Net TABLE G/L Account Net Change
116 NULL NULL G/L Budget Entry TABLE G/L Budget Entry
117 NULL NULL G/L Budget Name TABLE G/L Budget Name
118 NULL NULL G/L Entry TABLE G/L Entry
119 NULL NULL G/L Register TABLE G/L Register
120 NULL NULL Gains and Losses TABLE Gains and Losses Post. Buffer
121 NULL NULL Gen Business Pos TABLE Gen. Business Posting Group
122 NULL NULL Gen Jnl Allocati TABLE Gen. Jnl. Allocation
123 NULL NULL Gen Journal Batc TABLE Gen. Journal Batch
124 NULL NULL Gen Journal Line TABLE Gen. Journal Line
125 NULL NULL Gen Journal Temp TABLE Gen. Journal Template
126 NULL NULL Gen Product Post TABLE Gen. Product Posting Group
127 NULL NULL General Ledger S TABLE General Ledger Setup
128 NULL NULL General Posting TABLE General Posting Setup
129 NULL NULL Grounds for Term TABLE Grounds for Termination
130 NULL NULL HR Confidential TABLE HR Confidential Comment Line
131 NULL NULL Human Resource C TABLE Human Resource Comment Line
132 NULL NULL Human Resources TABLE Human Resources Setup
133 NULL NULL Ins Coverage Led TABLE Ins. Coverage Ledger Entry
134 NULL NULL Insurance TABLE Insurance
135 NULL NULL Insurance Journa TABLE Insurance Journal Batch
136 NULL NULL Insurance Journa TABLE Insurance Journal Line
137 NULL NULL Insurance Journa TABLE Insurance Journal Template
138 NULL NULL Insurance Regist TABLE Insurance Register
139 NULL NULL Insurance Type TABLE Insurance Type
140 NULL NULL Integer TABLE Integer
141 NULL NULL Intrastat Jnl Ba TABLE Intrastat Jnl. Batch
142 NULL NULL Intrastat Jnl Li TABLE Intrastat Jnl. Line
143 NULL NULL Intrastat Jnl Te TABLE Intrastat Jnl. Template
144 NULL NULL Inventory Buffer TABLE Inventory Buffer
145 NULL NULL Inventory Postin TABLE Inventory Posting Group
146 NULL NULL Inventory Setup TABLE Inventory Setup
147 NULL NULL Invoice Post Buf TABLE Invoice Post. Buffer
148 NULL NULL Invt Posting Buf TABLE Invt. Posting Buffer
149 NULL NULL Issued Fin Charg TABLE Issued Fin. Charge Memo Header
150 NULL NULL Issued Fin Charg TABLE Issued Fin. Charge Memo Line
151 NULL NULL Issued Reminder TABLE Issued Reminder Header
152 NULL NULL Issued Reminder TABLE Issued Reminder Line
153 NULL NULL Item TABLE Item
154 NULL NULL Item Amount TABLE Item Amount
155 NULL NULL Item Application TABLE Item Application Entry
156 NULL NULL Item Discount Gr TABLE Item Discount Group
157 NULL NULL Item Journal Bat TABLE Item Journal Batch
158 NULL NULL Item Journal Lin TABLE Item Journal Line
159 NULL NULL Item Journal Tem TABLE Item Journal Template
160 NULL NULL Item Ledger Entr TABLE Item Ledger Entry
161 NULL NULL Item Price TABLE Item Price
162 NULL NULL Item Price Chang TABLE Item Price Change
163 NULL NULL Item PurchQtyDis TABLE Item Purch.Qty.Disc.
164 NULL NULL Item Register TABLE Item Register
165 NULL NULL Item Sales Qty D TABLE Item Sales Qty. Disc.
166 NULL NULL Item Translation TABLE Item Translation
167 NULL NULL Item Unit of Mea TABLE Item Unit of Measure
168 NULL NULL Item Variant TABLE Item Variant
169 NULL NULL Item Vendor TABLE Item Vendor
170 NULL NULL Job TABLE Job
171 NULL NULL Job Budget Entry TABLE Job Budget Entry
172 NULL NULL Job Budget Line TABLE Job Budget Line
173 NULL NULL Job Journal Batc TABLE Job Journal Batch
174 NULL NULL Job Journal Line TABLE Job Journal Line
175 NULL NULL Job Journal Quan TABLE Job Journal Quantity
176 NULL NULL Job Journal Temp TABLE Job Journal Template
177 NULL NULL Job Ledger Entry TABLE Job Ledger Entry
178 NULL NULL Job Posting Buff TABLE Job Posting Buffer
179 NULL NULL Job Posting Grou TABLE Job Posting Group
180 NULL NULL Job Register TABLE Job Register
181 NULL NULL Jobs Setup TABLE Jobs Setup
182 NULL NULL Language TABLE Language
183 NULL NULL License Informat TABLE License Information
184 NULL NULL License Permissi TABLE License Permission
185 NULL NULL Line Number Buff TABLE Line Number Buffer
186 NULL NULL Location TABLE Location
187 NULL NULL Main Asset Compo TABLE Main Asset Component
188 NULL NULL Maintenance TABLE Maintenance
189 NULL NULL Maintenance Ledg TABLE Maintenance Ledger Entry
190 NULL NULL Maintenance Regi TABLE Maintenance Registration
191 NULL NULL Market Group Cod TABLE Market Group Code
192 NULL NULL Member Of TABLE Member Of
193 NULL NULL Misc Article TABLE Misc. Article
194 NULL NULL Misc Article Inf TABLE Misc. Article Information
195 NULL NULL Monitor TABLE Monitor
196 NULL NULL No Series TABLE No. Series
197 NULL NULL No Series Line TABLE No. Series Line
198 NULL NULL No Series Relati TABLE No. Series Relationship
199 NULL NULL OLE Control TABLE OLE Control
200 NULL NULL Object TABLE Object
201 NULL NULL Order Address TABLE Order Address
202 NULL NULL Payable Vendor L TABLE Payable Vendor Ledger Entry
203 NULL NULL Payment Method TABLE Payment Method
204 NULL NULL Payment Terms TABLE Payment Terms
205 NULL NULL Performance TABLE Performance
206 NULL NULL Permission TABLE Permission
207 NULL NULL Permission Range TABLE Permission Range
208 NULL NULL Phase TABLE Phase
209 NULL NULL Phys Inventory L TABLE Phys. Inventory Ledger Entry
210 NULL NULL Price Group TABLE Price Group
211 NULL NULL Printer TABLE Printer
212 NULL NULL Printer Selectio TABLE Printer Selection
213 NULL NULL Prod Order Compo TABLE Prod. Order Component
214 NULL NULL Prod Order Line TABLE Prod. Order Line
215 NULL NULL Project TABLE Project
216 NULL NULL Prospect TABLE Prospect
217 NULL NULL Prospect Status TABLE Prospect Status
218 NULL NULL Prospect Trade TABLE Prospect Trade
219 NULL NULL Prospect/Contact TABLE Prospect/Contact Market Group
220 NULL NULL Purch Comment Li TABLE Purch. Comment Line
221 NULL NULL Purch Cr Memo Hd TABLE Purch. Cr. Memo Hdr.
222 NULL NULL Purch Cr Memo Li TABLE Purch. Cr. Memo Line
223 NULL NULL Purch Inv Header TABLE Purch. Inv. Header
224 NULL NULL Purch Inv Line TABLE Purch. Inv. Line
225 NULL NULL Purch Rcpt Heade TABLE Purch. Rcpt. Header
226 NULL NULL Purch Rcpt Line TABLE Purch. Rcpt. Line
227 NULL NULL Purchase Header TABLE Purchase Header
228 NULL NULL Purchase Line TABLE Purchase Line
229 NULL NULL Purchases & Paya TABLE Purchases & Payables Setup
230 NULL NULL Qualification TABLE Qualification
231 NULL NULL Reason Code TABLE Reason Code
232 NULL NULL Relative TABLE Relative
233 NULL NULL Reminder Comment TABLE Reminder Comment Line
234 NULL NULL Reminder Header TABLE Reminder Header
235 NULL NULL Reminder Level TABLE Reminder Level
236 NULL NULL Reminder Line TABLE Reminder Line
237 NULL NULL Reminder Terms TABLE Reminder Terms
238 NULL NULL Reminder Text TABLE Reminder Text
239 NULL NULL Reminder/Fin Cha TABLE Reminder/Fin. Charge Entry
240 NULL NULL Report List TABLE Report List
241 NULL NULL Report Selection TABLE Report Selections
242 NULL NULL Req Wksh Templat TABLE Req. Wksh. Template
243 NULL NULL Requisition Line TABLE Requisition Line
244 NULL NULL Requisition Meth TABLE Requisition Method
245 NULL NULL Requisition Wksh TABLE Requisition Wksh. Name
246 NULL NULL Res Capacity Ent TABLE Res. Capacity Entry
247 NULL NULL Res Journal Batc TABLE Res. Journal Batch
248 NULL NULL Res Journal Line TABLE Res. Journal Line
249 NULL NULL Res Journal Temp TABLE Res. Journal Template
250 NULL NULL Res Ledger Entry TABLE Res. Ledger Entry
251 NULL NULL Reservation Entr TABLE Reservation Entry
252 NULL NULL Reservation Setu TABLE Reservation Setup
253 NULL NULL Resource TABLE Resource
254 NULL NULL Resource Cost TABLE Resource Cost
255 NULL NULL Resource Group TABLE Resource Group
256 NULL NULL Resource Price TABLE Resource Price
257 NULL NULL Resource Price C TABLE Resource Price Change
258 NULL NULL Resource Registe TABLE Resource Register
259 NULL NULL Resources Setup TABLE Resources Setup
260 NULL NULL Rounding Method TABLE Rounding Method
261 NULL NULL Sales & Receivab TABLE Sales & Receivables Setup
262 NULL NULL Sales Comment Li TABLE Sales Comment Line
263 NULL NULL Sales CrMemo Hea TABLE Sales Cr.Memo Header
264 NULL NULL Sales CrMemo Lin TABLE Sales Cr.Memo Line
265 NULL NULL Sales Header TABLE Sales Header
266 NULL NULL Sales Invoice He TABLE Sales Invoice Header
267 NULL NULL Sales Invoice Li TABLE Sales Invoice Line
268 NULL NULL Sales Line TABLE Sales Line
269 NULL NULL Sales Shipment H TABLE Sales Shipment Header
270 NULL NULL Sales Shipment L TABLE Sales Shipment Line
271 NULL NULL Salesperson/Purc TABLE Salesperson/Purchaser
272 NULL NULL Session TABLE Session
273 NULL NULL Setup Checklist TABLE Setup Checklist Comment
274 NULL NULL Setup Checklist TABLE Setup Checklist Line
275 NULL NULL Ship-to Address TABLE Ship-to Address
276 NULL NULL Shipment Method TABLE Shipment Method
277 NULL NULL Shipping Agent TABLE Shipping Agent
278 NULL NULL Source Code TABLE Source Code
279 NULL NULL Source Code Setu TABLE Source Code Setup
280 NULL NULL Standard Text TABLE Standard Text
281 NULL NULL Step TABLE Step
282 NULL NULL System Object TABLE System Object
283 NULL NULL Table Informatio TABLE Table Information
284 NULL NULL Task TABLE Task
285 NULL NULL Tax Area TABLE Tax Area
286 NULL NULL Tax Area Line TABLE Tax Area Line
287 NULL NULL Tax Detail TABLE Tax Detail
288 NULL NULL Tax Group TABLE Tax Group
289 NULL NULL Tax Jurisdiction TABLE Tax Jurisdiction
290 NULL NULL Territory TABLE Territory
291 NULL NULL Trade Code TABLE Trade Code
292 NULL NULL Transaction Natu TABLE Transaction Nature
293 NULL NULL Transaction Spec TABLE Transaction Specification
294 NULL NULL Transport Method TABLE Transport Method
295 NULL NULL Type of Supply TABLE Type of Supply
296 NULL NULL Union TABLE Union
297 NULL NULL Unit of Measure TABLE Unit of Measure
298 NULL NULL Unit of Measure TABLE Unit of Measure Translation
299 NULL NULL User TABLE User
300 NULL NULL User Group TABLE User Group
301 NULL NULL User Setup TABLE User Setup
302 NULL NULL User Time Regist TABLE User Time Register
303 NULL NULL VAT Amount Line TABLE VAT Amount Line
304 NULL NULL VAT Business Pos TABLE VAT Business Posting Group
305 NULL NULL VAT Entry TABLE VAT Entry
306 NULL NULL VAT Posting Setu TABLE VAT Posting Setup
307 NULL NULL VAT Product Post TABLE VAT Product Posting Group
308 NULL NULL VAT Statement Li TABLE VAT Statement Line
309 NULL NULL VAT Statement Na TABLE VAT Statement Name
310 NULL NULL VAT Statement Te TABLE VAT Statement Template
311 NULL NULL VAT Tolerance TABLE VAT Tolerance
312 NULL NULL Vendor TABLE Vendor
313 NULL NULL Vendor Amount TABLE Vendor Amount
314 NULL NULL Vendor Bank Acco TABLE Vendor Bank Account
315 NULL NULL Vendor Invoice D TABLE Vendor Invoice Disc.
316 NULL NULL Vendor Ledger En TABLE Vendor Ledger Entry
317 NULL NULL Vendor Posting G TABLE Vendor Posting Group
318 NULL NULL Windows Language TABLE Windows Language
319 NULL NULL Work Type TABLE Work Type
SQLTables(hstmt,NULL,0,NULL,0,NULL,0,NULL,0)

This may be modified in ODBC.INI or with the connection parameters:

  Resulting connection string
1 DSN=SWNav32s,Fname=0,Owner=1,Qualifier=0,Ftext=3,,FNAME=4,UPPER=0,BASIS=d:\DEMODAN\,DMF=d:
SQLDriverConnect(henv,NULL,
"DSN=SWNav32s;Fname=0;Owner=1;Qualifier=0;Ftext=3",
SQL_NTS,constr,256,&len,SQL_DRIVER_COMPLETE)

  TABLE_QUALIFIER TABLE_OWNER TABLE_NAME TABLE_TYPE REMARKS
1 NULL SSV SY SYSTEM TABLE SY Systemfields
2 NULL Nav32 AA TABLE AA Payment Terms Payment Terms
3 NULL Nav32 AB TABLE AB Currency Currency
4 NULL Nav32 AC TABLE AC Finance Charge Terms Finance
5 NULL Nav32 AD TABLE AD Price Group Price Group
6 NULL Nav32 AE TABLE AE Standard Text Standard Text
7 NULL Nav32 AF TABLE AF Language Language
8 NULL Nav32 AG TABLE AG Country Country
9 NULL Nav32 AH TABLE AH Shipment Method Shipment Meth
10 NULL Nav32 AI TABLE AI Department Department
11 NULL Nav32 AJ TABLE AJ Project Project
12 NULL Nav32 AK TABLE AK Salesperson/Purchaser Salespe
13 NULL Nav32 AL TABLE AL Location Location
14 NULL Nav32 AM TABLE AM G/L Account G/L Account
15 NULL Nav32 AN TABLE AN G/L Entry G/L Entry
16 NULL Nav32 AO TABLE AO Customer Customer
17 NULL Nav32 AP TABLE AP Cust. Invoice Disc. Cust. Inv
18 NULL Nav32 AQ TABLE AQ Cust./Item Discount Cust./Ite
19 NULL Nav32 AR TABLE AR Cust. Ledger Entry Cust. Ledg
20 NULL Nav32 AS TABLE AS Vendor Vendor
21 NULL Nav32 AT TABLE AT Vendor Invoice Disc. Vendor I
22 NULL Nav32 AU TABLE AU Vendor Ledger Entry Vendor Le
23 NULL Nav32 AV TABLE AV Item Item
24 NULL Nav32 AW TABLE AW Item Price Item Price
25 NULL Nav32 AX TABLE AX Item Sales Qty. Disc. Item Sa
26 NULL Nav32 AY TABLE AY Item Translation Item Transla
27 NULL Nav32 AZ TABLE AZ Item Ledger Entry Item Ledger
28 NULL Nav32 BA TABLE BA Sales Header Sales Header
29 NULL Nav32 BB TABLE BB Sales Line Sales Line
30 NULL Nav32 BC TABLE BC Purchase Header Purchase Head
31 NULL Nav32 BD TABLE BD Purchase Line Purchase Line
32 NULL Nav32 BE TABLE BE Item Price Change Item Price
33 NULL Nav32 BF TABLE BF Rounding Method Rounding Meth
34 NULL Nav32 BG TABLE BG Purch. Comment Line Purch. Co
35 NULL Nav32 BH TABLE BH Sales Comment Line Sales Comm
36 NULL Nav32 BI TABLE BI G/L Register G/L Register
37 NULL Nav32 BJ TABLE BJ Item Register Item Register
38 NULL Nav32 BK TABLE BK Invt. Posting Buffer Invt. Po
39 NULL Nav32 BL TABLE BL Invoice Post. Buffer Invoice
40 NULL Nav32 BM TABLE BM Accounting Period Accounting
41 NULL Nav32 BN TABLE BN User Time Register User Time
42 NULL Nav32 BO TABLE BO Report Selections Report Sele
43 NULL Nav32 BP TABLE BP Printer Selection Printer Sel
44 NULL Nav32 BQ TABLE BQ Company Information Company I
45 NULL Nav32 BR TABLE BR Gen. Journal Template Gen. Jo
46 NULL Nav32 BS TABLE BS Gen. Journal Line Gen. Journa
47 NULL Nav32 BT TABLE BT Item Journal Template Item Jo
48 NULL Nav32 BU TABLE BU Item Journal Line Item Journa
49 NULL Nav32 BV TABLE BV Acc. Schedule Name Acc. Sched
50 NULL Nav32 BW TABLE BW Acc. Schedule Line Acc. Sched
51 NULL Nav32 BX TABLE BX Exch. Rate Adjmt. Reg. Exch.
52 NULL Nav32 BY TABLE BY Date Compr. Register Date Com
53 NULL Nav32 BZ TABLE BZ BOM Journal Template BOM Jour
54 NULL Nav32 CA TABLE CA BOM Journal Line BOM Journal
55 NULL Nav32 CB TABLE CB BOM Component BOM Component
56 NULL Nav32 CC TABLE CC User Setup User Setup
57 NULL Nav32 CD TABLE CD Customer Posting Group Custom
58 NULL Nav32 CE TABLE CE Vendor Posting Group Vendor P
59 NULL Nav32 CF TABLE CF Inventory Posting Group Inven
60 NULL Nav32 CG TABLE CG G/L Budget Name G/L Budget Na
61 NULL Nav32 CH TABLE CH G/L Budget Entry G/L Budget E
62 NULL Nav32 CI TABLE CI Comment Line Comment Line
63 NULL Nav32 CJ TABLE CJ General Ledger Setup General
64 NULL Nav32 CK TABLE CK Item Vendor Item Vendor
65 NULL Nav32 CL TABLE CL Item Purch.Qty.Disc. Item Pur
66 NULL Nav32 CM TABLE CM Sales Shipment Header Sales S
67 NULL Nav32 CN TABLE CN Sales Shipment Line Sales Shi
68 NULL Nav32 CO TABLE CO Sales Invoice Header Sales In
69 NULL Nav32 CP TABLE CP Sales Invoice Line Sales Invo
70 NULL Nav32 CQ TABLE CQ Sales Cr.Memo Header Sales Cr
71 NULL Nav32 CR TABLE CR Sales Cr.Memo Line Sales Cr.M
72 NULL Nav32 CS TABLE CS Purch. Rcpt. Header Purch. Rc
73 NULL Nav32 CT TABLE CT Purch. Rcpt. Line Purch. Rcpt
74 NULL Nav32 CU TABLE CU Purch. Inv. Header Purch. Inv
75 NULL Nav32 CV TABLE CV Purch. Inv. Line Purch. Inv.
76 NULL Nav32 CW TABLE CW Purch. Cr. Memo Hdr. Purch. C
77 NULL Nav32 CX TABLE CX Purch. Cr. Memo Line Purch. C
78 NULL Nav32 CY TABLE CY Resource Group Resource Group
79 NULL Nav32 CZ TABLE CZ Resource Resource
80 NULL Nav32 DA TABLE DA Res. Capacity Entry Res. Capa
81 NULL Nav32 DB TABLE DB Phase Phase
82 NULL Nav32 DC TABLE DC Task Task
83 NULL Nav32 DD TABLE DD Step Step
84 NULL Nav32 DE TABLE DE Job Job
85 NULL Nav32 DF TABLE DF Job Budget Line Job Budget Li
86 NULL Nav32 DG TABLE DG Job Ledger Entry Job Ledger E
87 NULL Nav32 DH TABLE DH Work Type Work Type
88 NULL Nav32 DI TABLE DI Resource Price Resource Price
89 NULL Nav32 DJ TABLE DJ Resource Cost Resource Cost
90 NULL Nav32 DK TABLE DK Res. Ledger Entry Res. Ledger
91 NULL Nav32 DL TABLE DL Unit of Measure Unit of Measu
92 NULL Nav32 DM TABLE DM Res. Journal Template Res. Jo
93 NULL Nav32 DN TABLE DN Res. Journal Line Res. Journa
94 NULL Nav32 DO TABLE DO Job Posting Group Job Posting
95 NULL Nav32 DP TABLE DP Job Journal Template Job Jour
96 NULL Nav32 DQ TABLE DQ Job Journal Line Job Journal
97 NULL Nav32 DR TABLE DR Job Budget Entry Job Budget E
98 NULL Nav32 DS TABLE DS Job Posting Buffer Job Postin
99 NULL Nav32 DT TABLE DT Business Unit Business Unit
100 NULL Nav32 DU TABLE DU Gen. Jnl. Allocation Gen. Jnl
101 NULL Nav32 DV TABLE DV Ship-to Address Ship-to Addre
102 NULL Nav32 DW TABLE DW Drop Shpt. Post. Buffer Drop
103 NULL Nav32 DX TABLE DX Order Address Order Address
104 NULL Nav32 DZ TABLE DZ Source Code Source Code
105 NULL Nav32 EA TABLE EA Reason Code Reason Code
106 NULL Nav32 EB TABLE EB Gen. Journal Batch Gen. Journ
107 NULL Nav32 EC TABLE EC Item Journal Batch Item Journ
108 NULL Nav32 ED TABLE ED BOM Journal Batch BOM Journal
109 NULL Nav32 EE TABLE EE Res. Journal Batch Res. Journ
110 NULL Nav32 EF TABLE EF Job Journal Batch Job Journal
111 NULL Nav32 EG TABLE EG BOM Ledger Entry BOM Ledger E
112 NULL Nav32 EH TABLE EH BOM Register BOM Register
113 NULL Nav32 EI TABLE EI Resource Register Resource Re
114 NULL Nav32 EJ TABLE EJ Job Register Job Register
115 NULL Nav32 EK TABLE EK Source Code Setup Source Code
116 NULL Nav32 EL TABLE EL Report List Report List
117 NULL Nav32 EM TABLE EM Req. Wksh. Template Req. Wksh
118 NULL Nav32 EN TABLE EN Requisition Wksh. Name Requis
119 NULL Nav32 EO TABLE EO Requisition Line Requisition
120 NULL Nav32 EP TABLE EP Gen. Business Posting Group G
121 NULL Nav32 EQ TABLE EQ Gen. Product Posting Group Ge
122 NULL Nav32 ER TABLE ER General Posting Setup General
123 NULL Nav32 ES TABLE ES VAT Entry VAT Entry
124 NULL Nav32 ET TABLE ET VAT Statement Template VAT St
125 NULL Nav32 EU TABLE EU VAT Statement Line VAT Statem
126 NULL Nav32 EV TABLE EV VAT Statement Name VAT Statem
127 NULL Nav32 EW TABLE EW Transaction Nature Transactio
128 NULL Nav32 EX TABLE EX Transport Method Transport Me
129 NULL Nav32 EY TABLE EY Commodity Code Commodity Code
130 NULL Nav32 EZ TABLE EZ Intrastat Jnl. Template Intra
131 NULL Nav32 FA TABLE FA Intrastat Jnl. Batch Intrasta
132 NULL Nav32 FB TABLE FB Intrastat Jnl. Line Intrastat
133 NULL Nav32 FC TABLE FC Document Entry Document Entry
134 NULL Nav32 FD TABLE FD Customer Amount Customer Amou
135 NULL Nav32 FE TABLE FE Vendor Amount Vendor Amount
136 NULL Nav32 FF TABLE FF Item Amount Item Amount
137 NULL Nav32 FG TABLE FG G/L Account Net Change G/L Ac
138 NULL Nav32 FH TABLE FH Bank Account Bank Account
139 NULL Nav32 FI TABLE FI Bank Account Ledger Entry Ban
140 NULL Nav32 FJ TABLE FJ Cheque Ledger Entry Cheque Le
141 NULL Nav32 FK TABLE FK Bank Acc. Reconciliation Bank
142 NULL Nav32 FL TABLE FL Bank Acc. Reconciliation Line
143 NULL Nav32 FM TABLE FM Bank Account Statement Bank A
144 NULL Nav32 FN TABLE FN Bank Account Statement Line B
145 NULL Nav32 FO TABLE FO Bank Account Posting Group Ba
146 NULL Nav32 FP TABLE FP Job Journal Quantity Job Jour
147 NULL Nav32 FQ TABLE FQ Extended Text Header Extended
148 NULL Nav32 FR TABLE FR Extended Text Line Extended T
149 NULL Nav32 FS TABLE FS Phys. Inventory Ledger Entry
150 NULL Nav32 FT TABLE FT Entry/Exit Point Entry/Exit P
151 NULL Nav32 FU TABLE FU Line Number Buffer Line Numbe
152 NULL Nav32 FV TABLE FV Area Area
153 NULL Nav32 FW TABLE FW Transaction Specification Tra
154 NULL Nav32 FX TABLE FX Territory Territory
155 NULL Nav32 FY TABLE FY Customer Bank Account Custome
156 NULL Nav32 FZ TABLE FZ Vendor Bank Account Vendor Ba
157 NULL Nav32 GA TABLE GA Payment Method Payment Method
158 NULL Nav32 GB TABLE GB VAT Amount Line VAT Amount Li
159 NULL Nav32 GC TABLE GC Shipping Agent Shipping Agent
160 NULL Nav32 GD TABLE GD Reminder Terms Reminder Terms
161 NULL Nav32 GE TABLE GE Reminder Level Reminder Level
162 NULL Nav32 GF TABLE GF Reminder Text Reminder Text
163 NULL Nav32 GG TABLE GG Reminder Header Reminder Head
164 NULL Nav32 GH TABLE GH Reminder Line Reminder Line
165 NULL Nav32 GI TABLE GI Issued Reminder Header Issued
166 NULL Nav32 GJ TABLE GJ Issued Reminder Line Issued R
167 NULL Nav32 GK TABLE GK Reminder Comment Line Reminde
168 NULL Nav32 GL TABLE GL Reminder/Fin. Charge Entry Re
169 NULL Nav32 GM TABLE GM Finance Charge Text Finance C
170 NULL Nav32 GN TABLE GN Finance Charge Memo Header Fi
171 NULL Nav32 GO TABLE GO Finance Charge Memo Line Fina
172 NULL Nav32 GP TABLE GP Issued Fin. Charge Memo Heade
173 NULL Nav32 GQ TABLE GQ Issued Fin. Charge Memo Line
174 NULL Nav32 GR TABLE GR Fin. Charge Comment Line Fin.
175 NULL Nav32 GS TABLE GS Inventory Buffer Inventory Bu
176 NULL Nav32 GT TABLE GT No. Series No. Series
177 NULL Nav32 GU TABLE GU No. Series Line No. Series Li
178 NULL Nav32 GV TABLE GV No. Series Relationship No. S
179 NULL Nav32 GW TABLE GW Sales & Receivables Setup Sal
180 NULL Nav32 GX TABLE GX Purchases & Payables Setup Pu
181 NULL Nav32 GY TABLE GY Inventory Setup Inventory Set
182 NULL Nav32 GZ TABLE GZ Resources Setup Resources Set
183 NULL Nav32 HA TABLE HA Jobs Setup Jobs Setup
184 NULL Nav32 HB TABLE HB Payable Vendor Ledger Entry P
185 NULL Nav32 HC TABLE HC Tax Area Tax Area
186 NULL Nav32 HD TABLE HD Tax Area Line Tax Area Line
187 NULL Nav32 HE TABLE HE Tax Jurisdiction Tax Jurisdic
188 NULL Nav32 HF TABLE HF Tax Group Tax Group
189 NULL Nav32 HG TABLE HG Tax Detail Tax Detail
190 NULL Nav32 HH TABLE HH VAT Business Posting Group VA
191 NULL Nav32 HI TABLE HI VAT Product Posting Group VAT
192 NULL Nav32 HJ TABLE HJ VAT Posting Setup VAT Posting
193 NULL Nav32 HK TABLE HK Currency for Fin. Charge Term
194 NULL Nav32 HL TABLE HL Currency for Reminder Level C
195 NULL Nav32 HM TABLE HM Currency Exchange Rate Curren
196 NULL Nav32 HN TABLE HN Adjust Exchange Rate Buffer A
197 NULL Nav32 HO TABLE HO Currency Total Buffer Currenc
198 NULL Nav32 HP TABLE HP Acc. Sched. Column Layout Nam
199 NULL Nav32 HQ TABLE HQ Acc. Sched. Column Acc. Sched
200 NULL Nav32 HR TABLE HR Resource Price Change Resourc
201 NULL Nav32 HS TABLE HS Reservation Setup Reservation
202 NULL Nav32 HT TABLE HT Reservation Entry Reservation
203 NULL Nav32 HU TABLE HU Entry Summary Entry Summary
204 NULL Nav32 HV TABLE HV Item Application Entry Item A
205 NULL Nav32 HW TABLE HW Customer Discount Group Custo
206 NULL Nav32 HX TABLE HX Item Discount Group Item Disc
207 NULL Nav32 HY TABLE HY Acc. Sched. Cell Value Acc. S
208 NULL Nav32 HZ TABLE HZ Gains and Losses Post. Buffer
209 NULL Nav32 IA TABLE IA Setup Checklist Line Setup Ch
210 NULL Nav32 IB TABLE IB Setup Checklist Comment Setup
211 NULL Nav32 IC TABLE IC Application Area Line Applica
212 NULL Nav32 ID TABLE ID Close Income Statement Buffer
213 NULL Nav32 IE TABLE IE Prospect Prospect
214 NULL Nav32 IF TABLE IF Prospect Status Prospect Stat
215 NULL Nav32 IG TABLE IG Contact Contact
216 NULL Nav32 IH TABLE IH Contact Job Responsibility Co
217 NULL Nav32 II TABLE II Campaign Campaign
218 NULL Nav32 IJ TABLE IJ Campaign Line Campaign Line
219 NULL Nav32 IK TABLE IK Cont. Mgt. Comment Line Cont.
220 NULL Nav32 IL TABLE IL Contact Management Setup Cont
221 NULL Nav32 IM TABLE IM Activity Activity
222 NULL Nav32 IN TABLE IN Activity Type Activity Type
223 NULL Nav32 IO TABLE IO Prospect/Contact Market Group
224 NULL Nav32 IP TABLE IP Market Group Code Market Grou
225 NULL Nav32 IQ TABLE IQ Prospect Trade Prospect Trade
226 NULL Nav32 IR TABLE IR Trade Code Trade Code
227 NULL Nav32 IS TABLE IS Employee Employee
228 NULL Nav32 IT TABLE IT Alternative Address Alternati
229 NULL Nav32 IU TABLE IU Qualification Qualification
230 NULL Nav32 IV TABLE IV Employee Qualification Employ
231 NULL Nav32 IW TABLE IW Relative Relative
232 NULL Nav32 IX TABLE IX Employee Relative Employee Re
233 NULL Nav32 IY TABLE IY Cause of Absence Cause of Abs
234 NULL Nav32 IZ TABLE IZ Employee Absence Employee Abs
235 NULL Nav32 JA TABLE JA Human Resource Comment Line H
236 NULL Nav32 JB TABLE JB Union Union
237 NULL Nav32 JC TABLE JC Cause of Inactivity Cause of
238 NULL Nav32 JD TABLE JD Employment Contract Employmen
239 NULL Nav32 JE TABLE JE Employee Statistics Group Emp
240 NULL Nav32 JF TABLE JF Misc. Article Misc. Article
241 NULL Nav32 JG TABLE JG Misc. Article Information Mis
242 NULL Nav32 JH TABLE JH Confidential Confidential
243 NULL Nav32 JI TABLE JI Confidential Information Conf
244 NULL Nav32 JJ TABLE JJ Grounds for Termination Groun
245 NULL Nav32 JK TABLE JK Human Resources Setup Human R
246 NULL Nav32 JL TABLE JL HR Confidential Comment Line
247 NULL Nav32 JM TABLE JM Bin Bin
248 NULL Nav32 JN TABLE JN Item Variant Item Variant
249 NULL Nav32 JO TABLE JO Unit of Measure Translation U
250 NULL Nav32 JP TABLE JP Item Unit of Measure Item Uni
251 NULL Nav32 JQ TABLE JQ Prod. Order Line Prod. Order
252 NULL Nav32 JR TABLE JR Prod. Order Component Prod. O
253 NULL Nav32 JS TABLE JS Requisition Method Requisitio
254 NULL Nav32 JT TABLE JT Fixed Asset Fixed Asset
255 NULL Nav32 JU TABLE JU FA Ledger Entry FA Ledger Ent
256 NULL Nav32 JV TABLE JV FA Setup FA Setup
257 NULL Nav32 JW TABLE JW FA Posting Type Setup FA Post
258 NULL Nav32 JX TABLE JX FA Journal Setup FA Journal S
259 NULL Nav32 JY TABLE JY FA Posting Group FA Posting G
260 NULL Nav32 JZ TABLE JZ FA Class FA Class
261 NULL Nav32 KA TABLE KA FA Subclass FA Subclass
262 NULL Nav32 KB TABLE KB FA Location FA Location
263 NULL Nav32 KC TABLE KC Depreciation Book Depreciatio
264 NULL Nav32 KD TABLE KD FA Depreciation Book FA Depre
265 NULL Nav32 KE TABLE KE FA Allocation FA Allocation
266 NULL Nav32 KF TABLE KF Maintenance Registration Main
267 NULL Nav32 KG TABLE KG FA Register FA Register
268 NULL Nav32 KH TABLE KH FA Journal Template FA Journa
269 NULL Nav32 KI TABLE KI FA Journal Batch FA Journal B
270 NULL Nav32 KJ TABLE KJ FA Journal Line FA Journal Li
271 NULL Nav32 KK TABLE KK FA Reclass. Journal Template
272 NULL Nav32 KL TABLE KL FA Reclass. Journal Batch FA
273 NULL Nav32 KM TABLE KM FA Reclass. Journal Line FA R
274 NULL Nav32 KN TABLE KN Maintenance Ledger Entry Main
275 NULL Nav32 KO TABLE KO Maintenance Maintenance
276 NULL Nav32 KP TABLE KP Insurance Insurance
277 NULL Nav32 KQ TABLE KQ Ins. Coverage Ledger Entry In
278 NULL Nav32 KR TABLE KR Insurance Type Insurance Type
279 NULL Nav32 KS TABLE KS Insurance Journal Template In
280 NULL Nav32 KT TABLE KT Insurance Journal Batch Insur
281 NULL Nav32 KU TABLE KU Insurance Journal Line Insura
282 NULL Nav32 KV TABLE KV Insurance Register Insurance
283 NULL Nav32 KW TABLE KW FA G/L Posting Buffer FA G/L
284 NULL Nav32 KX TABLE KX Main Asset Component Main Ass
285 NULL Nav32 KY TABLE KY FA Buffer Projection FA Buffe
286 NULL Nav32 KZ TABLE KZ Depreciation Table Header Dep
287 NULL Nav32 LA TABLE LA Depreciation Table Line Depre
288 NULL Nav32 LB TABLE LB FA Posting Type FA Posting Ty
289 NULL Nav32 LC TABLE LC FA Date Type FA Date Type
290 NULL Nav32 LD TABLE LD Depreciation Table Buffer Dep
291 NULL Nav32 LE TABLE LE FA Matrix Posting Type FA Mat
292 NULL Nav32 LF TABLE LF Type of Supply Type of Supply
293 NULL Nav32 LG TABLE LG VAT Tolerance VAT Tolerance
294 NULL Nav32 LH TABLE LH Object Object
295 NULL Nav32 LI TABLE LI User User
296 NULL Nav32 LJ TABLE LJ Member Of Member Of
297 NULL Nav32 LK TABLE LK User Group User Group
298 NULL Nav32 LL TABLE LL Permission Permission
299 NULL Nav32 LM TABLE LM Company Company
300 NULL Nav32 LN TABLE LN Date Date
301 NULL Nav32 LO TABLE LO Session Session
302 NULL Nav32 LP TABLE LP Database File Database File
303 NULL Nav32 LQ TABLE LQ Drive Drive
304 NULL Nav32 LR TABLE LR File File
305 NULL Nav32 LS TABLE LS Monitor Monitor
306 NULL Nav32 LT TABLE LT Integer Integer
307 NULL Nav32 LU TABLE LU Table Information Table Infor
308 NULL Nav32 LV TABLE LV System Object System Object
309 NULL Nav32 LW TABLE LW Performance Performance
310 NULL Nav32 LX TABLE LX AllObj AllObj
311 NULL Nav32 LY TABLE LY Printer Printer
312 NULL Nav32 LZ TABLE LZ License Information License I
313 NULL Nav32 MA TABLE MA Field Field
314 NULL Nav32 MB TABLE MB OLE Control OLE Control
315 NULL Nav32 MC TABLE MC License Permission License Pe
316 NULL Nav32 MD TABLE MD Permission Range Permission R
317 NULL Nav32 ME TABLE ME Windows Language Windows Lang
318 NULL Nav32 MF TABLE MF Automation Servers Automation
319 NULL Nav32 MG TABLE MG Database Key Groups Database
SQLTables(hstmt,NULL,0,NULL,0,NULL,0,NULL,0)

The input parameters for SQLTables may use wildcards as for LIKE:

  TABLE_QUALIFIER TABLE_OWNER TABLE_NAME TABLE_TYPE REMARKS
1 NULL NULL Item Sales Qty D TABLE Item Sales Qty. Disc.
2 NULL NULL Sales & Receivab TABLE Sales & Receivables Setup
3 NULL NULL Sales Comment Li TABLE Sales Comment Line
4 NULL NULL Sales CrMemo Hea TABLE Sales Cr.Memo Header
5 NULL NULL Sales CrMemo Lin TABLE Sales Cr.Memo Line
6 NULL NULL Sales Header TABLE Sales Header
7 NULL NULL Sales Invoice He TABLE Sales Invoice Header
8 NULL NULL Sales Invoice Li TABLE Sales Invoice Line
9 NULL NULL Sales Line TABLE Sales Line
10 NULL NULL Sales Shipment H TABLE Sales Shipment Header
11 NULL NULL Sales Shipment L TABLE Sales Shipment Line
12 NULL NULL Salesperson/Purc TABLE Salesperson/Purchaser
SQLTables(hstmt,NULL,0,NULL,0,"%Sale%",SQL_NTS,NULL,0)

If just the qualifier is specified with % a list of valid qualifiers is returned:

  TABLE_QUALIFIER TABLE_OWNER TABLE_NAME TABLE_TYPE REMARKS
1   NULL NULL NULL NULL
SQLTables(hstmt,"%",SQL_NTS,"",0,"",0,NULL,0)

If just the owner is specified with % a list of all valid owners is returned:

  TABLE_QUALIFIER TABLE_OWNER TABLE_NAME TABLE_TYPE REMARKS
1 NULL   NULL NULL NULL
SQLTables(hstmt,"",0,"%",SQL_NTS,"",0,NULL,0)

If just the tabletype is specified with % a list of valid tabletypes is returned:

  TABLE_QUALIFIER TABLE_OWNER TABLE_NAME TABLE_TYPE REMARKS
1 NULL NULL NULL SYSTEM TABLE NULL
2 NULL NULL NULL TABLE NULL
3 NULL NULL NULL TEMP NULL
4 NULL NULL NULL VIEW NULL
SQLTables(hstmt,"",0,"",0,"",0,"%",SQL_NTS)

14. Parameters

By use of parameters in a SQL statement (?) the same select may be used for different values. SQLBindParameter assigns values for all ? in the statement.

SQLBindParameter(hstmt,1,1,SQL_C_CHAR,SQL_VARCHAR,20,0,"70000",20,&SQL_NTS) SQLBindParameter(hstmt,2,1,SQL_C_CHAR,SQL_VARCHAR,20,0,"70100",20,&SQL_NTS)

  No_ Description
1 70000 Side Panel
2 70001 Base
3 70002 Top Panel
4 70003 Rear Panel
5 70010 Wooden Door
6 70011 Glass Door
7 70040 Drawer
8 70041 Shelf
9 70060 Mounting
10 70100 Paint, black
SELECT No_, Description
FROM Item
WHERE No_ >= ? AND No_ <= ?

The binding can be done before or after the statement is prepared. The number of parameters may be retrieved using:

  Number of parameters
1 2
SQLNumParams(hstmt,¶ms)

And a description of the parameter types may be optained by:

  Type Precision Scale Nullable
1 12 20 0 0
2 12 20 0 0
SQLDescribeParam(hstmt,*,name,256,&len,&type,&precision,&scale,&nullable)

15. Parameters - Data at execution.

Parameters can be bound again with other options:

SQLBindParameter(hstmt,1,1,SQL_C_CHAR,SQL_VARCHAR,1,0,1,20,SQL_DATA_AT_EXEC)

The SQL_DATA_AT_EXEC causes the execution of the statement to return SQL_NEED DATA:

ERROR:SQL_NEED_DATA SELECT No_, Description

FROM Item
WHERE No_ <= ?

Whereafter these are transferred by repeated calls to ParamData and Putdata:

  Parameter number
1 SQL_NEED_DATA: 1
SQLParamData(hstmt,&nr)

Query executed - No results returned.

SQLPutData(hstmt,"70000",SQL_NTS);

  No_ Description
1 70000 Side Panel
SQLParamData(hstmt,&nr)

Unless this procedure is cancelled with SQL_CANCEL:

Query executed - No results returned.

SQLCancel(hstmt)

The parameters for a statement remains active until the statement is dropped or the parameters removed with:

Query executed - No results returned.

SQLFreeStmt(hstmt,SQL_RESET_PARAMS)

16. Options

The following CONNECT options is used: If SQL_ACCESS_MODE is SQL_MODE_READ_ONLY no update is possible.

  Name Value Description
1 SQL_ACCESS_MODE 0 SQL_MODE_READ_WRITE
2 SQL_AUTOCOMMIT 1 SQL_AUTOCOMMIT_ON
3 SQL_CURRENT_QUALIFIER    
4 SQL_LOGIN_TIMEOUT 15  
5 SQL_ODBC_CURSORS 2 SQL_CUR_USE_DRIVER
6 SQL_OPT_TRACE 0 SQL_OPT_TRACE_OFF
7 SQL_OPT_TRACEFILE \SQL.LOG  
8 SQL_PACKET_SIZE 1024  
9 SQL_QUIET_MODE 0  
10 SQL_TRANSLATE_DLL    
11 SQL_TRANSLATE_OPTION 0  
12 SQL_TXN_ISOLATION 0  
SQLGetConnectOption(hstmt,*,option)

The following is returned as defult STATEMENT options:

  Name Value Description
1 SQL_ASYNC_ENABLE 0 SQL_ASYNC_ENABLE_OFF
2 SQL_BIND_TYPE 0 SQL_BIND_BY_COLUMN
3 SQL_CONCURRENCY 1 SQL_CONCUR_READ_ONLY
4 SQL_CURSOR_TYPE 0 SQL_CURSOR_FORWARD_ONLY
5 SQL_KEYSET_SIZE 0  
6 SQL_MAX_LENGTH 0  
7 SQL_MAX_ROWS 0  
8 SQL_NOSCAN 0 SQL_NOSCAN_OFF
9 SQL_QUERY_TIMEOUT 0  
10 SQL_RETRIEVE_DATA 1 SQL_RD_ON
11 SQL_ROWSET_SIZE 1  
12 SQL_SIMULATE_CURSOR 0 SQL_SC_NON_UNIQUE
13 SQL_USE_BOOKMARKS 0 SQL_UB_OFF
14 SQL_GET_BOOKMARK 0 * Invalid cursor state
15 SQL_ROW_NUMBER 0 * Invalid cursor state
SQLGetStmtOption(hstmt,*,option)

If SQL_ASYNC_ENABLE is SQL_ASYNC_ON, SQLFetch may return SQL_STILL_EXECUTING if more than 1000 records is read during the fetch operation. Below this count is reduced to 10 by the statement option 1000.

Query executed - No results returned.

SQLSetStmtOption(hstmt,SQL_ASYNC_ENABLE,SQL_ASYNC_ENABLE_ON) Query executed - No results returned.
SQLSetStmtOption(hstmt,1000,10)

  No_ Description
1 70000 Side Panel
2 70001 Base
3 70002 Top Panel
4 70003 Rear Panel
5 70010 Wooden Door
6 70011 Glass Door
7 70040 Drawer
8 70041 Shelf
9 70060 Mounting
10 70100 Paint, black
11 80100 Printing Paper
  2 * SQL_STILL_EXECUTING  
SELECT No_, Description
FROM Item
WHERE (No_ >= 70000 AND No_ <= 70100) OR No_ = 80100

If SQL_MAX_ROWS is set a SELECT will try to not exeed this maximum.

Query executed - No results returned.

SQLSetStmtOption(hstmt,SQL_MAX_ROWS,3)

  No_ Description
1 70000 Side Panel
2 70001 Base
3 70002 Top Panel
SELECT No_, Description
FROM Item

SQL_QUERY_TIMEOUT detemines maximum number of seconds for executing a query

Query executed - No results returned.

SQLSetStmtOption(hstmt,SQL_QUERY_TIMEOUT,1)

  No_ Name Search Name Name 2 Address Address 2 City
1 10000 London Postmaster LONDON POSTMASTER   10 North Lake Avenue   London
2 10000 London Postmaster LONDON POSTMASTER   10 North Lake Avenue   London
3 10000 London Postmaster LONDON POSTMASTER   10 North Lake Avenue   London
Query timeout.              
SELECT *
FROM Vendor, 'Sales Header'
WHERE 'Sales Header'.'Order Date' > { d '2001-01-21' }

17. Functions

SQLGetfunctions returns the following values:

  Level Supported NOT Supported
1 Core ALL  
2 Level 1 ALL  
3 Level 2    
4 Level 2    
5 Level 2 (DM)    
6 Level 2    
7 Level 2    
8 Level 2    
9 Level 2    
10 Level 2    
11 Level 2    
12 Level 2    
13 Level 2    
14 Level 2    
15 Level 2    
16 Level 2    
17 Level 2    
18 Level 2    
19 Level 2 (DM)    
20 Level 2    
SQLGetFunctions(hstmt,SQL_API_ALL_FUNCTIONS,array)

18. Option Fields

The Navision Financials option fields is by standard handled as numeric fields. Futhermore, the actual text may be retrieved using the function

OCODE(xxxx)

where xxxx is the field name.

  No_ Description Price/ EXPR-1
1 70000 Side Panel 0 Profit=Price-Cost
2 70001 Base 0 Profit=Price-Cost
3 70002 Top Panel 0 Profit=Price-Cost
4 70003 Rear Panel 0 Profit=Price-Cost
5 70010 Wooden Door 0 Profit=Price-Cost
6 70011 Glass Door 0 Profit=Price-Cost
7 70040 Drawer 0 Profit=Price-Cost
8 70041 Shelf 0 Profit=Price-Cost
9 70060 Mounting 0 Profit=Price-Cost
10 70100 Paint, black 0 Profit=Price-Cost
11 70101 Paint, yellow 0 Profit=Price-Cost
12 70102 Paint, blue 0 Profit=Price-Cost
13 70103 Paint, red 0 Profit=Price-Cost
14 70104 Paint, green 0 Profit=Price-Cost
15 70200 Hinge 0 Profit=Price-Cost
16 70201 Doorknob 0 Profit=Price-Cost
17 80100 Printing Paper 0 Profit=Price-Cost
18 1896-S ATHENS Desk 0 Profit=Price-Cost
19 1900-S PARIS Guest Chair, black 0 Profit=Price-Cost
20 1906-S ATHENS Mobile Pedestal 0 Profit=Price-Cost
21 1908-S LONDON Swivel Chair, blue 0 Profit=Price-Cost
22 1920-S ANTWERP Conference Table 0 Profit=Price-Cost
23 1924-W CHAMONIX Base Storage Unit 0 Profit=Price-Cost
24 1928-S AMSTERDAM Lamp 0 Profit=Price-Cost
25 1928-W ST.MORITZ Storage Unit/Drawers 0 Profit=Price-Cost
26 1936-S BERLIN Guest Chair, yellow 0 Profit=Price-Cost
27 1952-W OSLO Storage Unit/Shelf 0 Profit=Price-Cost
28 1960-S ROME Guest Chair, green 0 Profit=Price-Cost
29 1964-S TOKYO Guest Chair, blue 0 Profit=Price-Cost
30 1964-W INNSBRUCK Storage Unit/G.Door 0 Profit=Price-Cost
31 1968-S MEXICO Swivel Chair, black 0 Profit=Price-Cost
32 1968-W GRENOBLE Whiteboard, red 0 Profit=Price-Cost
33 1972-S MUNICH Swivel Chair, yellow 0 Profit=Price-Cost
34 1972-W SAPPORO Whiteboard, black 0 Profit=Price-Cost
35 1976-W INNSBRUCK Storage Unit/W.Door 0 Profit=Price-Cost
36 1980-S MOSCOW Swivel Chair, red 0 Profit=Price-Cost
37 1984-W SARAJEVO Whiteboard, blue 0 Profit=Price-Cost
38 1988-S SEOUL Guest Chair, red 0 Profit=Price-Cost
39 1988-W CALGARY Whiteboard, yellow 0 Profit=Price-Cost
40 1992-W ALBERTVILLE Whiteboard, green 0 Profit=Price-Cost
41 1996-S ATLANTA Whiteboard, base 0 Profit=Price-Cost
42 2000-S SIDNEY Swivel Chair, green 0 Profit=Price-Cost
43 766BC-A OLYMPIC Conference System 1 Price=Cost+Profit
44 766BC-B OLYMPIC Office System 1 Price=Cost+Profit
45 766BC-C OLYMPIC Storage System 1 Price=Cost+Profit
SELECT No_, Description, 'Price/Profit Calculation', OCODE('Price/Profit Calculation')
FROM Item

Even more simple you may use the calculated field named where ' - Text' is added to the name.

  No_ Description Price/ Price/Profit Calculation - Text
1 70000 Side Panel 0 Profit=Price-Cost
2 70001 Base 0 Profit=Price-Cost
3 70002 Top Panel 0 Profit=Price-Cost
4 70003 Rear Panel 0 Profit=Price-Cost
5 70010 Wooden Door 0 Profit=Price-Cost
6 70011 Glass Door 0 Profit=Price-Cost
7 70040 Drawer 0 Profit=Price-Cost
8 70041 Shelf 0 Profit=Price-Cost
9 70060 Mounting 0 Profit=Price-Cost
10 70100 Paint, black 0 Profit=Price-Cost
11 70101 Paint, yellow 0 Profit=Price-Cost
12 70102 Paint, blue 0 Profit=Price-Cost
13 70103 Paint, red 0 Profit=Price-Cost
14 70104 Paint, green 0 Profit=Price-Cost
15 70200 Hinge 0 Profit=Price-Cost
16 70201 Doorknob 0 Profit=Price-Cost
17 80100 Printing Paper 0 Profit=Price-Cost
18 1896-S ATHENS Desk 0 Profit=Price-Cost
19 1900-S PARIS Guest Chair, black 0 Profit=Price-Cost
20 1906-S ATHENS Mobile Pedestal 0 Profit=Price-Cost
21 1908-S LONDON Swivel Chair, blue 0 Profit=Price-Cost
22 1920-S ANTWERP Conference Table 0 Profit=Price-Cost
23 1924-W CHAMONIX Base Storage Unit 0 Profit=Price-Cost
24 1928-S AMSTERDAM Lamp 0 Profit=Price-Cost
25 1928-W ST.MORITZ Storage Unit/Drawers 0 Profit=Price-Cost
26 1936-S BERLIN Guest Chair, yellow 0 Profit=Price-Cost
27 1952-W OSLO Storage Unit/Shelf 0 Profit=Price-Cost
28 1960-S ROME Guest Chair, green 0 Profit=Price-Cost
29 1964-S TOKYO Guest Chair, blue 0 Profit=Price-Cost
30 1964-W INNSBRUCK Storage Unit/G.Door 0 Profit=Price-Cost
31 1968-S MEXICO Swivel Chair, black 0 Profit=Price-Cost
32 1968-W GRENOBLE Whiteboard, red 0 Profit=Price-Cost
33 1972-S MUNICH Swivel Chair, yellow 0 Profit=Price-Cost
34 1972-W SAPPORO Whiteboard, black 0 Profit=Price-Cost
35 1976-W INNSBRUCK Storage Unit/W.Door 0 Profit=Price-Cost
36 1980-S MOSCOW Swivel Chair, red 0 Profit=Price-Cost
37 1984-W SARAJEVO Whiteboard, blue 0 Profit=Price-Cost
38 1988-S SEOUL Guest Chair, red 0 Profit=Price-Cost
39 1988-W CALGARY Whiteboard, yellow 0 Profit=Price-Cost
40 1992-W ALBERTVILLE Whiteboard, green 0 Profit=Price-Cost
41 1996-S ATLANTA Whiteboard, base 0 Profit=Price-Cost
42 2000-S SIDNEY Swivel Chair, green 0 Profit=Price-Cost
43 766BC-A OLYMPIC Conference System 1 Price=Cost+Profit
44 766BC-B OLYMPIC Office System 1 Price=Cost+Profit
45 766BC-C OLYMPIC Storage System 1 Price=Cost+Profit
SELECT No_, Description, 'Price/Profit Calculation', 'Price/Profit Calculation - Text'
FROM Item

19. SQLInfo

SQLInfo returns the following:

  Name Value Description
1 SQL_ACCESSIBLE_PROCEDURES N May be procedures user cannot
2 SQL_ACCESSIBLE_TABLES N Not all tables may be accessed
3 SQL_ACTIVE_CONNECTIONS 0 No limit
4 SQL_ACTIVE_STATEMENTS 0 No limit
5 SQL_ALTER_TABLE 3 SQL_AT_ADD_COLUMN
      SQL_AT_DROP_COLUMN
6 SQL_BOOKMARK_PERSISTENCE 0  
7 SQL_COLUMN_ALIAS N Alias not supported
8 SQL_CONCAT_NULL_BEHAVIOR 1 SQL_CB_NON_NULL
9 SQL_CONVERT_BIGINT 0  
10 SQL_CONVERT_BINARY 0  
11 SQL_CONVERT_BIT 0  
12 SQL_CONVERT_CHAR 230399 SQL_CVT_CHAR
      SQL_CVT_NUMERIC
      SQL_CVT_DECIMAL
      SQL_CVT_INTEGER
      SQL_CVT_SMALLINT
      SQL_CVT_FLOAT
      SQL_CVT_REAL
      SQL_CVT_DOUBLE
      SQL_CVT_VARCHAR
      SQL_CVT_LONGVARCHAR
      SQL_CVT_DATE
      SQL_CVT_TIME
      SQL_CVT_TIMESTAMP
13 SQL_CONVERT_DATE 230399 SQL_CVT_CHAR
      SQL_CVT_NUMERIC
      SQL_CVT_DECIMAL
      SQL_CVT_INTEGER
      SQL_CVT_SMALLINT
      SQL_CVT_FLOAT
      SQL_CVT_REAL
      SQL_CVT_DOUBLE
      SQL_CVT_VARCHAR
      SQL_CVT_LONGVARCHAR
      SQL_CVT_DATE
      SQL_CVT_TIME
      SQL_CVT_TIMESTAMP
14 SQL_CONVERT_DECIMAL 230399 SQL_CVT_CHAR
      SQL_CVT_NUMERIC
      SQL_CVT_DECIMAL
      SQL_CVT_INTEGER
      SQL_CVT_SMALLINT
      SQL_CVT_FLOAT
      SQL_CVT_REAL
      SQL_CVT_DOUBLE
      SQL_CVT_VARCHAR
      SQL_CVT_LONGVARCHAR
      SQL_CVT_DATE
      SQL_CVT_TIME
      SQL_CVT_TIMESTAMP
15 SQL_CONVERT_DOUBLE 230399 SQL_CVT_CHAR
      SQL_CVT_NUMERIC
      SQL_CVT_DECIMAL
      SQL_CVT_INTEGER
      SQL_CVT_SMALLINT
      SQL_CVT_FLOAT
      SQL_CVT_REAL
      SQL_CVT_DOUBLE
      SQL_CVT_VARCHAR
      SQL_CVT_LONGVARCHAR
      SQL_CVT_DATE
      SQL_CVT_TIME
      SQL_CVT_TIMESTAMP
16 SQL_CONVERT_FLOAT 230399 SQL_CVT_CHAR
      SQL_CVT_NUMERIC
      SQL_CVT_DECIMAL
      SQL_CVT_INTEGER
      SQL_CVT_SMALLINT
      SQL_CVT_FLOAT
      SQL_CVT_REAL
      SQL_CVT_DOUBLE
      SQL_CVT_VARCHAR
      SQL_CVT_LONGVARCHAR
      SQL_CVT_DATE
      SQL_CVT_TIME
      SQL_CVT_TIMESTAMP
17 SQL_CONVERT_FUNCTIONS 1 SQL_FN_CVT_CONVERT
18 SQL_CONVERT_INTEGER 230399 SQL_CVT_CHAR
      SQL_CVT_NUMERIC
      SQL_CVT_DECIMAL
      SQL_CVT_INTEGER
      SQL_CVT_SMALLINT
      SQL_CVT_FLOAT
      SQL_CVT_REAL
      SQL_CVT_DOUBLE
      SQL_CVT_VARCHAR
      SQL_CVT_LONGVARCHAR
      SQL_CVT_DATE
      SQL_CVT_TIME
      SQL_CVT_TIMESTAMP
19 SQL_CONVERT_LONGVARBINARY 0  
20 SQL_CONVERT_LONGVARCHAR 230399 SQL_CVT_CHAR
      SQL_CVT_NUMERIC
      SQL_CVT_DECIMAL
      SQL_CVT_INTEGER
      SQL_CVT_SMALLINT
      SQL_CVT_FLOAT
      SQL_CVT_REAL
      SQL_CVT_DOUBLE
      SQL_CVT_VARCHAR
      SQL_CVT_LONGVARCHAR
      SQL_CVT_DATE
      SQL_CVT_TIME
      SQL_CVT_TIMESTAMP
21 SQL_CONVERT_NUMERIC 230399 SQL_CVT_CHAR
      SQL_CVT_NUMERIC
      SQL_CVT_DECIMAL
      SQL_CVT_INTEGER
      SQL_CVT_SMALLINT
      SQL_CVT_FLOAT
      SQL_CVT_REAL
      SQL_CVT_DOUBLE
      SQL_CVT_VARCHAR
      SQL_CVT_LONGVARCHAR
      SQL_CVT_DATE
      SQL_CVT_TIME
      SQL_CVT_TIMESTAMP
22 SQL_CONVERT_REAL 230399 SQL_CVT_CHAR
      SQL_CVT_NUMERIC
      SQL_CVT_DECIMAL
      SQL_CVT_INTEGER
      SQL_CVT_SMALLINT
      SQL_CVT_FLOAT
      SQL_CVT_REAL
      SQL_CVT_DOUBLE
      SQL_CVT_VARCHAR
      SQL_CVT_LONGVARCHAR
      SQL_CVT_DATE
      SQL_CVT_TIME
      SQL_CVT_TIMESTAMP
23 SQL_CONVERT_SMALLINT 230399 SQL_CVT_CHAR
      SQL_CVT_NUMERIC
      SQL_CVT_DECIMAL
      SQL_CVT_INTEGER
      SQL_CVT_SMALLINT
      SQL_CVT_FLOAT
      SQL_CVT_REAL
      SQL_CVT_DOUBLE
      SQL_CVT_VARCHAR
      SQL_CVT_LONGVARCHAR
      SQL_CVT_DATE
      SQL_CVT_TIME
      SQL_CVT_TIMESTAMP
24 SQL_CONVERT_TIME 230399 SQL_CVT_CHAR
      SQL_CVT_NUMERIC
      SQL_CVT_DECIMAL
      SQL_CVT_INTEGER
      SQL_CVT_SMALLINT
      SQL_CVT_FLOAT
      SQL_CVT_REAL
      SQL_CVT_DOUBLE
      SQL_CVT_VARCHAR
      SQL_CVT_LONGVARCHAR
      SQL_CVT_DATE
      SQL_CVT_TIME
      SQL_CVT_TIMESTAMP
25 SQL_CONVERT_TIMESTAMP 230399 SQL_CVT_CHAR
      SQL_CVT_NUMERIC
      SQL_CVT_DECIMAL
      SQL_CVT_INTEGER
      SQL_CVT_SMALLINT
      SQL_CVT_FLOAT
      SQL_CVT_REAL
      SQL_CVT_DOUBLE
      SQL_CVT_VARCHAR
      SQL_CVT_LONGVARCHAR
      SQL_CVT_DATE
      SQL_CVT_TIME
      SQL_CVT_TIMESTAMP
26 SQL_CONVERT_TINYINT 0  
27 SQL_CONVERT_VARBINARY 0  
28 SQL_CONVERT_VARCHAR 230399 SQL_CVT_CHAR
      SQL_CVT_NUMERIC
      SQL_CVT_DECIMAL
      SQL_CVT_INTEGER
      SQL_CVT_SMALLINT
      SQL_CVT_FLOAT
      SQL_CVT_REAL
      SQL_CVT_DOUBLE
      SQL_CVT_VARCHAR
      SQL_CVT_LONGVARCHAR
      SQL_CVT_DATE
      SQL_CVT_TIME
      SQL_CVT_TIMESTAMP
29 SQL_CORRELATION_NAME 2 SQL_CN_ANY
30 SQL_CURSOR_COMMIT_BEHAVIOR 2 SQL_CB_PRESERVE
31 SQL_CURSOR_ROLLBACK_BEHAVIOR 2 SQL_CB_PRESERVE
32 SQL_DATA_SOURCE_NAME SWNav32s  
33 SQL_DATA_SOURCE_READ_ONLY N Read/Write
34 SQL_DATABASE_NAME    
35 SQL_DBMS_NAME SW-Tools  
36 SQL_DBMS_VER 08.10.0009  
37 SQL_DEFAULT_TXN_ISOLATION 0  
38 SQL_DRIVER_HDBC 16699120  
39 SQL_DRIVER_HENV 17013692  
40 SQL_DRIVER_HLIB 79691776  
41 SQL_DRIVER_HSTMT 0 * Invalid argument value
42 SQL_DRIVER_NAME SWODBC32.dll  
43 SQL_DRIVER_ODBC_VER 02.10  
44 SQL_DRIVER_VER 08.10.0009  
45 SQL_EXPRESSIONS_IN_ORDERBY Y Yes, Expressions in orderby
46 SQL_FETCH_DIRECTION 1 SQL_FD_FETCH_NEXT
47 SQL_FILE_USAGE 0 SQL_FILE_NOT_SUPPORTED
48 SQL_GETDATA_EXTENSIONS 11 SQL_GD_ANY_COLUMN
      SQL_GD_ANY_ORDER
      SQL_GD_BOUND
49 SQL_GROUP_BY 3 SQL_GB_GROUP_BY_EQUALS_SELECT
      SQL_GB_GROUP_BY_CONTAINS_SELEC
50 SQL_IDENTIFIER_CASE 3 SQL_IC_UPPER
      SQL_IC_LOWER
51 SQL_IDENTIFIER_QUOTE_CHAR '  
52 SQL_KEYWORDS UPPER,EXPORT,IMPORT  
53 SQL_LIKE_ESCAPE_CLAUSE Y LIKE fully supported
54 SQL_LOCK_TYPES 0  
55 SQL_MAX_BINARY_LITERAL_LEN 64  
56 SQL_MAX_CHAR_LITERAL_LEN 64  
57 SQL_MAX_COLUMNS_IN_GROUP_BY 499  
58 SQL_MAX_COLUMNS_IN_INDEX 499  
59 SQL_MAX_COLUMNS_IN_ORDER_BY 499  
60 SQL_MAX_COLUMNS_IN_SELECT 499  
61 SQL_MAX_COLUMNS_IN_TABLE 499  
62 SQL_MAX_COLUMN_NAME_LEN 64  
63 SQL_MAX_CURSOR_NAME_LEN 18  
64 SQL_MAX_INDEX_SIZE 499  
65 SQL_MAX_OWNER_NAME_LEN 0 No limit
66 SQL_MAX_PROCEDURE_NAME_LEN 0 No limit
67 SQL_MAX_QUALIFIER_NAME_LEN 0 No limit
68 SQL_MAX_ROW_SIZE 0 No limit
69 SQL_MAX_ROW_SIZE_INCLUDES_LONG Y SQL_LONGVARCHAR included in MA
70 SQL_MAX_STATEMENT_LEN 0 No limit
71 SQL_MAX_TABLE_NAME_LEN 64  
72 SQL_MAX_TABLES_IN_SELECT 64  
73 SQL_MAX_USER_NAME_LEN 64  
74 SQL_MULT_RESULT_SETS N No support
75 SQL_MULTIPLE_ACTIVE_TXN Y More conn.with active trans
76 SQL_NEED_LONG_DATA_LEN N No need for long data length
77 SQL_NON_NULLABLE_COLUMNS 0 SQL_NCC_NULL
78 SQL_NULL_COLLATION 1 SQL_NC_LOW
79 SQL_NUMERIC_FUNCTIONS 16777215 SQL_FN_NUM_ABS
      SQL_FN_NUM_ACOS
      SQL_FN_NUM_ASIN
      SQL_FN_NUM_ATAN
      SQL_FN_NUM_ATAN2
      SQL_FN_NUM_CEILING
      SQL_FN_NUM_COS
      SQL_FN_NUM_COT
      SQL_FN_NUM_EXP
      SQL_FN_NUM_FLOOR
      SQL_FN_NUM_LOG
      SQL_FN_NUM_MOD
      SQL_FN_NUM_SIGN
      SQL_FN_NUM_SIN
      SQL_FN_NUM_SQRT
      SQL_FN_NUM_TAN
      SQL_FN_NUM_PI
      SQL_FN_NUM_RAND
      SQL_FN_NUM_DEGREES
      SQL_FN_NUM_LOG10
      SQL_FN_NUM_POWER
      SQL_FN_NUM_RADIANS
      SQL_FN_NUM_ROUND
      SQL_FN_NUM_TRUNCATE
80 SQL_ODBC_API_CONFORMANCE 1 SQL_OAC_LEVEL1
81 SQL_ODBC_SAG_CLI_CONFORMANCE 1 SQL_OSCC_COMPLIANT
82 SQL_ODBC_SQL_CONFORMANCE 1 SQL_OSC_CORE
83 SQL_ODBC_SQL_OPT_IEF N No Optional Integrity Enhancem
84 SQL_ODBC_VER 03.51.0000  
85 SQL_ORDER_BY_COLUMNS_IN_SELECT N ORDER BY free
86 SQL_OUTER_JOINS Y OUTER JOINS Supported
87 SQL_SQL_OJ_CAPABILITIES 1 SQL_OJ_LEFT
88 SQL_OWNER_TERM OWNER  
89 SQL_OWNER_USAGE 0  
90 SQL_POS_OPERATIONS 0  
91 SQL_POSITIONED_STATEMENTS 7 SQL_PS_POSITIONED_DELETE
      SQL_PS_POSITIONED_UPDATE
      SQL_PS_SELECT_FOR_UPDATE
92 SQL_PROCEDURE_TERM PROCEDURE  
93 SQL_PROCEDURES N Procedures NOT supported
94 SQL_QUALIFIER_LOCATION 1 SQL_QL_START
95 SQL_QUALIFIER_NAME_SEPARATOR \  
96 SQL_QUALIFIER_TERM DIRECTORY  
97 SQL_QUALIFIER_USAGE 0  
98 SQL_QUOTED_IDENTIFIER_CASE 3 SQL_IC_UPPER
      SQL_IC_LOWER
99 SQL_ROW_UPDATES N No
100 SQL_SCROLL_CONCURRENCY 0  
101 SQL_SCROLL_OPTIONS 0  
102 SQL_SEARCH_PATTERN_ESCAPE \  
103 SQL_SERVER_NAME SW-Tools  
104 SQL_SPECIAL_CHARACTERS #ÆØÅæøåÄÖÜäöüß  
105 SQL_STATIC_SENSITIVITY 0  
106 SQL_STRING_FUNCTIONS 294911 SQL_FN_STR_CONCAT
      SQL_FN_STR_INSERT
      SQL_FN_STR_LEFT
      SQL_FN_STR_LTRIM
      SQL_FN_STR_LENGTH
      SQL_FN_STR_LOCATE
      SQL_FN_STR_LCASE
      SQL_FN_STR_REPEAT
      SQL_FN_STR_REPLACE
      SQL_FN_STR_RIGHT
      SQL_FN_STR_RTRIM
      SQL_FN_STR_SUBSTRING
      SQL_FN_STR_UCASE
      SQL_FN_STR_ASCII
      SQL_FN_STR_CHAR
      SQL_FN_STR_SPACE
107 SQL_SUBQUERIES 31 SQL_SQ_COMPARISON
      SQL_SQ_EXISTS
      SQL_SQ_IN
      SQL_SQ_QUANTIFIED
      SQL_SQ_CORRELATED_SUBQUERIES
108 SQL_SYSTEM_FUNCTIONS 7 SQL_FN_SYS_USERNAME
      SQL_FN_SYS_DBNAME
      SQL_FN_SYS_IFNULL
109 SQL_TABLE_TERM TABLE  
110 SQL_TIMEDATE_ADD_INTERVALS 0  
111 SQL_TIMEDATE_DIFF_INTERVALS 0  
112 SQL_TIMEDATE_FUNCTIONS 106495 SQL_FN_TD_NOW
      SQL_FN_TD_CURDATE
      SQL_FN_TD_DAYOFMONTH
      SQL_FN_TD_DAYOFWEEK
      SQL_FN_TD_DAYOFYEAR
      SQL_FN_TD_MONTH
      SQL_FN_TD_QUARTER
      SQL_FN_TD_WEEK
      SQL_FN_TD_YEAR
      SQL_FN_TD_CURTIME
      SQL_FN_TD_HOUR
      SQL_FN_TD_MINUTE
      SQL_FN_TD_SECOND
      SQL_FN_TD_DAYNAME
      SQL_FN_TD_MONTHNAME
113 SQL_TXN_CAPABLE 0 SQL_TC_NONE
114 SQL_TXN_ISOLATION_OPTION 0  
115 SQL_UNION 3 SQL_U_UNION
      SQL_U_UNION_ALL
116 SQL_USER_NAME    
SQLInfo(hstmt,*)

The info call.