aboutsummaryrefslogtreecommitdiffstats
path: root/lib/odbc/doc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/odbc/doc')
-rw-r--r--lib/odbc/doc/src/databases.xml36
-rw-r--r--lib/odbc/doc/src/error_handling.xml16
-rw-r--r--lib/odbc/doc/src/getting_started.xml16
-rw-r--r--lib/odbc/doc/src/notes.xml41
-rw-r--r--lib/odbc/doc/src/odbc.xml43
5 files changed, 95 insertions, 57 deletions
diff --git a/lib/odbc/doc/src/databases.xml b/lib/odbc/doc/src/databases.xml
index c06327e11d..a6ba0e5245 100644
--- a/lib/odbc/doc/src/databases.xml
+++ b/lib/odbc/doc/src/databases.xml
@@ -4,7 +4,7 @@
<chapter>
<header>
<copyright>
- <year>2002</year><year>2009</year>
+ <year>2002</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>Databases</title>
@@ -99,7 +99,7 @@
<p>Note that when the value of the data to input is a string, it
has to be quoted with <c>'</c>. Example: </p>
<code type="none">
-\011odbc:sql_query(Ref, "INSERT INTO EMPLOYEE VALUES(1, 'Jane', 'Doe', 'F')").
+odbc:sql_query(Ref, "INSERT INTO EMPLOYEE VALUES(1, 'Jane', 'Doe', 'F')").
</code>
</note>
<p>You may also input data using <seealso marker="odbc#param_query">param_query/[3,4]</seealso> and then
@@ -117,7 +117,11 @@
</row>
<row>
<cell align="left" valign="middle">SQL_CHAR(size)</cell>
- <cell align="left" valign="middle">String </cell>
+ <cell align="left" valign="middle">String | Binary (configurable)</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">SQL_WCHAR(size) </cell>
+ <cell align="left" valign="middle">Unicode binary encoded as UTF16 little endian.</cell>
</row>
<row>
<cell align="left" valign="middle">SQL_NUMERIC(p,s) <br></br>
@@ -171,7 +175,11 @@ when p >= 16 </cell>
</row>
<row>
<cell align="left" valign="middle">SQL_VARCHAR(size) </cell>
- <cell align="left" valign="middle">String </cell>
+ <cell align="left" valign="middle">String | Binary (configurable)</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">SQL_WVARCHAR(size) </cell>
+ <cell align="left" valign="middle">Unicode binary encoded as UTF16 little endian.</cell>
</row>
<tcaption>Mapping of ODBC data types to the Erlang data types returned to the Erlang application.</tcaption>
</table>
@@ -190,23 +198,23 @@ when p >= 16 </cell>
</row>
<row>
<cell align="left" valign="middle">SQL_TYPE_TIMESTAMP </cell>
- <cell align="left" valign="middle">String </cell>
+ <cell align="left" valign="middle"> {{YY, MM, DD}, {HH, MM, SS}} </cell>
</row>
<row>
<cell align="left" valign="middle">SQL_LONGVARCHAR </cell>
- <cell align="left" valign="middle">String</cell>
+ <cell align="left" valign="middle">String | Binary (configurable)</cell>
</row>
<row>
<cell align="left" valign="middle">SQL_BINARY</cell>
- <cell align="left" valign="middle">String </cell>
+ <cell align="left" valign="middle">String | Binary (configurable)</cell>
</row>
<row>
<cell align="left" valign="middle">SQL_VARBINARY</cell>
- <cell align="left" valign="middle">String </cell>
+ <cell align="left" valign="middle">String | Binary (configurable)</cell>
</row>
<row>
<cell align="left" valign="middle">SQL_LONGVARBINARY</cell>
- <cell align="left" valign="middle">String </cell>
+ <cell align="left" valign="middle">String | Binary (configurable)</cell>
</row>
<row>
<cell align="left" valign="middle">SQL_TINYINT </cell>
@@ -250,12 +258,12 @@ when p >= 16 </cell>
that contains more than one SQL query. For example, the
following SQLServer-specific statement creates a procedure that
returns a result set containing information about employees
- that work at the department and and a result set listing the
+ that work at the department and a result set listing the
customers of that department. </p>
<code type="none">
CREATE PROCEDURE DepartmentInfo (@DepartmentID INT) AS
-\011SELECT * FROM Employee WHERE department = @DepartmentID
-\011SELECT * FROM Customers WHERE department = @DepartmentID
+ SELECT * FROM Employee WHERE department = @DepartmentID
+ SELECT * FROM Customers WHERE department = @DepartmentID
</code>
</section>
diff --git a/lib/odbc/doc/src/error_handling.xml b/lib/odbc/doc/src/error_handling.xml
index 26ad7f9848..c30acc5fdc 100644
--- a/lib/odbc/doc/src/error_handling.xml
+++ b/lib/odbc/doc/src/error_handling.xml
@@ -4,7 +4,7 @@
<chapter>
<header>
<copyright>
- <year>2003</year><year>2009</year>
+ <year>2003</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>Error handling</title>
@@ -126,15 +126,7 @@
c-process will exit. If the c-process crashes/exits it will
bring the erlang-process down too and vice versa i.e. the
connection is terminated.</p>
- <note>
- <p>The function connect/2 will start the odbc application if
- that is not already done. In this case a supervisor information
- log will be produced stating that the odbc application was started
- as a temporary application. It is really the responsibility of the
- application that uses the API too make sure it is started in the
- desired way.</p>
- </note>
-
+
<section>
<title>Error types</title>
<p>The types of errors that may occur can be divide into the
diff --git a/lib/odbc/doc/src/getting_started.xml b/lib/odbc/doc/src/getting_started.xml
index 864c3a7b65..d543ef64d6 100644
--- a/lib/odbc/doc/src/getting_started.xml
+++ b/lib/odbc/doc/src/getting_started.xml
@@ -4,7 +4,7 @@
<chapter>
<header>
<copyright>
- <year>2002</year><year>2009</year>
+ <year>2002</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>Getting started</title>
@@ -108,15 +108,15 @@
to insert many rows in one go. </p>
<code type="none">
6 > odbc:param_query(Ref,"INSERT INTO EMPLOYEE (NR, FIRSTNAME, "
-\011 "LASTNAME, GENDER) VALUES(?, ?, ?, ?)",
-\011 [{sql_integer,[2,3,4,5,6,7,8]},
-\011 {{sql_varchar, 20},
+ "LASTNAME, GENDER) VALUES(?, ?, ?, ?)",
+ [{sql_integer,[2,3,4,5,6,7,8]},
+ {{sql_varchar, 20},
["John", "Monica", "Ross", "Rachel",
"Piper", "Prue", "Louise"]},
-\011 {{sql_varchar, 20},
+ {{sql_varchar, 20},
["Doe","Geller","Geller", "Green",
"Halliwell", "Halliwell", "Lane"]},
-\011 {{sql_char, 1}, ["M","F","M","F","F","F","F"]}]).
+ {{sql_char, 1}, ["M","F","M","F","F","F","F"]}]).
{updated, 7}
</code>
<p>Fetch all data in the table employee </p>
diff --git a/lib/odbc/doc/src/notes.xml b/lib/odbc/doc/src/notes.xml
index 99584efec9..09d78c3248 100644
--- a/lib/odbc/doc/src/notes.xml
+++ b/lib/odbc/doc/src/notes.xml
@@ -20,7 +20,7 @@
under the License.
</legalnotice>
-
+
<title>ODBC Release Notes</title>
<prepared>otp_appnotes</prepared>
<docno>nil</docno>
@@ -31,21 +31,50 @@
<p>This document describes the changes made to the odbc application.
</p>
- <section><title>ODBC 2.10.7</title>
+ <section><title>ODBC 2.10.8</title>
- <section><title>Fixed Bugs and Malfunctions</title>
+ <section><title>Improvements and New Features</title>
<list>
<item>
<p>
- The odbc application can now be compiled on FreeBSD.
- (Thanks to Kenji Rikitake.)</p>
+ ODBC now handles the types SQL_WCHAR and SQL_WVARCHAR.
+ Thanks to Juhani R�nkimies. ODBC also has a new
+ connection option to return all strings as binaries and
+ also expect strings to be binaries in the param_query
+ function. These changes provides some unicode support.</p>
<p>
- Own Id: OTP-8444</p>
+ Own Id: OTP-7452</p>
+ </item>
+ <item>
+ <p>
+ Now supports SQL_TYPE_TIMESTAMP on the format {{YY, MM,
+ DD}, {HH, MM, SS}}. Thanks to Juhani R�nkimies.</p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-8511</p>
</item>
</list>
</section>
+</section>
+
+ <section><title>ODBC 2.10.7</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ The odbc application can now be compiled on FreeBSD.
+ (Thanks to Kenji Rikitake.)</p>
+ <p>
+ Own Id: OTP-8444</p>
+ </item>
+ </list>
+ </section>
+
+
<section><title>Improvements and New Features</title>
<list>
<item>
diff --git a/lib/odbc/doc/src/odbc.xml b/lib/odbc/doc/src/odbc.xml
index 450531c81c..70d8cfbe22 100644
--- a/lib/odbc/doc/src/odbc.xml
+++ b/lib/odbc/doc/src/odbc.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>1999</year><year>2009</year>
+ <year>1999</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>odbc</title>
@@ -101,7 +101,7 @@
odbc_data_type() = sql_integer | sql_smallint | sql_tinyint |
{sql_decimal, precision(), scale()} |
{sql_numeric, precision(), scale()} |
- {sql_char, size()} | {sql_varchar, size()} | {sql_float, precision()} |
+ {sql_char, size()} | {sql_wchar, size()} | {sql_varchar, size()} | {sql_wvarchar, size()}| {sql_float, precision()} |
{sql_float, precision()} | sql_real | sql_double | sql_bit | atom()
</code>
<code type="none">
@@ -141,16 +141,9 @@
<d>An example of a connection string:<c>"DSN=sql-server;UID=aladdin;PWD=sesame"</c>where DSN is your ODBC Data Source Name, UID is a database user id and PWD is the password for that user. These are usually the attributes required in the connection string, but some drivers have other driver specific attributes, for example<c>"DSN=Oracle8;DBQ=gandalf;UID=aladdin;PWD=sesame"</c>where DBQ is your TNSNAMES.ORA entry name e.g. some Oracle specific configuration attribute.</d>
<v>Options = [] | [option()]</v>
<d>All options has default values. </d>
- <v>option() = {auto_commit, auto_commit_mode()} | {timeout, milliseconds()} | {tuple_row, tuple_mode()} | {scrollable_cursors, use_scrollable_cursors()} | {trace_driver, trace_mode()} </v>
- <d>The default timeout is infinity </d>
- <v>auto_commit_mode() = on | off </v>
- <d>Default is on.</d>
- <v>tuple_mode() = on | off </v>
- <d>Default is on. The option is deprecated and should not be used in new code.</d>
- <v>use_scrollable_cursors() = on | off </v>
- <d>Default is on.</d>
- <v>trace_mode() = on | off </v>
- <d>Default is off.</d>
+ <v>option() = {auto_commit, on | off} | {timeout, milliseconds()}
+ | {binary_strings, on | off} | {tuple_row, on | off} | {scrollable_cursors, on | off} |
+ {trace_driver, on | off} </v>
<v>Ref = connection_reference() - should be used to access the connection. </v>
<v>Reason = port_program_executable_not_found | common_reason()</v>
</type>
@@ -161,21 +154,36 @@
to handle the connection. These processes will terminate if
the process that created the connection dies or if you call
disconnect/1.</p>
- <p>If automatic commit mode is turned on, each query will be
+
+ <p>If automatic commit mode is turned on, each query will be
considered as an individual transaction and will be
automatically committed after it has been executed. If you want
more than one query to be part of the same transaction the automatic
commit mode should be turned off. Then you will have to call
commit/3 explicitly to end a transaction. </p>
+
+ <p>The default timeout is infinity </p>
+
+ <p> >If the option binary_strings is turned on all strings
+ will be returned as binaries and strings inputed to
+ param_query will be expected to be binaries. The user needs
+ to ensure that the binary is in an encoding that the
+ database expects. By default this option is turned off.</p>
+
<p>As default result sets are returned as a lists of
tuples. The <c>TupleMode</c> option still exists to keep some
degree of backwards compatibility. If the option is set to
off, result sets will be returned as a lists of lists
instead of a lists of tuples.</p>
+
<p>Scrollable cursors are nice but causes some overhead. For
some connections speed might be more important than flexible
data access and then you can disable scrollable cursor for a
- connection, limiting the API but gaining speed</p>
+ connection, limiting the API but gaining speed.</p>
+
+ <note><p>Turning the scrollable_cursors option off is noted
+ to make old odbc-drivers able to connect that will otherwhise fail.</p></note>
+
<p>If trace mode is turned on this tells the ODBC driver to
write a trace log to the file SQL.LOG that is placed in the
current directory of the erlang emulator. This information
@@ -183,6 +191,7 @@
erlang ODBC application, and it might be relevant for you to
send this file to our support. Otherwise you will probably
not have much use of this.</p>
+
<note>
<p>For more information about the <c>ConnectStr</c> see
description of the function SQLDriverConnect in [1].</p>
@@ -302,7 +311,7 @@
capital letters, alas it is not currently supported by the
param_query function. Too know which Erlang data type
corresponds to an ODBC data type see the Erlang to ODBC
- data type<seealso marker="databases#type">mapping</seealso> in the User's Guide.</p>
+ data type <seealso marker="databases#type">mapping</seealso> in the User's Guide.</p>
</note>
</desc>
</func>