MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:pharvey Date:December 19 2006 4:22pm
Subject:Connector/ODBC 5 commit: r755 - in trunk: SDK/C/Library doc/Project
View as plain text  
Added:
   trunk/doc/Project/ConnectorODBC5.planner
Modified:
   trunk/SDK/C/Library/MYODBCC.cpp
Log:
- prime project doc with a planner/gantt


Modified: trunk/SDK/C/Library/MYODBCC.cpp
===================================================================
--- trunk/SDK/C/Library/MYODBCC.cpp	2006-12-19 01:45:01 UTC (rev 754)
+++ trunk/SDK/C/Library/MYODBCC.cpp	2006-12-19 16:22:44 UTC (rev 755)
@@ -3612,6 +3612,7 @@
 
 BOOL MYODBCC::isDescBindType( SQLINTEGER nBindType )
 {
+    /*! \todo these values look suspect... */
     switch ( nBindType )
     {
         case SQL_BIND_BY_COLUMN:

Added: trunk/doc/Project/ConnectorODBC5.planner
===================================================================
--- trunk/doc/Project/ConnectorODBC5.planner	2006-12-19 01:45:01 UTC (rev 754)
+++ trunk/doc/Project/ConnectorODBC5.planner	2006-12-19 16:22:44 UTC (rev 755)
@@ -0,0 +1,379 @@
+<?xml version="1.0"?>
+<project name="Connector/ODBC v5" company="MySQL" manager="Mark Matthews" phase=""
project-start="20061216T000000Z" mrproject-version="2" calendar="1">
+  <properties/>
+  <phases>
+    <phase name="Beta 11"/>
+    <phase name="Beta 12"/>
+    <phase name="GA 1"/>
+  </phases>
+  <calendars>
+    <day-types>
+      <day-type id="0" name="Working" description="A default working day"/>
+      <day-type id="1" name="Nonworking" description="A default non working day"/>
+      <day-type id="2" name="Use base" description="Use day from base calendar"/>
+    </day-types>
+    <calendar id="1" name="Default">
+      <default-week mon="0" tue="0" wed="0" thu="0" fri="0" sat="1" sun="1"/>
+      <overridden-day-types>
+        <overridden-day-type id="0">
+          <interval start="0800" end="1200"/>
+          <interval start="1300" end="1700"/>
+        </overridden-day-type>
+      </overridden-day-types>
+      <days/>
+    </calendar>
+  </calendars>
+  <tasks>
+    <task id="1" name="Development" note="&#10;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work">
+      <task id="2" name="Environment" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+        <task id="3" name="Attributes" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+          <task id="4" name="SQL_ATTR_CONNECTION_POOLING" note="Default =
SQL_CP_DEFAULT.&#10;We need to make our driver fully thread-safe.&#10;We can
implement this in the driver for case when app linked directly to driver.&#10;"
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work">
+            <task id="5" name="SQL_CP_OFF" note="" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="6" name="SQL_CP_ONE_PER_DRIVER" note="" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="7" name="SQL_CP_ONE_PER_HENV" note="" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="8" name="SQL_ATTR_CP_MATCH" note="Default =
SQL_CP_MATCH_DEFAULT.&#10;We can implement this for case when app linked directly to
driver." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work">
+            <task id="9" name="SQL_CP_STRICT_MATCH" note="" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="10" name="SQL_CP_RELAXED_MATCH" note="" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="11" name="SQL_ATTR_ODBC_VERSION" note="We need to ensure that all
behavioural changes, based upon ver, are accounted for." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work">
+            <task id="12" name="SQL_OV_ODBC3" note="Default." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="13" name="SQL_OV_ODBC2" note="" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="14" name="SQL_ATTR_OUTPUT_NTS" note="" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work">
+            <task id="15" name="SQL_TRUE" note="Default." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="16" name="SQL_FALSE" note=" SQL_FALSE returns SQL_ERROR and
SQLSTATE HYC00 (Optional feature not implemented)" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="100" priority="0"
type="normal" scheduling="fixed-work"/>
+          </task>
+        </task>
+        <task id="17" name="Functions" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+          <task id="18" name="SQLAllocHandle" note="Alloc environment." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="19" name="SQLEndTran" note="Request that a commit or rollback
operation be performed for all connections for this environment." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="20" name="SQLFreeHandle" note="Frees environment handle."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="21" name="SQLGetEnvAttr" note="Returns the current setting of an
environment attribute." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="22" name="SQLSetEnvAttr" note="Sets attributes that govern aspects
of environments." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+        </task>
+      </task>
+      <task id="23" name="Connection" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+        <task id="24" name="Attributes" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+          <task id="25" name="SQL_ATTR_ACCESS_MODE" note="This is used by the driver
or data source as an indicator that the connection is not required to support SQL
statements that cause updates to occur." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+            <task id="26" name="SQL_MODE_READ_ONLY" note="ToDo: We can use this to
effect some performance improvements." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+            <task id="27" name="SQL_MODE_READ_WRITE" note="Default." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="28" name="SQL_ATTR_ASYNC_ENABLE" note="Default =
SQL_ASYNC_ENABLE_OFF&#10;&#10;Specifies whether a function called with a statement
on the specified connection is executed asynchronously.&#10;This is connection level
(see also statement level)." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work">
+            <task id="29" name="SQL_ASYNC_ENABLE_OFF" note="" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="30" name="SQL_ASYNC_ENABLE_ON" note="Drivers that operate only
on multithread operating systems do not need to support asynchronous
execution.&#10;&#10;ToDo: We have SQL state checks for this in most places needed
but no plans to implement this at this time.&#10;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="50" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="31" name="SQL_ATTR_AUTO_IPD" note="Specifies whether automatic
population of the IPD after a call to SQLPrepare is supported" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work">
+            <task id="32" name="SQL_TRUE" note="Automatic population of the IPD after
a call to SQLPrepare is supported by the driver.&#10;&#10;ToDo: We are waiting for
the I_S to support it.&#10;&#10;ToDo: Need to get this in at the connection
level.&#10;Currently only found at statement level." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="33" name="SQL_FALSE" note="Automatic population of the IPD after
a call to SQLPrepare is not supported by the driver.&#10;&#10;ToDo: Need to get
this in at the connection level.&#10;Currently only found at statement
level.&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work"/>
+          </task>
+          <task id="34" name="SQL_ATTR_AUTOCOMMIT" note="Specifies whether to use
autocommit or manual-commit mode." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+            <task id="35" name="SQL_AUTOCOMMIT_OFF" note="The driver uses
manual-commit mode, and the application must explicitly commit or roll back transactions
with SQLEndTran.&#10;&#10;ToDo: We need to verify that the implementation works;
&#10;- case where we see multiple doExecute on a doPrepare&#10;- case where we see
batch statement (with or without DDL) and possible multiple doExecute&#10;- is
SQL_ATTR_TXN_ISOLATION being used properly" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="50" priority="0"
type="normal" scheduling="fixed-work"/>
+            <task id="36" name="SQL_AUTOCOMMIT_ON" note="Default.&#10;The driver
uses autocommit mode. Each statement is committed immediately after it is executed."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="37" name="SQL_ATTR_CONNECTION_DEAD" note="Indicates the state of
the connection.&#10;&#10;Connected if STATE_C4 and mysql_ping() ok." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work">
+            <task id="38" name="SQL_CD_TRUE" note="Connection has been lost.&#10;"
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="39" name="SQL_CD_FALSE" note="Connection is still active."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="40" name="SQL_ATTR_CONNECTION_TIMEOUT" note="Default = 0 = no
timeout.&#10;&#10;Number of seconds to wait for any request on the connection to
complete before returning to the application.&#10;&#10;ToDo: We maintain the value
but we need to put it to use.&#10;&#10;" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="50" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="41" name="SQL_ATTR_CURRENT_CATALOG" note="Name of the catalog to
be used by the data source.&#10;Driver sends a USE database statement to the data
source.&#10;We do a mysql_select_db()." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="100" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="42" name="SQL_ATTR_LOGIN_TIMEOUT" note="Default =
SQL_LOGIN_TIMEOUT_DEFAULT = 0 = no timeout&#10;&#10;Number of seconds to wait for
a login request to complete before returning to the
application.&#10;&#10;Implemented with mysql_options()." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="43" name="SQL_ATTR_METADATA_ID" note="Default =
SQL_FALSE&#10;&#10;Determines how the string arguments of catalog functions are
treated.&#10;&#10;SeeAlso: Attribute in statement." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work">
+            <task id="44" name="SQL_TRUE" note="String argument of catalog functions
are treated as identifiers." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+            <task id="45" name="SQL_FALSE" note="String arguments of catalog functions
are not treated as identifiers. &#10;&#10;ToDo: This is implemented but may not be
complete. &#10;Needs review.&#10;" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="50" priority="0"
type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="46" name="SQL_ATTR_ODBC_CURSORS" note="Specifying how the Driver
Manager uses the ODBC cursor library.&#10;Try to support DM attributes in case app is
linked directly to us." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work">
+            <task id="47" name="SQL_CUR_USE_IF_NEEDED" note="Uses the ODBC cursor
library only if it is needed.&#10;Of course, if app linked directly to driver and this
is requested - we will say SQL_CUR_USE_DRIVER." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="100" priority="0"
type="normal" scheduling="fixed-work"/>
+            <task id="48" name="SQL_CUR_USE_ODBC" note="The Driver Manager uses the
ODBC cursor library.&#10;We return error for this. &#10;It does not make sense
even if app linked directly to driver." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="100" priority="0"
type="normal" scheduling="fixed-work"/>
+            <task id="49" name="SQL_CUR_USE_DRIVER" note="Default.&#10;Uses the
scrolling capabilities of the driver.&#10;" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="100" priority="0"
type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="50" name="SQL_ATTR_PACKET_SIZE" note="Default = min(client,server)
= 16M (usually).&#10;&#10;The network packet size in bytes.&#10;&#10;ToDo:
We maintain this value but we do not make use of it.&#10;We can probably make use of
it. &#10;Also; we need to get the real value instead of using 16M." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="20" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="51" name="SQL_ATTR_QUIET_MODE" note="Default =
0.&#10;&#10;Window handle (parent window handle) to use for dialogs.&#10;No
dialogs are displayed if null.&#10;Does not apply for
SQLDriverConnect.&#10;&#10;ToDo: Currently maintained but not used.&#10;Use
this for SQLBrowseConnect etc." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="50" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="52" name="SQL_ATTR_TRACE" note="Default = SQL_OPT_TRACE_DEFAULT =
SQL_OPT_TRACE_OFF&#10;&#10;Tell the Driver Manager whether to perform
tracing.&#10;&#10;We implement in case app links directly to driver." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work">
+            <task id="53" name="SQL_OPT_TRACE_OFF" note="Default.&#10;"
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="54" name="SQL_OPT_TRACE_ON" note="Turn trace on.
&#10;&#10;ToDo: We maintain value but not use. &#10;We should use this."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="50" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="55" name="SQL_ATTR_TRACEFILE" note="Default =
SQL_OPT_TRACE_FILE_DEFAULT.&#10;&#10;String containing the name of the trace
file.&#10;This is meant for the DM but we implement for case when app linked directly
to driver.&#10;&#10;ToDo: We maintain value but - like SQL_ATTR_TRACE - we need to
make this useful.&#10;&#10;Note: Unlike the ODBC spec. - we MUST have a connection
handle." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="50" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="56" name="SQL_ATTR_TRANSLATE_LIB" note="Default =
null.&#10;&#10;String containing the name of a library containing the functions
SQLDriverToDataSource and SQLDataSourceToDriver that the driver accesses to perform tasks
such as character set translation.&#10;&#10;A default translation DLL can be
specified in the ODBC initialization file.&#10;&#10;ToDo: We should consider using
this method to translate char data to/from driver and data source.&#10; " work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="50" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="57" name="SQL_ATTR_TRANSLATE_OPTION" note="Flag value that is
passed to the translation DLL.&#10;&#10;ToDo: We maintain value but its not used.
&#10;Use this value when/if SQL_ATTR_TRANSLATE_LIB is used.&#10;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="58" name="SQL_ATTR_TXN_ISOLATION" note="Bitmask that sets the
transaction isolation level for the current connection.&#10;&#10;ToDo: Verify
functionality." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work">
+            <task id="59" name="SQL_TXN_SERIALIZABLE" note="&quot;SET SESSION
TRANSACTION ISOLATION LEVEL SERIALIZABLE&quot;" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="90" priority="0"
type="normal" scheduling="fixed-work"/>
+            <task id="60" name="SQL_TXN_REPEATABLE_READ" note="&quot;SET SESSION
TRANSACTION ISOLATION LEVEL REPEATABLE READ&quot;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="90" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="61" name="SQL_TXN_READ_COMMITTED" note="&quot;SET SESSION
TRANSACTION ISOLATION LEVEL READ COMMITTED&quot;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="90" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="62" name="SQL_TXN_READ_UNCOMMITTED" note="&quot;SET SESSION
TRANSACTION ISOLATION LEVEL READ UNCOMMITTED&quot;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="90" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+        </task>
+        <task id="63" name="Functions" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+          <task id="64" name="SQLAllocHandle" note="Alloc connection." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="65" name="SQLBrowseConnectW" note="Connects via connection
attribute discovery.&#10;&#10;ToDo:&#10;- verify it works&#10;- support
SQL_ATTR_QUIET_MODE?&#10;-create an ANSI version for case when ANSI apps link directly
to driver" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="80" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="66" name="SQLConnectW" note="Establishes connections to a driver
and a data source.&#10;&#10;ToDo: May want to add more DSN attributes. Certianly
for debug/trace. &#10;We want to keep these to minimum." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="90" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="67" name="SQLDisconnect" note="Closes the connection associated
with a specific connection handle." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="100" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="68" name="SQLDriverConnectW" note="SQLDriverConnect is an
alternative to SQLConnect. It supports data sources that require more connection
information than the three arguments in SQLConnect.&#10;&#10;ToDo: &#10;-
Address crash upon exit.&#10;- Add support for any additional connection attributes."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="90" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="69" name="SQLEndTran" note="Request that a commit or rollback
operation be performed on all statements for this connection." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="70" name="SQLFreeHandle" note="Frees connection handle."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="71" name="SQLGetConnectAttrW" note="Returns the current setting of
a connection attribute." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="72" name="SQLGetFunctions" note="Returns information about whether
a driver supports a specific ODBC function.&#10;&#10;Note: Some deprecated
functions may be implemented later - this func will need to be updated." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="73" name="SQLGetInfo" note="Returns general information about the
driver and data source associated with a connection.&#10;&#10;ToDo: &#10;-
many of the InfoTypes need to be reviewed and some optimized for
storage&#10;&#10;Note: &#10;- some InfoTypes will change as features are
completed and exposed" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="90" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="74" name="SQLNativeSqlW" note="Returns the SQL string as modified
by the driver.&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="75" name="SQLSetConnectAttr" note="Sets attributes that govern
aspects of connections." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="76" name="SQLSetConnectOptionW" note="Deprecated. Replaced by
SQLSetConnectAttr.&#10;&#10;Implemented to support ODBC v2 apps linked directly to
the driver.&#10;&#10;Note: MS Access 2000 &amp; MS Driver Manager has been
observed calling this function when it is found in the driver (prefers it over newer
funcs).&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+        </task>
+      </task>
+      <task id="77" name="Statement" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+        <task id="78" name="Attributes" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+          <task id="79" name="SQL_ATTR_APP_PARAM_DESC" note="Default = implicit/auto
allocated APD&#10;&#10;The handle to the APD for subsequent calls to SQLExecute
and SQLExecDirect on the statement handle." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="100" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="80" name="SQL_ATTR_APP_ROW_DESC" note="Default = implicit/auto
allocated ARD.&#10;&#10;The handle to the ARD for subsequent fetches on the
statement handle." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="81" name="SQL_ATTR_ASYNC_ENABLE" note="Default =
SQL_ASYNC_ENABLE_OFF&#10;&#10;Specifies whether a function called with the
specified statement is executed asynchronously.&#10;This is statement level (see also
connection)." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work">
+            <task id="82" name="SQL_ASYNC_ENABLE_OFF" note="" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="83" name="SQL_ASYNC_ENABLE_ON" note="Drivers that operate only
on multithread operating systems do not need to support asynchronous
execution.&#10;&#10;ToDo: We have SQL state checks for this in most places needed
but no plans to implement this at this time.&#10;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="50" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="84" name="SQL_ATTR_CONCURRENCY" note="Default = SQL_CONCUR_DEFAULT
= SQL_CONCUR_READ_ONLY&#10;&#10;Specifies the cursor concurrency." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work">
+            <task id="85" name="SQL_CONCUR_READ_ONLY" note="Cursor is read-only. No
updates are allowed." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+            <task id="86" name="SQL_CONCUR_LOCK" note="Cursor uses the lowest level of
locking sufficient to ensure that the row can be updated.&#10;&#10;ToDo: Fully
implement this.&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work"/>
+            <task id="87" name="SQL_CONCUR_ROWVER" note="Cursor uses optimistic
concurrency control, comparing row versions such as SQLBase ROWID or Sybase
TIMESTAMP.&#10;&#10;ToDo: Fully implement this.&#10;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="88" name="SQL_CONCUR_VALUES" note="Cursor uses optimistic
concurrency control, comparing values.&#10;&#10;ToDo: Fully implement
this.&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work"/>
+          </task>
+          <task id="89" name="SQL_ATTR_CURSOR_SCROLLABLE" note="Default =
SQL_NONSCROLLABLE&#10;&#10;Specifies the level of support that the application
requires.&#10;&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work">
+            <task id="90" name="SQL_NONSCROLLABLE" note="Scrollable cursors are not
required on the statement handle." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="100" priority="0"
type="normal" scheduling="fixed-work"/>
+            <task id="91" name="SQL_SCROLLABLE" note="Scrollable cursors are required
on the statement handle.&#10;&#10;ToDo: This depends upon SQL_SO_STATIC and such
being supported." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="50" priority="0" type="normal"
scheduling="fixed-work"/>
+          </task>
+          <task id="92" name="SQL_ATTR_CURSOR_SENSITIVITY" note="Default =
SQL_UNSPECIFIED&#10;&#10;Specifies whether cursors on the statement handle make
visible the changes made to a result set by another cursor." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work">
+            <task id="93" name="SQL_INSENSITIVE" note="All cursors on the statement
handle show the result set without reflecting any changes made to it by any other cursor."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="90" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="94" name="SQL_UNSPECIFIED" note="Cursors on the statement handle
may make visible none, some, or all such changes." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="100" priority="0"
type="normal" scheduling="fixed-work"/>
+            <task id="95" name="SQL_SENSITIVE" note="All cursors on the statement
handle make visible all changes made to a result set by another
cursor.&#10;&#10;ToDo: We can support this with sufficient smarts." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="96" name="SQL_ATTR_CURSOR_TYPE" note="Default =
SQL_CURSOR_TYPE_DEFAULT = SQL_CURSOR_FORWARD_ONLY &#10;&#10;Specifies the cursor
type." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work">
+            <task id="97" name="SQL_CURSOR_FORWARD_ONLY" note="The cursor only scrolls
forward." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+            <task id="98" name="SQL_CURSOR_STATIC" note="A static cursor is one in
which the result set appears to be static. &#10;It does not usually detect changes
made to the membership, order, or values of the result set after the cursor is opened.
&#10;For example, suppose a static cursor fetches a row and another application then
updates that row. &#10;If the static cursor refetches the row, the values it sees are
unchanged, despite the changes made by the other application.&#10;&#10;ToDo: Fully
implement." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="50" priority="0" type="normal"
scheduling="fixed-work"/>
+            <task id="99" name="SQL_CURSOR_KEYSET_DRIVEN" note="A keyset-driven cursor
lies between a static and a dynamic cursor in its ability to detect changes. &#10;Like
a static cursor, it does not always detect changes to the membership and order of the
result set. &#10;Like a dynamic cursor, it does detect changes to the values of rows
in the result set (subject to the isolation level of the transaction, as set by the
SQL_ATTR_TXN_ISOLATION connection attribute).&#10;&#10;ToDo: Fully implement."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="25" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="100" name="SQL_CURSOR_DYNAMIC" note="A dynamic cursor is just
that: dynamic. &#10;It can detect any changes made to the membership, order, and
values of the result set after the cursor is opened. &#10;For example, suppose a
dynamic cursor fetches two rows and another application then updates one of those rows and
deletes the other. &#10;If the dynamic cursor then attempts to refetch those rows, it
will not find the deleted row but will return the new values for the updated
row.&#10;&#10;ToDo: Fully implement." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="25" priority="0"
type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="101" name="SQL_ATTR_ENABLE_AUTO_IPD" note="Default =
SQL_FALSE&#10;&#10;Specifies whether automatic population of the IPD is
performed." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work">
+            <task id="102" name="SQL_TRUE" note="Automatic population of the IPD after
a call to SQLPrepare is supported by the driver.&#10;&#10;ToDo: We are waiting for
the I_S to support it." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="50" priority="0" type="normal"
scheduling="fixed-work"/>
+            <task id="103" name="SQL_FALSE" note="Automatic population of the IPD
after a call to SQLPrepare is not supported by the driver." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="104" name="SQL_ATTR_FETCH_BOOKMARK_PTR" note="Default =
null&#10;&#10;A pointer that points to a binary bookmark
value.&#10;&#10;ToDo: Need to fully implement bookmarks." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="10" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="105" name="SQL_ATTR_IMP_PARAM_DESC" note="The handle to the IPD.
&#10;The value of this attribute is the descriptor allocated when the statement was
initially allocated. " work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="106" name="SQL_ATTR_IMP_ROW_DESC" note="The handle to the IRD.
&#10;The value of this attribute is the descriptor allocated when the statement was
initially allocated." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="107" name="SQL_ATTR_KEYSET_SIZE" note="Default =
SQL_KEYSET_SIZE_DEFAULT = 0&#10;&#10;Specifies the number of rows in the keyset
for a keyset-driven cursor.&#10;&#10;ToDo: We maintain a value but at present we
do not use it. &#10;&#10;Note: Setting to &gt; 1 creates a block
cursor.&#10;&#10;See SQL_ATTR_CURSOR_TYPE." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="90" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="108" name="SQL_ATTR_MAX_LENGTH" note="Default =
SQL_MAX_LENGTH_DEFAULT = 0&#10;&#10;Specifies the maximum amount of data that the
driver returns from a character or binary column.&#10;&#10;ToDo: We maintain the
value and reference it in a few places in code.&#10;Need to fully implement."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="80" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="109" name="SQL_ATTR_MAX_ROWS" note="Default = SQL_MAX_ROWS_DEFAULT
= 0&#10;&#10;Maximum number of rows to return to the application for a SELECT
statement.&#10;&#10;ToDo: We maintain the value and reference it in a few places
in code.&#10;Need to fully implement." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="80" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="110" name="SQL_ATTR_METADATA_ID" note="Default =
SQL_FALSE&#10;&#10;Determines how the string arguments of catalog functions are
treated.&#10;&#10;SeeAlso: attribute in connection" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work">
+            <task id="111" name="SQL_TRUE" note="String argument of catalog functions
are treated as identifiers." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work"/>
+            <task id="112" name="SQL_FALSE" note="String arguments of catalog
functions are not treated as identifiers. &#10;&#10;ToDo: This is implemented but
may not be complete. &#10;Needs review.&#10;&#10;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="50" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="113" name="SQL_ATTR_NOSCAN" note="Default = SQL_NOSCAN_DEFAULT =
SQL_NOSCANS_OFF&#10;&#10;Indicates whether the driver should scan SQL strings for
escape sequences.&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work">
+            <task id="114" name="SQL_NOSCAN_OFF" note="The driver scans SQL strings
for escape sequences.&#10;&#10;ToDo: Need to process escape sequences."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="115" name="SQL_NOSCAN_ON" note="The driver does not scan SQL
strings for escape sequences.&#10;&#10;ToDo: This currently the default behaviour
since we are not escaping much at the moment.&#10;Need to check this before processing
escape sequences." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="90" priority="0" type="normal"
scheduling="fixed-work"/>
+          </task>
+          <task id="116" name="SQL_ATTR_PARAM_BIND_OFFSET_PTR" note="Default =
null&#10;&#10;Points to an offset added to pointers to change binding of dynamic
parameters.&#10;&#10;ToDo: We maintain this but its not used at the moment.
&#10;Need to fully implement." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="10" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="117" name="SQL_ATTR_PARAM_BIND_TYPE" note="Default =
SQL_PARAM_BIND_BY_COLUMN = SQL_BIND_BY_COLUMN&#10;&#10;Indicates the binding
orientation to be used for dynamic parameters.&#10;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work">
+            <task id="118" name="SQL_PARAM_BIND_BY_COLUMN" note="Column-wise binding."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="119" name="row wise binding" note="To select row-wise binding,
this field is set to the length of the structure or an instance of a buffer that will be
bound to a set of dynamic parameters.&#10;&#10;ToDo: Fully
implement.&#10;&#10;SeeAlso: SQL_ATTR_ROW_BIND_TYPE" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="120" name="SQL_ATTR_PARAM_OPERATION_PTR" note="Default =
null&#10;&#10;Points to an array of SQLUSMALLINT values used to ignore a parameter
during execution of an SQL statement.&#10;&#10;ToDo: Fully implement."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="121" name="SQL_ATTR_PARAM_STATUS_PTR" note="Default =
null&#10;&#10;Points to an array of SQLUSMALLINT values containing status
information for each row of parameter values after a call to SQLExecute or
SQLExecDirect.&#10;&#10;ToDo: We maintain value but we do not use.&#10;Need to
fully implement." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="20" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="122" name="SQL_ATTR_PARAMS_PROCESSED_PTR" note="Default =
null&#10;&#10;A buffer in which to return the number of sets of parameters that
have been processed, including error sets.&#10;&#10;ToDo: We maintain value but we
do not use.&#10;Need to fully implement." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="20" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="123" name="SQL_ATTR_PARAMSET_SIZE" note="Default =
1&#10;&#10;Specifies the number of values for each
parameter.&#10;&#10;ToDo: We maintain value but we do not use.&#10;Need to
fully implement." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="124" name="SQL_ATTR_QUERY_TIMEOUT" note="Default =
SQL_QUERY_TIMEOUT_DEFAULT = 0&#10;&#10;Number of seconds to wait for an SQL
statement to execute before returning to the application.&#10;&#10;ToDo: We
maintain value but we do not use.&#10;Need to fully implement." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="50" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="125" name="SQL_ATTR_RETRIEVE_DATA" note="Default = SQL_RD_DEFAULT
= SQL_RD_ON&#10;&#10;To retrieve data after it positions the cursor - or
not.&#10;&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work">
+            <task id="126" name="SQL_RD_ON" note="" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="127" name="SQL_RD_OFF" note="Do not retrieve data after it
positions the cursor.&#10;&#10;ToDo: Need to fully implement." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="20" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="128" name="SQL_ATTR_ROW_ARRAY_SIZE" note="Default =
SQL_ROWSET_SIZE_DEFAULT = 1&#10;&#10;Number of rows returned by each call to
SQLFetch or SQLFetchScroll.&#10;&#10;ToDo: Need to fully implement." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="50" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="129" name="SQL_ATTR_ROW_BIND_OFFSET_PTR" note="Default =
null&#10;&#10;Points to an offset added to pointers to change binding of column
data.&#10;&#10;ToDo: We maintain value but not used.&#10;Need to fully
implement." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="130" name="SQL_ATTR_ROW_BIND_TYPE" note="Default =
SQL_BIND_BY_COLUMN&#10;&#10;Binding orientation to be used when SQLFetch or
SQLFetchScroll is called on the associated statement. " work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work">
+            <task id="131" name="SQL_BIND_BY_COLUMN" note="Column-wise binding."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="132" name="row wise binding" note="Row-wise binding is selected
by setting the value to the length of a structure or an instance of a buffer into which
result columns will be bound.&#10;&#10;ToDo: Fully
implement.&#10;&#10;SeeAlso: SQL_ATTR_ROW_BIND_TYPE" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="133" name="SQL_ATTR_ROW_NUMBER" note="Number of the current row in
the entire result set.&#10;&#10;ToDo: Verify.&#10;&#10;SeeAlso: Descriptor
RowNumber." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="95" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="134" name="SQL_ATTR_ROW_OPERATION_PTR" note="Default =
null&#10;&#10;Points to an array of SQLUSMALLINT values used to ignore a row
during a bulk operation using SQLSetPos.&#10;&#10;ToDo: Need to verify it works
ok." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="95" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="135" name="SQL_ATTR_ROW_STATUS_PTR" note="Default =
null&#10;&#10;Points to an array of SQLUSMALLINT values containing row status
values after a call to SQLFetch or SQLFetchScroll.&#10;&#10;ToDo: Need to verify
it works ok.&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="95" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="136" name="SQL_ATTR_ROWS_FETCHED_PTR" note="Default =
null&#10;&#10;Points to a buffer in which to return the number of rows fetched
after a call to SQLFetch or SQLFetchScroll etc.&#10;&#10;ToDo: Need to fully
implement.&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="50" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="137" name="SQL_ATTR_SIMULATE_CURSOR" note="Default =
SQL_SC_TRY_UNIQUE&#10;&#10;Specifies whether drivers that simulate positioned
update and delete statements guarantee that such statements affect only one single row."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work">
+            <task id="138" name="SQL_SC_NON_UNIQUE" note="The driver does not
guarantee that simulated positioned update or delete statements will affect only one row."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="139" name="SQL_SC_TRY_UNIQUE" note="The driver attempts to
guarantee that simulated positioned update or delete statements affect only one
row.&#10;&#10;ToDo: Need to fully implement." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="140" name="SQL_SC_UNIQUE" note="The driver guarantees that
simulated positioned update or delete statements affect only one
row.&#10;&#10;ToDo: Need to fully implement." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="141" name="SQL_ATTR_USE_BOOKMARKS" note="Default = SQL_UB_DEFAULT
= SQL_UB_OFF&#10;&#10;Specifies whether an application will use bookmarks with a
cursor:" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work">
+            <task id="142" name="SQL_UB_OFF" note="Bookmarks not used." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="143" name="SQL_UB_VARIABLE" note="Driver will provide variable
length bookmarks.&#10;&#10;ToDo: Fully implement bookmarks." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+        </task>
+        <task id="144" name="Functions" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+          <task id="145" name="SQLAllocHandle" note="Alloc statement." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="146" name="SQLBindCol" note="Bind columns.&#10;&#10;ToDo:
&#10;- ensure all data types supported and data conversion work correctly&#10;-
binding arrays&#10;- binding offsets&#10;- row-wise-binding" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="75" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="147" name="SQLBindParameter" note="Bind
parameters.&#10;&#10;ToDo:&#10;- ensure all data types supported and
conversions working correctly&#10;- complete chunking (see also
SQLParamData/SQLPutData)&#10;- bind array&#10;- row-wise-binding&#10;-
rebinding with offset&#10;- ignoring bound parameters&#10;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="75" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="148" name="SQLBulkOperations" note="Performs bulk insertions and
bulk bookmark operations, including update, delete, and fetch by
bookmark.&#10;&#10;SQLBulkOperations performs bulk insertions and bulk bookmark
operations, including update, delete, and fetch by bookmark.&#10;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work">
+            <task id="149" name="SQL_ADD" note="Add new rows.&#10;&#10;ToDo:
Verify it works." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="50" priority="0" type="normal"
scheduling="fixed-work"/>
+            <task id="150" name="SQL_UPDATE_BY_BOOKMARK" note="ToDo: Need to
implement." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work"/>
+            <task id="151" name="SQL_DELETE_BY_BOOKMARK" note="ToDo: Need to
implement." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work"/>
+            <task id="152" name="SQL_FETCH_BY_BOOKMARK" note="ToDo: Need to
implement." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work"/>
+          </task>
+          <task id="153" name="SQLCancel" note="SQLCancel cancels the processing on a
statement.&#10;&#10;ToDo: Need to implement." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="20" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="154" name="SQLCloseCursor" note="Closes a cursor that has been
opened on a statement and discards pending results.&#10;&#10;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="155" name="SQLColAttribute" note="Returns descriptor information
for a column in a result set.&#10;&#10;ToDo: Consider executing statement so we
can get IRD during a prepare state when we would otherwise have none." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="90" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="156" name="SQLColumnPrivilegesW" note="Returns a list of columns
and associated privileges for the specified table. &#10;&#10;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="157" name="SQLColumnsW" note="Returns the list of column names in
specified tables." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="158" name="SQLDescribeColW" note="Returns the result descriptor -
column name, type, column size, decimal digits, and nullability - for one column in the
result set. " work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="159" name="SQLDescribeParam" note="Returns the description of a
parameter marker associated with a prepared SQL statement.&#10;&#10;ToDo: At this
time we can not load IPD just from given statement commands.&#10;Would be good to
implement this.&#10;&#10;SeeAlso: SQL_ATTR_ENABLE_AUTO_IP&#10;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="80" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="160" name="SQLExecDirectW" note="Prepares and executes the
statement.&#10;&#10;ToDo: &#10;- need to handle positioned
update/delete&#10;- see SQLBindParameter" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="90" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="161" name="SQLExecute" note="Executes a prepared
statement.&#10;&#10;ToDo: &#10;- need to handle positioned
update/delete&#10;- see SQLBindParameters" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="90" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="162" name="SQLFetch" note="Fetches the next rowset of data from
the result set and returns data for all bound columns.&#10;&#10;ToDo: &#10;-
need to fully support block cursor (partially implemented)&#10;- see SQLBindCol"
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="80" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="163" name="SQLFetchScroll" note="Fetches the specified rowset of
data from the result set and returns data for all bound columns.&#10;&#10;ToDo:
&#10;- need to fully support block cursor (partially implemented)&#10;- see
SQLBindCol" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work">
+            <task id="164" name="SQL_FETCH_NEXT" note="Return the next rowset. This is
equivalent to calling SQLFetch.&#10;&#10;ToDo: Verify." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="90" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="165" name="SQL_FETCH_PRIOR" note="Return the prior rowset.
&#10;&#10;ToDo: Verify." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="90" priority="0"
type="normal" scheduling="fixed-work"/>
+            <task id="166" name="SQL_FETCH_FIRST" note="Return the first rowset in the
result set.&#10;&#10;ToDo: Verify." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="90" priority="0"
type="normal" scheduling="fixed-work"/>
+            <task id="167" name="SQL_FETCH_LAST" note="Return the last complete rowset
in the result set.&#10;&#10;ToDo: Verify." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="90" priority="0"
type="normal" scheduling="fixed-work"/>
+            <task id="168" name="SQL_FETCH_ABSOLUTE" note="Return the rowset starting
at row FetchOffset.&#10;&#10;ToDo: Verify." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="90" priority="0"
type="normal" scheduling="fixed-work"/>
+            <task id="169" name="SQL_FETCH_RELATIVE" note="Return the rowset
FetchOffset from the start of the current rowset. &#10;&#10;ToDo: Verify."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="90" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="170" name="SQL_FETCH_BOOKMARK" note="Return the rowset
FetchOffset rows from the bookmark specified by the SQL_ATTR_FETCH_BOOKMARK_PTR statement
attribute.&#10;&#10;ToDo: Need to fully implement bookmarks." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="50" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="171" name="SQLForeignKeysW" note="Returns a list of foreign
keys.&#10;&#10;ToDo: Verify." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="90" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="172" name="SQLFreeHandle" note="Frees statement handle."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="173" name="SQLFreeStmt" note="" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work">
+            <task id="174" name="SQL_ CLOSE" note="Closes the cursor associated with
StatementHandle (if one was defined) and discards all pending results.&#10;"
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="175" name="SQL_DROP" note="Free the
statement.&#10;&#10;This is deprecated but we support for case when an ODBC v2 app
links to driver directly." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+            <task id="176" name="SQL_UNBIND" note="Sets the SQL_DESC_COUNT field of
the ARD to 0, releasing all column buffers bound by SQLBindCol for the given
StatementHandle.&#10;&#10;ToDo: Verify bookmark is not unbound." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="95" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="177" name="SQL_RESET_PARAMS" note="Sets the SQL_DESC_COUNT field
of the APD to 0, releasing all parameter buffers set by SQLBindParameter for the given
StatementHandle.&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+          </task>
+          <task id="178" name="SQLGetCursorNameW" note="Returns the cursor name
associated with a specified statement.&#10;" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="100" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="179" name="SQLGetData" note="Retrieves data for a single column in
the result set.&#10;&#10;ToDo: Ensure that all data types are covered and
conversions are good." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="90" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="180" name="SQLGetStmtAttr" note="Returns the current setting of a
statement attribute." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="181" name="SQLGetStmtOption" note="Deprecated. Replaced by
SQLGetStmtAttr.&#10;&#10;Implemented to support ODBC v2 apps linked directly to
the driver.&#10;&#10;Note: MS Access 2000 &amp; MS Driver Manager has been
observed calling this function when it is found in the driver (prefers it over newer
funcs).&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="182" name="SQLGetTypeInfoW" note="Returns information about data
types supported by the data source.&#10;&#10;ToDo:&#10;- needs
review&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="90" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="183" name="SQLMoreResults" note="Determines whether more results
are available on a statement.&#10;&#10;ToDo: &#10;- complete chunking
work&#10;&#10;SeeAlso:&#10;- SQLParamData, SQLPutData" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="90" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="184" name="SQLNumParams" note="Returns the number of parameters in
an SQL statement.&#10;&#10;ToDo: &#10;- Load IPD during prepare in the
future.&#10;At present we can not load so we rely upon app binding info.&#10;-
When in prepare state we can use our param marker info instead of IPD count" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="90" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="185" name="SQLNumResultCols" note="Returns the number of columns
in a result set.&#10;&#10;ToDo: &#10;- Would be good to get this in prepare
state (before execute).&#10;Currently only possible with server-side
prepare.&#10;- We could silently submit/execute command to get this. :(" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="99" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="186" name="SQLParamData" note="Used in conjunction with SQLPutData
to supply parameter data at statement execution time.&#10;&#10;ToDo:&#10;-
Partially complete. Need to fully complete." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="80" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="187" name="SQLPrepareW" note="Prepares an SQL string for
execution.&#10;&#10;ToDo: &#10;- Need to complete some code reord. work."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="90" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="188" name="SQLPrimaryKeysW" note="Returns the column names that
make up the primary key for a table." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="100" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="189" name="SQLProcedureColumnsW" note="Returns the list of input
and output parameters, as well as the columns that make up the result set for the
specified procedures.&#10;&#10;ToDo:&#10;- Use MCommand to parse the CREATE
PROCEDURE and in this way get the parameter info." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="75" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="190" name="SQLProceduresW" note="Returns the list of procedure
names stored in a specific data source." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="100" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="191" name="SQLPutData" note="Allows an application to send data
for a parameter or column to the driver at statement execution
time.&#10;&#10;ToDo:&#10;- Partially complete. Need to fully complete."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="80" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="192" name="SQLRowCount" note="Returns the number of rows
affected." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="193" name="SQLSetCursorNameW" note="Associates a cursor name with
an active statement. " work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="194" name="SQLSetPos" note="Sets the cursor position in a rowset
and allows an application to refresh data in the rowset or to update or delete data in the
result set." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work">
+            <task id="195" name="SQL_POSITION" note="The driver positions the cursor
on the row specified by RowNumber.&#10;&#10;ToDo: Partially implemented.
&#10;Need to fully implement." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="50" priority="0"
type="normal" scheduling="fixed-work"/>
+            <task id="196" name="SQL_REFRESH" note="The driver positions the cursor on
the row specified by RowNumber and refreshes data in the rowset buffers for that
row.&#10;&#10;ToDo: Partially implemented. &#10;Need to fully implement."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="50" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="197" name="SQL_UPDATE" note="The driver positions the cursor on
the row specified by RowNumber and updates the underlying row of data with the values in
the rowset buffers (the TargetValuePtr argument in SQLBindCol).&#10;&#10;ToDo:
Partially implemented. &#10;Need to fully implement." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="50" priority="0" type="normal" scheduling="fixed-work"/>
+            <task id="198" name="SQL_DELETE " note="The driver positions the cursor on
the row specified by RowNumber and deletes the underlying row of
data.&#10;&#10;ToDo: Partially implemented. &#10;Need to fully implement."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="50" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="199" name="SQLSetStmtAttrW" note="Sets attributes related to a
statement." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="200" name="SQLSetStmtOption" note="Deprecated. Replaced by
SQLSetStmtAttr.&#10;&#10;Implemented to support ODBC v2 apps linked directly to
the driver.&#10;&#10;Note: MS Access 2000 &amp; MS Driver Manager has been
observed calling this function when it is found in the driver (prefers it over newer
funcs).&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="100" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="201" name="SQLSpecialColumnsW" note="Retrieves the following
information about columns within a specified table: &#10;- The optimal set of columns
that uniquely identifies a row in the table.&#10;- Columns that are automatically
updated when any value in the row is updated by a transaction.&#10;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="90" priority="0" type="normal" scheduling="fixed-work">
+            <task id="202" name="SQL_BEST_ROWID" note="Returns the optimal column or
set of columns that, by retrieving values from the column or columns, allows any row in
the specified table to be uniquely identified. &#10;&#10;We try to use the
following in order;&#10;- primary key&#10;- unique index&#10;&#10;ToDo:
Verify.&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="90" priority="0" type="normal"
scheduling="fixed-work"/>
+            <task id="203" name="SQL_ROWVER" note="Returns the column or columns in
the specified table, if any, that are automatically updated by the data source when any
value in the row is updated by any transaction.&#10;&#10;ToDo:&#10;- This
needs some investigation. Currentl return SQL_SUCCESS but ResultSet rows." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="50" priority="0" type="normal" scheduling="fixed-work"/>
+          </task>
+          <task id="204" name="SQLStatisticsW" note="Retrieves a list of statistics
about a single table and the indexes associated with the table. &#10;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="205" name="SQLTablePrivilegesW" note="Returns a list of tables and
the privileges associated with each table." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="100" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="206" name="SQLTablesW" note="Returns the list of table, catalog,
or schema names, and table types, stored in a specific data source.&#10;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+        </task>
+      </task>
+      <task id="207" name="Descriptor" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+        <task id="208" name="Functions" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+          <task id="209" name="SQLAllocHandle" note="Allocate descriptor handle."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="210" name="SQLFreeHandle" note="Frees descriptor handle."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="211" name="SQLCopyDesc" note="Copies descriptor information from
one descriptor handle to another.&#10;&#10;ToDo: Verify." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="90" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="212" name="SQLGetDescField" note="Returns the current setting or
value of a single field of a descriptor record." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="100" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="213" name="SQLGetDescRec" note="Returns the current settings or
values of multiple fields of a descriptor record.&#10;" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="214" name="SQLSetDescFieldW" note="Sets the value of a single
field of a descriptor record." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="100" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="215" name="SQLSetDescRec" note="Sets multiple descriptor fields
that affect the data type and buffer bound to a column or parameter data." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+        </task>
+      </task>
+      <task id="216" name="Diagnostic" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+        <task id="217" name="Functions" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+          <task id="218" name="SQLGetDiagField" note="Returns the current value of a
field of a record of the diagnostic data structure (associated with a specified handle)
that contains error, warning, and status information.&#10;&#10;ToDo: Verify
message format." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="99" priority="0" type="normal"
scheduling="fixed-work"/>
+          <task id="219" name="SQLGetDiagRec" note="Returns the current values of
multiple fields of a diagnostic record.&#10;&#10;ToDo: Verify message format."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="99" priority="0" type="normal" scheduling="fixed-work"/>
+        </task>
+      </task>
+      <task id="220" name="Setup" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+        <task id="221" name="Functions" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+          <task id="222" name="ConfigDSNW" note="Adds, modifies, or deletes data
sources from the system information.&#10;&#10;ToDo:&#10;- May need to put this
into driver dll to avoid a crash." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="75" priority="0"
type="normal" scheduling="fixed-work"/>
+          <task id="223" name="ConfigDriverW" note="Allows a setup program to perform
install and uninstall functions without requiring the program to call
ConfigDSN.&#10;&#10;Note: Not needed so not implemented." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="224" name="ConfigTranslator " note="Returns a default translation
option for a translator.&#10;&#10;Note: Not needed so not implemented."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="100" priority="0" type="normal" scheduling="fixed-work"/>
+        </task>
+      </task>
+      <task id="225" name="Translation" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+        <task id="226" name="Functions" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+          <task id="227" name="SQLDataSourceToDriver" note="The driver calls
SQLDataSourceToDriver to translate alldata (result set data, table names, row counts,
error messages, and so on) passing from the data source to the driver.
&#10;&#10;ToDo: See about implementing/using this?" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+          <task id="228" name="SQLDriverToDataSource" note="The driver calls
SQLDriverToDataSource to translate all data (SQL statements, parameters, and so on)
passing from the driver to the data source.&#10;&#10;ToDo: See about
implementing/using this?" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work"/>
+        </task>
+      </task>
+      <task id="229" name="Porting/Packaging" note="" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work">
+        <task id="230" name="WIN32" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+        <task id="231" name="WIN64" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+        <task id="232" name="Linux32" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+        <task id="233" name="Linux64" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+        <task id="234" name="OSX 10.4" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+      </task>
+      <task id="235" name="Server Prepared Statements" note="ToDo: Get MResultStmt
caught up with all the changes made in MResultRes. " work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+      <task id="236" name="Deprecated Functions" note="ToDo: Consider implementing the
remaining deprecated functions to support older apps which may;&#10;- link directly to
driver&#10;- prefer to calls older functions when they are found to exist (MS Access
2000 &amp; MS Driver Manager for example)" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+      <task id="237" name="ANSI Functions" note="ToDo: Consider implementing ANSI
version of the 'Widechar' functions.&#10;This will help ANSI apps link directly to the
driver." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work"/>
+      <task id="238" name="Improve Thread Safe" note="ToDo: Need to make driver thread
safe.&#10;Lock access to objects while processing in them.&#10;Qt has classes that
may be good for this." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work"/>
+    </task>
+    <task id="239" name="Documentation" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+      <task id="240" name="External" note="For those *using* the
product.&#10;&#10;- User Manual&#10;" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+        <task id="241" name="Examples" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+        <task id="242" name="Tutorial " note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+        <task id="243" name="Requirements/Installation/Configure" note="" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+        <task id="244" name="Introduction to ODBC " note="" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+      </task>
+      <task id="245" name="Internal" note="For those *developing/maintaining* the
product." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work">
+        <task id="246" name="Design" note="Most design is in ODBC spec. but need to
create design docs for (mostly internal);&#10;&#10;- design/implementation
concepts&#10;- code layout&#10;- code conventions&#10;- UML (class diagrams
anyway) for C++ bits&#10;- FlowCharts for a few key areas (read; more complex areas)"
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+        <task id="247" name="Doxygen based" note="Need to;&#10;&#10;- document
all majour internal bits of code&#10;- seperate internal from external doc in
code&#10;- ensure todo items are doc'd&#10;- create doc, to be linked in by
doxygen, such as code examples&#10;- tweek look &amp; feel to make more inviting
and mysql'ish&#10;&#10;" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+        <task id="248" name="Driver Developers Manual" note="This document will tie
together other 'internal' doc with introduction/overview/guidence for new developers who
wish to debug issues or otherwise work on the internal code.&#10;The target audience
may be MySQL developers or community developers." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+        <task id="249" name="Build Instructions" note="Instructions on how to build on
each platyform/tool-chain." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work"/>
+      </task>
+    </task>
+    <task id="250" name="Optimization" note="Optimization will not be needed until a
second GA.&#10;This, along with some bug fixs, should be the focus for the second
GA.&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work">
+      <task id="251" name="Plan" note="Need a plan, perhaps before the first GA."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+    </task>
+    <task id="252" name="Testing" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+      <task id="253" name="PostBuild Tests" note="Used by driver developers and those
building driver from source. &#10;These are 'smoke' tests of the build and to a very
limited extent the basic features.&#10;&#10;Tests need to;&#10;- exist for
each library.&#10;- be properly documented&#10;- currently qt based testing
framework&#10;&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work"/>
+      <task id="254" name="Community Tests" note="Use unixODBC testing framework.
&#10;Contribute tests to unixODBC project.&#10;We want to publish results in form
of html on unixODBC web site." work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+        <task id="255" name="Conformance" note="Various level of ODBC conformance are
tested here." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work"/>
+        <task id="256" name="Performance" note="Performance or benchmark tests.
&#10;" work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work"/>
+        <task id="257" name="Stability" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+      </task>
+      <task id="258" name="Regression" note="MySQL C/ODBC v5 regression
tests.&#10;To plug into community tests (unixODBC) but kept with C/ODBC source."
work="28800" start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+    </task>
+    <task id="259" name="Differentiation" note="These have been tabled until after
first GA." work="28800" start="20061216T000000Z" end="20061218T170000Z"
work-start="20061218T080000Z" percent-complete="0" priority="0" type="normal"
scheduling="fixed-work">
+      <task id="260" name="Plan" note="A number of ideas exist as per mind map doc.
&#10;Need to decide what makes sense and what their priorities are." work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+    </task>
+    <task id="261" name="Engineering" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+      <task id="262" name="Integration Into Build System" note="" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+    </task>
+    <task id="263" name="Community" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+      <task id="264" name="Support" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+      <task id="265" name="Bug Fixs" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+      <task id="266" name="Forums" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+      <task id="267" name="Mailing List" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+      <task id="268" name="Blogs" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+    </task>
+    <task id="269" name="Release" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work">
+      <task id="270" name="Build Distro" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+      <task id="271" name="Q&amp;A" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+      <task id="272" name="Publish Distro" note="" work="28800"
start="20061216T000000Z" end="20061218T170000Z" work-start="20061218T080000Z"
percent-complete="0" priority="0" type="normal" scheduling="fixed-work"/>
+      <task id="273" name="Announce" note="" work="28800" start="20061216T000000Z"
end="20061218T170000Z" work-start="20061218T080000Z" percent-complete="0" priority="0"
type="normal" scheduling="fixed-work"/>
+    </task>
+  </tasks>
+  <resource-groups>
+    <group id="1" name="Support" admin-name="Tom Basil" admin-phone=""
admin-email=""/>
+    <group id="2" name="Quality Assurance" admin-name="Omer BarNir" admin-phone=""
admin-email=""/>
+    <group id="3" name="Development" admin-name="Mark Matthews" admin-phone=""
admin-email=""/>
+    <group id="4" name="Documentation" admin-name="Stefan Hinz" admin-phone=""
admin-email=""/>
+    <group id="5" name="Engineering" admin-name="Mads Jorgensen " admin-phone=""
admin-email=""/>
+  </resource-groups>
+  <resources>
+    <resource group="3" id="1" name="Mark Matthews" short-name="mark" type="1"
units="0" email="mark@stripped" note="" std-rate="0"/>
+    <resource group="3" id="2" name="Jess Balint" short-name="jbalint" type="1"
units="0" email="jbalint@stripped" note="" std-rate="0"/>
+    <resource group="3" id="3" name="Peter Harvey" short-name="pharvey" type="1"
units="0" email="pharvey@stripped" note="" std-rate="0"/>
+    <resource group="5" id="4" name="Kent Boortz" short-name="kent" type="1" units="0"
email="kent@stripped" note="" std-rate="0"/>
+    <resource group="2" id="5" name="Eric MaLossi" short-name="ericm" type="1"
units="0" email="ericm@stripped" note="" std-rate="0"/>
+    <resource group="4" id="6" name="Martin Brown" short-name="mcbrown" type="1"
units="0" email="mcbrown@stripped" note="" std-rate="0"/>
+    <resource group="1" id="7" name="Tonci Grgin" short-name="tonci" type="1"
units="0" email="tonci@stripped" note="" std-rate="0"/>
+    <resource group="1" id="8" name="Bogdan Degtyariov" short-name="bogdan" type="1"
units="0" email="bogdan@stripped" note="" std-rate="0"/>
+  </resources>
+  <allocations/>
+</project>

Thread
Connector/ODBC 5 commit: r755 - in trunk: SDK/C/Library doc/Projectpharvey19 Dec