summaryrefslogtreecommitdiffstats
path: root/connectivity/workben/skeleton/how_to_write_a_driver.txt
diff options
context:
space:
mode:
Diffstat (limited to 'connectivity/workben/skeleton/how_to_write_a_driver.txt')
-rw-r--r--connectivity/workben/skeleton/how_to_write_a_driver.txt69
1 files changed, 69 insertions, 0 deletions
diff --git a/connectivity/workben/skeleton/how_to_write_a_driver.txt b/connectivity/workben/skeleton/how_to_write_a_driver.txt
new file mode 100644
index 000000000..e336f3664
--- /dev/null
+++ b/connectivity/workben/skeleton/how_to_write_a_driver.txt
@@ -0,0 +1,69 @@
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This file incorporates work covered by the following license notice:
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed
+# with this work for additional information regarding copyright
+# ownership. The ASF licenses this file to you under the Apache
+# License, Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.apache.org/licenses/LICENSE-2.0 .
+#
+
+How to write my own sdbc driver
+
+all example files can be found in connectivity/workben/skeleton
+
+Pre implementation steps
+- copy all files from connectivity/workben/skeleton into your new created directory under
+ connectivity/source/drivers and rename the first char of the files to one which isn't used so far
+ ( please have a look at the other drivers )
+- search all occurrences of skeleton and replace them to a name which you prefer
+
+1. Implement a class called driver or modify the existing skeleton -> have a look at SDriver.?xx
+2. Implement a class called connection -> have a look at SConnection.?xx
+3. Have a look at the DatabaseMetaData -> see SDatabaseMetaData.cxx
+ The methods which should be implemented at least are
+ - getTableTypes
+ - getTables
+ - getTypeInfo
+ - getColumns
+
+4. You need a statement to show/access some data -> have a look at SStatement.cxx
+ -> especially executeQuery()
+
+5. The ResultSet: without you see nothing -> look at SResultSet.cxx
+6. The ResultSetMetaData needed to get some information about what are waiting for us
+ -> look at SResultSetMetaData.cxx
+
+7. The prepared statement is the last class we have to implement now
+ -> you have to allow statements like "SELECT * FROM table WHERE id = ?"
+
+
+8. insert entry in version.mk
+# ----------------------------SKELETON settings-----------------------------------#
+# target
+SKELETON_TARGET=skeleton
+
+# the major
+SKELETON_MAJOR=2
+# the minor
+SKELETON_MINOR=0
+# the micro
+SKELETON_MICRO=0
+
+# this is a c++ compatible library
+SKELETON_CPP=1
+
+SKELETON=$(SKELETON_TARGET_TARGET)_$(CMPEXT)
+
+
+9. copy dll to program dir of office and register the dll
+
+10. congratulations you have now implement your own driver :-)