diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..419905d
Binary files /dev/null and b/.DS_Store differ
diff --git a/.gitignore b/.gitignore
index 3c3629e..02c47b8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
node_modules
+/nbproject/private/
\ No newline at end of file
diff --git a/JavaSybaseLink/build/built-jar.properties b/JavaSybaseLink/build/built-jar.properties
index 311c34b..7105797 100644
--- a/JavaSybaseLink/build/built-jar.properties
+++ b/JavaSybaseLink/build/built-jar.properties
@@ -1,4 +1,4 @@
-#Tue, 07 Feb 2017 08:58:12 +1100
+#Thu, 11 Jan 2018 00:44:51 -0800
-/home/rod/work/node-sybase/JavaSybaseLink=
+/Users/kagovind/GSKDeveloper/JavaScript/node-sybase/JavaSybaseLink=
diff --git a/JavaSybaseLink/build/classes/ExecSQLCallable.class b/JavaSybaseLink/build/classes/ExecSQLCallable.class
index 4e523be..cdbed59 100644
Binary files a/JavaSybaseLink/build/classes/ExecSQLCallable.class and b/JavaSybaseLink/build/classes/ExecSQLCallable.class differ
diff --git a/JavaSybaseLink/build/classes/Main.class b/JavaSybaseLink/build/classes/Main.class
index 2a41277..5a7adb9 100644
Binary files a/JavaSybaseLink/build/classes/Main.class and b/JavaSybaseLink/build/classes/Main.class differ
diff --git a/JavaSybaseLink/build/classes/MyProperties.class b/JavaSybaseLink/build/classes/MyProperties.class
index e32bfec..ee51df4 100644
Binary files a/JavaSybaseLink/build/classes/MyProperties.class and b/JavaSybaseLink/build/classes/MyProperties.class differ
diff --git a/JavaSybaseLink/build/classes/SQLRequest.class b/JavaSybaseLink/build/classes/SQLRequest.class
index 0f39245..13b9d68 100644
Binary files a/JavaSybaseLink/build/classes/SQLRequest.class and b/JavaSybaseLink/build/classes/SQLRequest.class differ
diff --git a/JavaSybaseLink/build/classes/StdInputReader.class b/JavaSybaseLink/build/classes/StdInputReader.class
index ef4507e..692297d 100644
Binary files a/JavaSybaseLink/build/classes/StdInputReader.class and b/JavaSybaseLink/build/classes/StdInputReader.class differ
diff --git a/JavaSybaseLink/build/classes/SybaseDB.class b/JavaSybaseLink/build/classes/SybaseDB.class
index dce1193..d00504d 100644
Binary files a/JavaSybaseLink/build/classes/SybaseDB.class and b/JavaSybaseLink/build/classes/SybaseDB.class differ
diff --git a/JavaSybaseLink/dist/JavaSybaseLink.jar b/JavaSybaseLink/dist/JavaSybaseLink.jar
index 56215ad..bf8a272 100644
Binary files a/JavaSybaseLink/dist/JavaSybaseLink.jar and b/JavaSybaseLink/dist/JavaSybaseLink.jar differ
diff --git a/JavaSybaseLink/dist/javadoc/ExecSQLCallable.html b/JavaSybaseLink/dist/javadoc/ExecSQLCallable.html
new file mode 100644
index 0000000..689b7a1
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/ExecSQLCallable.html
@@ -0,0 +1,311 @@
+
+
+
+
+
+
+ExecSQLCallable
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+ExecSQLCallable (java.sql.Connection conn,
+ java.text.DateFormat df,
+ SQLRequest request)
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+
+Methods inherited from class java.lang.Object
+clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/Main.html b/JavaSybaseLink/dist/javadoc/Main.html
new file mode 100644
index 0000000..ef304e7
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/Main.html
@@ -0,0 +1,292 @@
+
+
+
+
+
+
+Main
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+Main (java.lang.String host,
+ java.lang.Integer port,
+ java.lang.String dbname,
+ java.lang.String username,
+ java.lang.String password,
+ boolean allowNull)
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+
+Methods inherited from class java.lang.Object
+clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+Main
+public Main(java.lang.String host,
+ java.lang.Integer port,
+ java.lang.String dbname,
+ java.lang.String username,
+ java.lang.String password,
+ boolean allowNull)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/MyProperties.html b/JavaSybaseLink/dist/javadoc/MyProperties.html
new file mode 100644
index 0000000..237fc24
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/MyProperties.html
@@ -0,0 +1,271 @@
+
+
+
+
+
+
+MyProperties
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+Fields
+
+Modifier and Type
+Field and Description
+
+
+java.util.Properties
+properties
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+MyProperties (java.lang.String propertyFileName)
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+Methods inherited from class java.lang.Object
+clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Field Detail
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/SQLRequest.html b/JavaSybaseLink/dist/javadoc/SQLRequest.html
new file mode 100644
index 0000000..8d0dc70
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/SQLRequest.html
@@ -0,0 +1,235 @@
+
+
+
+
+
+
+SQLRequest
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Detail:
+Field |
+Constr |
+Method
+
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+SQLRequest ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+Methods inherited from class java.lang.Object
+clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+SQLRequest
+public SQLRequest()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Detail:
+Field |
+Constr |
+Method
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/StdInputReader.html b/JavaSybaseLink/dist/javadoc/StdInputReader.html
new file mode 100644
index 0000000..3da46ea
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/StdInputReader.html
@@ -0,0 +1,295 @@
+
+
+
+
+
+
+StdInputReader
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+StdInputReader (boolean allowNull)
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+
+Methods inherited from class java.lang.Object
+clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/SybaseDB.html b/JavaSybaseLink/dist/javadoc/SybaseDB.html
new file mode 100644
index 0000000..444fd6d
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/SybaseDB.html
@@ -0,0 +1,386 @@
+
+
+
+
+
+
+SybaseDB
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+SybaseDB (java.lang.String host,
+ java.lang.Integer port,
+ java.lang.String dbname,
+ java.lang.String username,
+ java.lang.String password)
+
+
+SybaseDB (java.lang.String host,
+ java.lang.Integer port,
+ java.lang.String dbname,
+ java.lang.String username,
+ java.lang.String password,
+ java.util.Properties props)
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+
+Methods inherited from class java.lang.Object
+clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+SybaseDB
+public SybaseDB(java.lang.String host,
+ java.lang.Integer port,
+ java.lang.String dbname,
+ java.lang.String username,
+ java.lang.String password)
+
+
+
+
+
+
+
+SybaseDB
+public SybaseDB(java.lang.String host,
+ java.lang.Integer port,
+ java.lang.String dbname,
+ java.lang.String username,
+ java.lang.String password,
+ java.util.Properties props)
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+connect
+public boolean connect()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/allclasses-frame.html b/JavaSybaseLink/dist/javadoc/allclasses-frame.html
new file mode 100644
index 0000000..8111af7
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/allclasses-frame.html
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+All Classes
+
+
+
+
+
+All Classes
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/allclasses-noframe.html b/JavaSybaseLink/dist/javadoc/allclasses-noframe.html
new file mode 100644
index 0000000..3cf140f
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/allclasses-noframe.html
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+All Classes
+
+
+
+
+
+All Classes
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/class-use/ExecSQLCallable.html b/JavaSybaseLink/dist/javadoc/class-use/ExecSQLCallable.html
new file mode 100644
index 0000000..d1a3b1b
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/class-use/ExecSQLCallable.html
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+Uses of Class ExecSQLCallable
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of ExecSQLCallable
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/class-use/Main.html b/JavaSybaseLink/dist/javadoc/class-use/Main.html
new file mode 100644
index 0000000..2c3485f
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/class-use/Main.html
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+Uses of Class Main
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of Main
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/class-use/MyProperties.html b/JavaSybaseLink/dist/javadoc/class-use/MyProperties.html
new file mode 100644
index 0000000..6375641
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/class-use/MyProperties.html
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+Uses of Class MyProperties
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of MyProperties
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/class-use/SQLRequest.html b/JavaSybaseLink/dist/javadoc/class-use/SQLRequest.html
new file mode 100644
index 0000000..bfce6f2
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/class-use/SQLRequest.html
@@ -0,0 +1,165 @@
+
+
+
+
+
+
+Uses of Class SQLRequest
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/class-use/StdInputReader.html b/JavaSybaseLink/dist/javadoc/class-use/StdInputReader.html
new file mode 100644
index 0000000..17a1230
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/class-use/StdInputReader.html
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+Uses of Class StdInputReader
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of StdInputReader
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/class-use/SybaseDB.html b/JavaSybaseLink/dist/javadoc/class-use/SybaseDB.html
new file mode 100644
index 0000000..e3e9447
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/class-use/SybaseDB.html
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+Uses of Class SybaseDB
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of SybaseDB
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/constant-values.html b/JavaSybaseLink/dist/javadoc/constant-values.html
new file mode 100644
index 0000000..1dbca41
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/constant-values.html
@@ -0,0 +1,166 @@
+
+
+
+
+
+
+Constant Field Values
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/deprecated-list.html b/JavaSybaseLink/dist/javadoc/deprecated-list.html
new file mode 100644
index 0000000..940764c
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/deprecated-list.html
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+Deprecated List
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/help-doc.html b/JavaSybaseLink/dist/javadoc/help-doc.html
new file mode 100644
index 0000000..0c0cd9e
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/help-doc.html
@@ -0,0 +1,224 @@
+
+
+
+
+
+
+API Help
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+Package
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:
+
+Interfaces (italic)
+Classes
+Enums
+Exceptions
+Errors
+Annotation Types
+
+
+
+Class/Interface
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:
+
+Class inheritance diagram
+Direct Subclasses
+All Known Subinterfaces
+All Known Implementing Classes
+Class/interface declaration
+Class/interface description
+
+
+Nested Class Summary
+Field Summary
+Constructor Summary
+Method Summary
+
+
+Field Detail
+Constructor Detail
+Method Detail
+
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+
+
+Annotation Type
+Each annotation type has its own separate page with the following sections:
+
+Annotation Type declaration
+Annotation Type description
+Required Element Summary
+Optional Element Summary
+Element Detail
+
+
+
+Enum
+Each enum has its own separate page with the following sections:
+
+Enum declaration
+Enum description
+Enum Constant Summary
+Enum Constant Detail
+
+
+
+Use
+Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.
+
+
+Tree (Class Hierarchy)
+There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object
. The interfaces do not inherit from java.lang.Object
.
+
+When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
+When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
+
+
+
+Deprecated API
+The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
+
+
+Index
+The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
+
+
+Prev/Next
+These links take you to the next or previous class, interface, package, or related page.
+
+
+Frames/No Frames
+These links show and hide the HTML frames. All pages are available with or without frames.
+
+
+All Classes
+The All Classes link shows all classes and interfaces except non-static nested types.
+
+
+Serialized Form
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
+
+
+Constant Field Values
+The Constant Field Values page lists the static final fields and their values.
+
+
+
This help file applies to API documentation generated using the standard doclet.
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/index-files/index-1.html b/JavaSybaseLink/dist/javadoc/index-files/index-1.html
new file mode 100644
index 0000000..e93a6bc
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/index-files/index-1.html
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+A-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/index-files/index-2.html b/JavaSybaseLink/dist/javadoc/index-files/index-2.html
new file mode 100644
index 0000000..874df38
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/index-files/index-2.html
@@ -0,0 +1,130 @@
+
+
+
+
+
+
+C-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C E M N P R S T
+
+
+
C
+
+call() - Method in class ExecSQLCallable
+
+connect() - Method in class SybaseDB
+
+
+
A C E M N P R S T
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/index-files/index-3.html b/JavaSybaseLink/dist/javadoc/index-files/index-3.html
new file mode 100644
index 0000000..cb52f95
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/index-files/index-3.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+E-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/index-files/index-4.html b/JavaSybaseLink/dist/javadoc/index-files/index-4.html
new file mode 100644
index 0000000..398b8d4
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/index-files/index-4.html
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+M-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/index-files/index-5.html b/JavaSybaseLink/dist/javadoc/index-files/index-5.html
new file mode 100644
index 0000000..40e8068
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/index-files/index-5.html
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+N-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C E M N P R S T
+
+
+
N
+
+NUMBER_OF_THREADS - Static variable in class SybaseDB
+
+
+
A C E M N P R S T
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/index-files/index-6.html b/JavaSybaseLink/dist/javadoc/index-files/index-6.html
new file mode 100644
index 0000000..cf437eb
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/index-files/index-6.html
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+P-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C E M N P R S T
+
+
+
P
+
+properties - Variable in class MyProperties
+
+
+
A C E M N P R S T
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/index-files/index-7.html b/JavaSybaseLink/dist/javadoc/index-files/index-7.html
new file mode 100644
index 0000000..9c0191c
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/index-files/index-7.html
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+R-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/index-files/index-8.html b/JavaSybaseLink/dist/javadoc/index-files/index-8.html
new file mode 100644
index 0000000..18c4de0
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/index-files/index-8.html
@@ -0,0 +1,146 @@
+
+
+
+
+
+
+S-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/index-files/index-9.html b/JavaSybaseLink/dist/javadoc/index-files/index-9.html
new file mode 100644
index 0000000..de10c5c
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/index-files/index-9.html
@@ -0,0 +1,130 @@
+
+
+
+
+
+
+T-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C E M N P R S T
+
+
+
T
+
+TYPE_DATE - Static variable in class SybaseDB
+
+TYPE_TIME_STAMP - Static variable in class SybaseDB
+
+
+
A C E M N P R S T
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/index.html b/JavaSybaseLink/dist/javadoc/index.html
new file mode 100644
index 0000000..27036e4
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/index.html
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+Generated Documentation (Untitled)
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+Frame Alert
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to Non-frame version .
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/overview-tree.html b/JavaSybaseLink/dist/javadoc/overview-tree.html
new file mode 100644
index 0000000..4495a3f
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/overview-tree.html
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+Class Hierarchy
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/package-frame.html b/JavaSybaseLink/dist/javadoc/package-frame.html
new file mode 100644
index 0000000..67456ef
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/package-frame.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+<Unnamed>
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/package-list b/JavaSybaseLink/dist/javadoc/package-list
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/package-list
@@ -0,0 +1 @@
+
diff --git a/JavaSybaseLink/dist/javadoc/package-summary.html b/JavaSybaseLink/dist/javadoc/package-summary.html
new file mode 100644
index 0000000..bf58a4c
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/package-summary.html
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Prev Package
+Next Package
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Prev Package
+Next Package
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/package-tree.html b/JavaSybaseLink/dist/javadoc/package-tree.html
new file mode 100644
index 0000000..1ff1845
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/package-tree.html
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+ Class Hierarchy
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/package-use.html b/JavaSybaseLink/dist/javadoc/package-use.html
new file mode 100644
index 0000000..7e9f1e4
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/package-use.html
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+Uses of Package
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JavaSybaseLink/dist/javadoc/script.js b/JavaSybaseLink/dist/javadoc/script.js
new file mode 100644
index 0000000..b346356
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/script.js
@@ -0,0 +1,30 @@
+function show(type)
+{
+ count = 0;
+ for (var key in methods) {
+ var row = document.getElementById(key);
+ if ((methods[key] & type) != 0) {
+ row.style.display = '';
+ row.className = (count++ % 2) ? rowColor : altColor;
+ }
+ else
+ row.style.display = 'none';
+ }
+ updateTabs(type);
+}
+
+function updateTabs(type)
+{
+ for (var value in tabs) {
+ var sNode = document.getElementById(tabs[value][0]);
+ var spanNode = sNode.firstChild;
+ if (value == type) {
+ sNode.className = activeTableTab;
+ spanNode.innerHTML = tabs[value][1];
+ }
+ else {
+ sNode.className = tableTab;
+ spanNode.innerHTML = "" + tabs[value][1] + " ";
+ }
+ }
+}
diff --git a/JavaSybaseLink/dist/javadoc/stylesheet.css b/JavaSybaseLink/dist/javadoc/stylesheet.css
new file mode 100644
index 0000000..98055b2
--- /dev/null
+++ b/JavaSybaseLink/dist/javadoc/stylesheet.css
@@ -0,0 +1,574 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+
+@import url('resources/fonts/dejavu.css');
+
+body {
+ background-color:#ffffff;
+ color:#353833;
+ font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+ font-size:14px;
+ margin:0;
+}
+a:link, a:visited {
+ text-decoration:none;
+ color:#4A6782;
+}
+a:hover, a:focus {
+ text-decoration:none;
+ color:#bb7a2a;
+}
+a:active {
+ text-decoration:none;
+ color:#4A6782;
+}
+a[name] {
+ color:#353833;
+}
+a[name]:hover {
+ text-decoration:none;
+ color:#353833;
+}
+pre {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+}
+h1 {
+ font-size:20px;
+}
+h2 {
+ font-size:18px;
+}
+h3 {
+ font-size:16px;
+ font-style:italic;
+}
+h4 {
+ font-size:13px;
+}
+h5 {
+ font-size:12px;
+}
+h6 {
+ font-size:11px;
+}
+ul {
+ list-style-type:disc;
+}
+code, tt {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ padding-top:4px;
+ margin-top:8px;
+ line-height:1.4em;
+}
+dt code {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ padding-top:4px;
+}
+table tr td dt code {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ vertical-align:top;
+ padding-top:4px;
+}
+sup {
+ font-size:8px;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+ clear:both;
+ height:0px;
+ overflow:hidden;
+}
+.aboutLanguage {
+ float:right;
+ padding:0px 21px;
+ font-size:11px;
+ z-index:200;
+ margin-top:-9px;
+}
+.legalCopy {
+ margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+ color:#FFFFFF;
+ text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+ color:#bb7a2a;
+}
+.tab {
+ background-color:#0066FF;
+ color:#ffffff;
+ padding:8px;
+ width:5em;
+ font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+ background-color:#4D7A97;
+ color:#FFFFFF;
+ padding:.8em .5em .4em .8em;
+ height:auto;/*height:1.8em;*/
+ font-size:11px;
+ margin:0;
+}
+.topNav {
+ background-color:#4D7A97;
+ color:#FFFFFF;
+ float:left;
+ padding:0;
+ width:100%;
+ clear:right;
+ height:2.8em;
+ padding-top:10px;
+ overflow:hidden;
+ font-size:12px;
+}
+.bottomNav {
+ margin-top:10px;
+ background-color:#4D7A97;
+ color:#FFFFFF;
+ float:left;
+ padding:0;
+ width:100%;
+ clear:right;
+ height:2.8em;
+ padding-top:10px;
+ overflow:hidden;
+ font-size:12px;
+}
+.subNav {
+ background-color:#dee3e9;
+ float:left;
+ width:100%;
+ overflow:hidden;
+ font-size:12px;
+}
+.subNav div {
+ clear:left;
+ float:left;
+ padding:0 0 5px 6px;
+ text-transform:uppercase;
+}
+ul.navList, ul.subNavList {
+ float:left;
+ margin:0 25px 0 0;
+ padding:0;
+}
+ul.navList li{
+ list-style:none;
+ float:left;
+ padding: 5px 6px;
+ text-transform:uppercase;
+}
+ul.subNavList li{
+ list-style:none;
+ float:left;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+ color:#FFFFFF;
+ text-decoration:none;
+ text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+ text-decoration:none;
+ color:#bb7a2a;
+ text-transform:uppercase;
+}
+.navBarCell1Rev {
+ background-color:#F8981D;
+ color:#253441;
+ margin: auto 5px;
+}
+.skipNav {
+ position:absolute;
+ top:auto;
+ left:-9999px;
+ overflow:hidden;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+ clear:both;
+ margin:0 20px;
+ padding:5px 0 0 0;
+}
+.indexHeader {
+ margin:10px;
+ position:relative;
+}
+.indexHeader span{
+ margin-right:15px;
+}
+.indexHeader h1 {
+ font-size:13px;
+}
+.title {
+ color:#2c4557;
+ margin:10px 0;
+}
+.subTitle {
+ margin:5px 0 0 0;
+}
+.header ul {
+ margin:0 0 15px 0;
+ padding:0;
+}
+.footer ul {
+ margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+ list-style:none;
+ font-size:13px;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+ background-color:#dee3e9;
+ border:1px solid #d0d9e0;
+ margin:0 0 6px -8px;
+ padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+ background-color:#dee3e9;
+ border:1px solid #d0d9e0;
+ margin:0 0 6px -8px;
+ padding:7px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+ padding:0;
+ margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+ padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+ clear:both;
+ padding:10px 20px;
+ position:relative;
+}
+.indexContainer {
+ margin:10px;
+ position:relative;
+ font-size:12px;
+}
+.indexContainer h2 {
+ font-size:13px;
+ padding:0 0 3px 0;
+}
+.indexContainer ul {
+ margin:0;
+ padding:0;
+}
+.indexContainer ul li {
+ list-style:none;
+ padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+ font-size:12px;
+ font-weight:bold;
+ margin:10px 0 0 0;
+ color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+ margin:5px 0 10px 0px;
+ font-size:14px;
+ font-family:'DejaVu Sans Mono',monospace;
+}
+.serializedFormContainer dl.nameValue dt {
+ margin-left:1px;
+ font-size:1.1em;
+ display:inline;
+ font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+ margin:0 0 0 1px;
+ font-size:1.1em;
+ display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+ display:inline;
+ font-size:0.9em;
+}
+ul.inheritance {
+ margin:0;
+ padding:0;
+}
+ul.inheritance li {
+ display:inline;
+ list-style:none;
+}
+ul.inheritance li ul.inheritance {
+ margin-left:15px;
+ padding-left:15px;
+ padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+ margin:10px 0 10px 0;
+ padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+ list-style:none;
+ margin-bottom:15px;
+ line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+ padding:0px 20px 5px 10px;
+ border:1px solid #ededed;
+ background-color:#f8f8f8;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+ padding:0 0 5px 8px;
+ background-color:#ffffff;
+ border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+ margin-left:0;
+ padding-left:0;
+ padding-bottom:15px;
+ border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+ list-style:none;
+ border-bottom:none;
+ padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+ margin-top:0;
+ margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
+ width:100%;
+ border-left:1px solid #EEE;
+ border-right:1px solid #EEE;
+ border-bottom:1px solid #EEE;
+}
+.overviewSummary, .memberSummary {
+ padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
+ position:relative;
+ text-align:left;
+ background-repeat:no-repeat;
+ color:#253441;
+ font-weight:bold;
+ clear:none;
+ overflow:hidden;
+ padding:0px;
+ padding-top:10px;
+ padding-left:1px;
+ margin:0px;
+ white-space:pre;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
+ color:#FFFFFF;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
+ white-space:nowrap;
+ padding-top:5px;
+ padding-left:12px;
+ padding-right:12px;
+ padding-bottom:7px;
+ display:inline-block;
+ float:left;
+ background-color:#F8981D;
+ border: none;
+ height:16px;
+}
+.memberSummary caption span.activeTableTab span {
+ white-space:nowrap;
+ padding-top:5px;
+ padding-left:12px;
+ padding-right:12px;
+ margin-right:3px;
+ display:inline-block;
+ float:left;
+ background-color:#F8981D;
+ height:16px;
+}
+.memberSummary caption span.tableTab span {
+ white-space:nowrap;
+ padding-top:5px;
+ padding-left:12px;
+ padding-right:12px;
+ margin-right:3px;
+ display:inline-block;
+ float:left;
+ background-color:#4D7A97;
+ height:16px;
+}
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
+ padding-top:0px;
+ padding-left:0px;
+ padding-right:0px;
+ background-image:none;
+ float:none;
+ display:inline;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
+ display:none;
+ width:5px;
+ position:relative;
+ float:left;
+ background-color:#F8981D;
+}
+.memberSummary .activeTableTab .tabEnd {
+ display:none;
+ width:5px;
+ margin-right:3px;
+ position:relative;
+ float:left;
+ background-color:#F8981D;
+}
+.memberSummary .tableTab .tabEnd {
+ display:none;
+ width:5px;
+ margin-right:3px;
+ position:relative;
+ background-color:#4D7A97;
+ float:left;
+
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td {
+ text-align:left;
+ padding:0px 0px 12px 10px;
+}
+th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
+td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+ vertical-align:top;
+ padding-right:0px;
+ padding-top:8px;
+ padding-bottom:3px;
+}
+th.colFirst, th.colLast, th.colOne, .constantsSummary th {
+ background:#dee3e9;
+ text-align:left;
+ padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+ white-space:nowrap;
+ font-size:13px;
+}
+td.colLast, th.colLast {
+ font-size:13px;
+}
+td.colOne, th.colOne {
+ font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.useSummary td.colFirst, .useSummary th.colFirst,
+.overviewSummary td.colOne, .overviewSummary th.colOne,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colOne, .memberSummary th.colOne,
+.typeSummary td.colFirst{
+ width:25%;
+ vertical-align:top;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+ font-weight:bold;
+}
+.tableSubHeadingColor {
+ background-color:#EEEEFF;
+}
+.altColor {
+ background-color:#FFFFFF;
+}
+.rowColor {
+ background-color:#EEEEEF;
+}
+/*
+Content styles
+*/
+.description pre {
+ margin-top:0;
+}
+.deprecatedContent {
+ margin:0;
+ padding:10px 0;
+}
+.docSummary {
+ padding:0;
+}
+
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+ font-style:normal;
+}
+
+div.block {
+ font-size:14px;
+ font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+
+td.colLast div {
+ padding-top:0px;
+}
+
+
+td.colLast a {
+ padding-bottom:3px;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+ color:green;
+ padding:0 30px 0 0;
+}
+h1.hidden {
+ visibility:hidden;
+ overflow:hidden;
+ font-size:10px;
+}
+.block {
+ display:block;
+ margin:3px 10px 2px 0px;
+ color:#474747;
+}
+.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
+.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
+.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
+ font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+ font-style:italic;
+}
+
+div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+ font-style:normal;
+}
+
+div.contentContainer ul.blockList li.blockList h2{
+ padding-bottom:0px;
+}
diff --git a/JavaSybaseLink/src/ExecSQLCallable.java b/JavaSybaseLink/src/ExecSQLCallable.java
index 35be9a6..3b29f2a 100644
--- a/JavaSybaseLink/src/ExecSQLCallable.java
+++ b/JavaSybaseLink/src/ExecSQLCallable.java
@@ -69,20 +69,23 @@ public String execSQLJsonSimple()
for (int c = 1; c< colCount+1; c++)
{
Object val = rs.getObject(c);
- if (val == null) continue;
-
- int dataType = meta.getColumnType(c);
- switch (dataType)
- {
- case SybaseDB.TYPE_TIME_STAMP:
- case SybaseDB.TYPE_DATE:
- String my8601formattedDate = df.format(new Date(rs.getTimestamp(c).getTime()));
- row.put(columns[c], my8601formattedDate);
- break;
- default:
- row.put(columns[c], rs.getObject(c));
- }
- //System.out.println(columns[c] + ": " + dataType);
+ if (val == null && request.allowNull){
+ row.put(columns[c], null);
+ continue;
+ } else if (val != null) {
+ int dataType = meta.getColumnType(c);
+ switch (dataType)
+ {
+ case SybaseDB.TYPE_TIME_STAMP:
+ case SybaseDB.TYPE_DATE:
+ String my8601formattedDate = df.format(new Date(rs.getTimestamp(c).getTime()));
+ row.put(columns[c], my8601formattedDate);
+ break;
+ default:
+ row.put(columns[c], rs.getObject(c));
+ }
+ //System.out.println(columns[c] + ": " + dataType);
+ } else continue;
}
}
rs.close();
diff --git a/JavaSybaseLink/src/Main.java b/JavaSybaseLink/src/Main.java
index 101f423..1285398 100644
--- a/JavaSybaseLink/src/Main.java
+++ b/JavaSybaseLink/src/Main.java
@@ -16,43 +16,49 @@ public class Main implements SQLRequestListener {
String password;
SybaseDB db;
StdInputReader input;
+ boolean allownull;
public static void main(String[] args) {
- Main m;
- String pw = "";
- if (args.length != 5 && args.length != 4)
- {
- System.err.println("Expecting the arguments: host, port, dbname, username, password");
- System.exit(1);
- }
- if (args.length == 5)
- pw = args[4];
-
- m = new Main(args[0], Integer.parseInt(args[1]), args[2], args[3], pw);
+ Main m;
+ String pw = "";
+ boolean allowNull = false;
+ if (args.length != 6 && args.length != 5 && args.length != 4)
+ {
+ System.err.println("Expecting the arguments: host, port, dbname, username, password, allownull");
+ System.exit(1);
+ }
+ if (args.length > 4) {
+ pw = args[4];
+ }
+ if (args.length > 5) {
+ allowNull = Boolean.parseBoolean(args[5]);
+ }
+ m = new Main(args[0], Integer.valueOf(Integer.parseInt(args[1])), args[2], args[3], pw, allowNull);
}
- public Main(String host, Integer port, String dbname, String username, String password) {
- this.host = host;
- this.port = port;
- this.dbname = dbname;
- this.username = username;
- this.password = password;
+ public Main(String host, Integer port, String dbname, String username, String password, boolean allowNull) {
+ this.host = host;
+ this.port = port;
+ this.dbname = dbname;
+ this.username = username;
+ this.password = password;
+ this.allownull = allowNull;
- input = new StdInputReader();
- input.addListener(this);
+ input = new StdInputReader(allowNull);
+ input.addListener(this);
- MyProperties props = new MyProperties("sybaseConfig.properties");
- db = new SybaseDB(host, port, dbname, username, password, props.properties);
- if (!db.connect())
- System.exit(1);
+ MyProperties props = new MyProperties("sybaseConfig.properties");
+ db = new SybaseDB(host, port, dbname, username, password, props.properties);
+ if (!db.connect())
+ System.exit(1);
- // send the connected message.
- System.out.println("connected");
+ // send the connected message.
+ System.out.println("connected");
- // blocking call don't do anything under here.
- input.startReadLoop();
- }
+ // blocking call don't do anything under here.
+ input.startReadLoop();
+ }
public void sqlRequest(SQLRequest request)
{
diff --git a/JavaSybaseLink/src/SQLRequest.java b/JavaSybaseLink/src/SQLRequest.java
index 2327af7..c10fd59 100644
--- a/JavaSybaseLink/src/SQLRequest.java
+++ b/JavaSybaseLink/src/SQLRequest.java
@@ -3,8 +3,9 @@
* @author rod
*/
public class SQLRequest {
- int msgId;
- String sql;
- long sentTime;
- long javaStartTime;
+ int msgId;
+ String sql;
+ long sentTime;
+ long javaStartTime;
+ boolean allowNull;
}
diff --git a/JavaSybaseLink/src/StdInputReader.java b/JavaSybaseLink/src/StdInputReader.java
index b99bf3e..52b00a2 100644
--- a/JavaSybaseLink/src/StdInputReader.java
+++ b/JavaSybaseLink/src/StdInputReader.java
@@ -15,10 +15,12 @@ public class StdInputReader {
private List listeners = new ArrayList();
private BufferedReader inputBuffer = new BufferedReader(new InputStreamReader(System.in));
-
- public StdInputReader() {
-
- }
+ private boolean allowNull = false;
+
+ public StdInputReader(boolean allowNull)
+ {
+ this.allowNull = allowNull;
+ }
public void startReadLoop()
{
@@ -43,6 +45,7 @@ private void sendEvent(String sqlRequest)
request.msgId = (Integer)val.get("msgId");
request.sql = (String)val.get("sql");
request.javaStartTime = startTime;
+ request.allowNull = this.allowNull;
} catch (Exception e)
{
request = null;
diff --git a/nbproject/project.properties b/nbproject/project.properties
new file mode 100644
index 0000000..da97eba
--- /dev/null
+++ b/nbproject/project.properties
@@ -0,0 +1,3 @@
+files.encoding=UTF-8
+site.root.folder=
+source.folder=
diff --git a/nbproject/project.xml b/nbproject/project.xml
new file mode 100644
index 0000000..4cefdb2
--- /dev/null
+++ b/nbproject/project.xml
@@ -0,0 +1,9 @@
+
+
+ org.netbeans.modules.web.clientproject
+
+
+ sybase
+
+
+
diff --git a/src/SybaseDB.js b/src/SybaseDB.js
index 9820b2e..191b4fa 100644
--- a/src/SybaseDB.js
+++ b/src/SybaseDB.js
@@ -6,8 +6,9 @@ var fs = require("fs");
//so that it can be called properly from parent packages.
var PATH_TO_JAVA_BRIDGE1 = process.env.PWD + "/node_modules/sybase/JavaSybaseLink/dist/JavaSybaseLink.jar";
var PATH_TO_JAVA_BRIDGE2 = "./JavaSybaseLink/dist/JavaSybaseLink.jar";
+//If AllaowNull is passed 'TRUE', any column's value with null will be added into JSON response as <'column_name': null> otherwise it will be ignored.
-function Sybase(host, port, dbname, username, password, logTiming, pathToJavaBridge)
+function Sybase(host, port, dbname, username, password, logTiming, pathToJavaBridge, allowNull)
{
this.connected = false;
this.host = host;
@@ -16,9 +17,14 @@ function Sybase(host, port, dbname, username, password, logTiming, pathToJavaBri
this.username = username;
this.password = password;
this.logTiming = (logTiming == true);
+ if(allowNull === undefined) {
+ this.allowNull = false;
+ } else {
+ this.allowNull = allowNull;
+ }
this.pathToJavaBridge = pathToJavaBridge;
- if (this.pathToJavaBridge === undefined)
+ if (this.pathToJavaBridge === undefined || this.pathToJavaBridge.trim() === '')
{
if (fs.existsSync(PATH_TO_JAVA_BRIDGE1))
this.pathToJavaBridge = PATH_TO_JAVA_BRIDGE1;
@@ -35,7 +41,7 @@ function Sybase(host, port, dbname, username, password, logTiming, pathToJavaBri
Sybase.prototype.connect = function(callback)
{
var that = this;
- this.javaDB = spawn('java',["-jar",this.pathToJavaBridge, this.host, this.port, this.dbname, this.username, this.password]);
+ this.javaDB = spawn('java',["-jar",this.pathToJavaBridge, this.host, this.port, this.dbname, this.username, this.password, this.allowNull]);
var hrstart = process.hrtime();
this.javaDB.stdout.once("data", function(data) {
diff --git a/test/test.js b/test/test.js
index 190cf6f..8f9cadb 100644
--- a/test/test.js
+++ b/test/test.js
@@ -5,184 +5,184 @@ var P = require("bluebird");
//Configure To Connect To Your database here:
var host = '10.0.0.141',
- port = 5000,
- user = 'sa',
- pw = '',
- db = "exchange_wl1";
+ port = 5000,
+ user = 'sa',
+ pw = '',
+ db = "exchange_wl1";
describe("Node Sybase Bridge", function() {
-
- var subject;
- var connectError;
-
- before(function(done){
- subject = new Sybase(host, port, db, user, pw, true);
- subject.connect(function(err) {
- connectError = err;
- done();
- });
- });
-
- after(function(done) {
- subject.disconnect();
- done();
- });
-
- it("Connect", function(done) {
- expect(connectError).to.equal(null);
- expect(subject.isConnected()).to.equal(true);
- done();
- });
-
- it("Simple Single Array Result", function(done) {
-
- if (!subject.isConnected()) {
- expect(connectError).to.equal(null);
- done();
- return;
- }
-
- subject.query("select top 1 * from accounts", function(err, data) {
-
- expect(err).to.equal(null);
-
- expect(data).to.be.a('array');
- expect(data.length).to.equal(1);
- done();
- });
-
- });
-
- it('Should work with updates', function(done) {
-
- if (!subject.isConnected()) {
- expect(connectError).to.equal(null);
- done();
- return;
- }
-
- var pquery = P.promisify(subject.query, {context: subject});
- pquery("update accounts set email = 'newemail@gmail.com' where name = 'testuser17'").then(function(results){
-
- console.log('updates returned: ' + JSON.stringify(results));
- console.dir(results);
-
- done();
- }).catch((err)=>{
- done(err);
- });
- });
-
- it('Should work with inserts', function(done) {
-
- if (!subject.isConnected()) {
- expect(connectError).to.equal(null);
- done();
- return;
- }
-
- var pquery = P.promisify(subject.query, {context: subject});
- pquery("select top 2 * from app_log\ninsert into app_log (target, date, lvel, message) values ('testing', getdate(), 'ERROR', 'msg')\ninsert into app_log (target, date, lvel, message) values ('testing2', getdate(), 'ERROR', 'msg')\nselect top 2 * from app_log").then(function(results){
-
- console.log('inserts returned: ' + JSON.stringify(results));
- console.dir(results);
-
- done();
- }).catch((err)=>{
- done(err);
- });
- });
-
- it('Should work with stored procedres', function(done) {
-
- if (!subject.isConnected()) {
- expect(connectError).to.equal(null);
- done();
- return;
- }
-
- var pquery = P.promisify(subject.query, {context: subject});
- pquery("exec sp_test").then(function(results){
-
- console.log('inserts returned: ' + JSON.stringify(results));
- console.dir(results);
-
- done();
- }).catch((err)=>{
- done(err);
- });
- });
-
- it("Multiple async Calls (batch)", function(done) {
-
- if (!subject.isConnected()) {
- expect(connectError).to.equal(null);
- done();
- return;
- }
-
- var pquery = P.promisify(subject.query, {context: subject});
-
- var pArray = [];
-
- for (var i=0; i<5; i++)
- {
- pArray.push(pquery("select top 1 * from accounts"));
- }
-
- P.all(pArray).then(function(results) {
-
- console.log(JSON.stringify(results));
-
- results.forEach(function(data) {
- expect(data).to.be.a('array');
- expect(data.length).to.equal(1);
- });
- done();
-
- }).catch(function(err) {
- done(err);
- });
- });
-
- it("Batch with one error", function(done) {
-
- if (!subject.isConnected()) {
- expect(connectError).to.equal(null);
- done();
- return;
- }
-
- var pquery = P.promisify(subject.query, {context: subject});
-
- var pArray = [];
-
- var badEgg = pquery("select * from tableThatDoesntExist");
- for (var i=0; i<5; i++)
- {
- pArray.push(pquery("select top 1 * from accounts"));
- }
-
- P.all(pArray).then(function(results) {
-
- console.log(JSON.stringify(results));
-
- results.forEach(function(data) {
- expect(data).to.be.a('array');
- expect(data.length).to.equal(1);
- });
-
- }).catch(function(err) {
- done(err);
- });
-
- badEgg.then(function(results) {
- done(new Error("Expected an error from this call."));
- }).catch(function(err) {
- //console.log("error:" + err.message);
- expect(err.message).to.contain("tableThatDoesntExist");
- done();
- });
- });
+
+ var subject;
+ var connectError;
+
+ before(function(done){
+ subject = new Sybase(host, port, db, user, pw, '', ' ', true);
+ subject.connect(function(err) {
+ connectError = err;
+ done();
+ });
+ });
+
+ after(function(done) {
+ subject.disconnect();
+ done();
+ });
+
+ it("Connect", function(done) {
+ expect(connectError).to.equal(null);
+ expect(subject.isConnected()).to.equal(true);
+ done();
+ });
+
+ it("Simple Single Array Result", function(done) {
+
+ if (!subject.isConnected()) {
+ expect(connectError).to.equal(null);
+ done();
+ return;
+ }
+
+ subject.query("select top 1 * from accounts", function(err, data) {
+
+ expect(err).to.equal(null);
+
+ expect(data).to.be.a('array');
+ expect(data.length).to.equal(1);
+ done();
+ });
+
+ });
+
+ it('Should work with updates', function(done) {
+
+ if (!subject.isConnected()) {
+ expect(connectError).to.equal(null);
+ done();
+ return;
+ }
+
+ var pquery = P.promisify(subject.query, {context: subject});
+ pquery("update accounts set email = 'newemail@gmail.com' where name = 'testuser17'").then(function(results){
+
+ console.log('updates returned: ' + JSON.stringify(results));
+ console.dir(results);
+
+ done();
+ }).catch((err)=>{
+ done(err);
+ });
+ });
+
+ it('Should work with inserts', function(done) {
+
+ if (!subject.isConnected()) {
+ expect(connectError).to.equal(null);
+ done();
+ return;
+ }
+
+ var pquery = P.promisify(subject.query, {context: subject});
+ pquery("select top 2 * from app_log\ninsert into app_log (target, date, lvel, message) values ('testing', getdate(), 'ERROR', 'msg')\ninsert into app_log (target, date, lvel, message) values ('testing2', getdate(), 'ERROR', 'msg')\nselect top 2 * from app_log").then(function(results){
+
+ console.log('inserts returned: ' + JSON.stringify(results));
+ console.dir(results);
+
+ done();
+ }).catch((err)=>{
+ done(err);
+ });
+ });
+
+ it('Should work with stored procedres', function(done) {
+
+ if (!subject.isConnected()) {
+ expect(connectError).to.equal(null);
+ done();
+ return;
+ }
+
+ var pquery = P.promisify(subject.query, {context: subject});
+ pquery("exec sp_test").then(function(results){
+
+ console.log('inserts returned: ' + JSON.stringify(results));
+ console.dir(results);
+
+ done();
+ }).catch((err)=>{
+ done(err);
+ });
+ });
+
+ it("Multiple async Calls (batch)", function(done) {
+
+ if (!subject.isConnected()) {
+ expect(connectError).to.equal(null);
+ done();
+ return;
+ }
+
+ var pquery = P.promisify(subject.query, {context: subject});
+
+ var pArray = [];
+
+ for (var i=0; i<5; i++)
+ {
+ pArray.push(pquery("select top 1 * from accounts"));
+ }
+
+ P.all(pArray).then(function(results) {
+
+ console.log(JSON.stringify(results));
+
+ results.forEach(function(data) {
+ expect(data).to.be.a('array');
+ expect(data.length).to.equal(1);
+ });
+ done();
+
+ }).catch(function(err) {
+ done(err);
+ });
+ });
+
+ it("Batch with one error", function(done) {
+
+ if (!subject.isConnected()) {
+ expect(connectError).to.equal(null);
+ done();
+ return;
+ }
+
+ var pquery = P.promisify(subject.query, {context: subject});
+
+ var pArray = [];
+
+ var badEgg = pquery("select * from tableThatDoesntExist");
+ for (var i=0; i<5; i++)
+ {
+ pArray.push(pquery("select top 1 * from accounts"));
+ }
+
+ P.all(pArray).then(function(results) {
+
+ console.log(JSON.stringify(results));
+
+ results.forEach(function(data) {
+ expect(data).to.be.a('array');
+ expect(data.length).to.equal(1);
+ });
+
+ }).catch(function(err) {
+ done(err);
+ });
+
+ badEgg.then(function(results) {
+ done(new Error("Expected an error from this call."));
+ }).catch(function(err) {
+ //console.log("error:" + err.message);
+ expect(err.message).to.contain("tableThatDoesntExist");
+ done();
+ });
+ });
});
\ No newline at end of file