mime-version: 1.0
date: Fri, 25 Jun 2010 16:37:03 -0500
content-transfer-encoding: quoted-printable
content-location: http://ww1.pervasive.com/developerzone/access_methods/readme_dto.html
x-mimeole: Produced By Microsoft MimeOLE V6.00.2900.5931
from: <Saved by Windows Internet Explorer 8>
subject: Pervasive PSQL DTO Interface
content-type: text/html;
	charset="Windows-1252"

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns:mso=3D"urn:schemas-microsoft-com:office:office" xmlns:msdt=3D"=
uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"><HEAD><TITLE>Readme DTO Interfa=
ce v9</TITLE>
<META content=3D"text/html; charset=3Dwindows-1252" http-equiv=3DContent-T=
ype>
<META name=3DAUTHOR content=3D"Pervasive Software">
<META name=3DDESCRIPTION content=3D"Information about the Pervasive DTO In=
terface">
<META name=3DOWNER content=3D"Pervasive Developer Solutions Team">
<STYLE>BODY {
	FONT-FAMILY: Verdana, Arial, Helvetica, MS Sans Serif; FONT-SIZE: 80%; MA=
RGIN-RIGHT: 10em
}
A:link {
	FONT-FAMILY: Verdana; COLOR: #008000
}
A:active {
	FONT-FAMILY: Verdana; COLOR: #8fbc8b
}
A:visited {
	FONT-FAMILY: Verdana; COLOR: #996699
}
A:hover {
	BACKGROUND-COLOR: #996699; FONT-FAMILY: Verdana; COLOR: #ffffff
}
P {
	MARGIN-TOP: 0.6em; FONT-FAMILY: Verdana; MARGIN-BOTTOM: 0.6em; MARGIN-LEF=
T: 1em
}
H1 {
	BORDER-BOTTOM: black solid; MARGIN-BOTTOM: 0.5em; FONT-SIZE: 160%
}
H2 {
	MARGIN-TOP: 1.5em; MARGIN-BOTTOM: 0.5em; FONT-SIZE: 140%
}
H3 {
	MARGIN-TOP: 1.2em; MARGIN-BOTTOM: 0.5em; FONT-SIZE: 110%; xfont-size: 110%
}
H4 {
	MARGIN-TOP: 1.2em; MARGIN-BOTTOM: 0.5em; FONT-SIZE: 105%; xfont-size: 105%
}
H5 {
	MARGIN-TOP: 1.2em; MARGIN-BOTTOM: 0.5em; FONT-SIZE: 100%
}
BIG {
	FONT-SIZE: 105%; FONT-WEIGHT: bold
}
OL {
	MARGIN-TOP: 0.6em; MARGIN-BOTTOM: 0em; MARGIN-LEFT: 4em
}
UL {
	LIST-STYLE-TYPE: square; MARGIN-TOP: 0.6em; FONT-FAMILY: Verdana; MARGIN-=
BOTTOM: 0em
}
UL UL {
	MARGIN-TOP: 0em
}
UL LI {
	FONT-FAMILY: Verdana
}
P LI {
	LIST-STYLE-TYPE: square; FONT-FAMILY: Verdana; MARGIN-BOTTOM: 0em
}
LI P {
	FONT-FAMILY: Verdana
}
TABLE {
	MARGIN-TOP: 1em; MARGIN-LEFT: 5em; FONT-SIZE: 100%; MARGIN-RIGHT: 5em; ce=
ll-padding: 10
}
TH {
	TEXT-ALIGN: left; FONT-FAMILY: Verdana; BACKGROUND: #d3d3d3; VERTICAL-ALI=
GN: bottom
}
TR {
	VERTICAL-ALIGN: top
}
TD {
	FONT-FAMILY: Verdana; VERTICAL-ALIGN: top
}
STRONG {
	COLOR: maroon; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
P.note {
	BORDER-BOTTOM: silver solid; BORDER-LEFT: silver solid; PADDING-BOTTOM: 1=
%; BACKGROUND-COLOR: #ffffee; PADDING-LEFT: 1%; PADDING-RIGHT: 1%; MARGIN-=
LEFT: 10em; BORDER-TOP: silver solid; MARGIN-RIGHT: 10em; BORDER-RIGHT: si=
lver solid; PADDING-TOP: 1%
}
PRE {
	MARGIN-TOP: 1.2em; FONT-FAMILY: Courier; MARGIN-BOTTOM: 1.5em; COLOR: blu=
e; MARGIN-LEFT: 5em; FONT-SIZE: 70%
}
CODE {
	FONT-FAMILY: Courier; COLOR: blue; FONT-SIZE: 70%
}
P.question {
=09
}
.codecomment {
	COLOR: green
}
</STYLE>

<META name=3DGENERATOR content=3D"MSHTML 8.00.6001.18928">
<!--[if gte mso 9]><xml>
<mso:CustomDocumentProperties>
<mso:PDB_ProductTaxHTField0 msdt:dt=3D"string">PSQL v9|7e3e4af7-15e0-439e-=
9929-f38b98b53be7</mso:PDB_ProductTaxHTField0>
<mso:PDB_Product msdt:dt=3D"string">27;#PSQL v9|7e3e4af7-15e0-439e-9929-f3=
8b98b53be7</mso:PDB_Product>
<mso:Publication_Date msdt:dt=3D"string">2006-05-01T00:00:00Z</mso:Publica=
tion_Date>
<mso:PDB_Synopsis msdt:dt=3D"string"></mso:PDB_Synopsis>
<mso:TaxCatchAll msdt:dt=3D"string">27;#PSQL v9|7e3e4af7-15e0-439e-9929-f3=
8b98b53be7</mso:TaxCatchAll>
</mso:CustomDocumentProperties>
</xml><![endif]-->
</HEAD>
<BODY>
<H1>Pervasive PSQL v9 Distributed Tuning Objects (DTO) - May 2006</H1>
<P>This document contains the following topics: </P>
<UL>
  <LI><A=20
  href=3D"http://ww1.pervasive.com/developerzone/access_methods/Readme_Per=
vasive%20PSQL%20DTO%20Interface_v9_May2006.mht#AboutDTO">About=20
  DTO</A>=20
  <LI><A=20
  href=3D"http://ww1.pervasive.com/developerzone/access_methods/Readme_Per=
vasive%20PSQL%20DTO%20Interface_v9_May2006.mht#Features">Features</A>=20

  <LI><A=20
  href=3D"http://ww1.pervasive.com/developerzone/access_methods/Readme_Per=
vasive%20PSQL%20DTO%20Interface_v9_May2006.mht#Requirements">System=20
  Requirements</A>=20
  <LI><A=20
  href=3D"http://ww1.pervasive.com/developerzone/access_methods/Readme_Per=
vasive%20PSQL%20DTO%20Interface_v9_May2006.mht#Started">Getting=20
  Started</A>=20
  <UL>
    <LI><A=20
    href=3D"http://ww1.pervasive.com/developerzone/access_methods/Readme_P=
ervasive%20PSQL%20DTO%20Interface_v9_May2006.mht#install">Installation</A>=
=20

    <LI><A=20
    href=3D"http://ww1.pervasive.com/developerzone/access_methods/Readme_P=
ervasive%20PSQL%20DTO%20Interface_v9_May2006.mht#comps">Components=20
    List</A> </LI></UL>
  <LI><A=20
  href=3D"http://ww1.pervasive.com/developerzone/access_methods/Readme_Per=
vasive%20PSQL%20DTO%20Interface_v9_May2006.mht#kissues">Known=20
  Issues</A>=20
  <LI><A=20
  href=3D"http://ww1.pervasive.com/developerzone/access_methods/Readme_Per=
vasive%20PSQL%20DTO%20Interface_v9_May2006.mht#links">Useful=20
  Links</A>=20
  <LI><A=20
  href=3D"http://ww1.pervasive.com/developerzone/access_methods/Readme_Per=
vasive%20PSQL%20DTO%20Interface_v9_May2006.mht#disclaimer">Disclaimer</A>=
=20
  </LI></UL>
<HR>

<H2><A name=3DAboutDTO></A>About DTO</H2>
<P>Distributed Tuning Objects are the COM wrapper for the Pervasive Distri=
buted=20
Tuning Interface. DTO is a collection of objects encapsulating DTI. DTO en=
ables=20
developers to develop a range of useful, customized server administration =
tools=20
and interfaces quickly and easily. The power and flexibility of DTO can be=
=20
applied to the full range of database management and database definition t=
asks=20
such as production, performance tuning, and metadata administration. DTO i=
s=20
implemented as a dual interface, in-process server. </P>
<H2><A name=3DFeatures></A>Features</H2>
<H3>Pervasive PSQL v9 DTO</H3>
<P>This update provides support for DTI features added in Pervasive PSQL v=
9 and=20
Pervasive.SQL V8 (8.5).=20
<UL>
  <LI>New Methods in <CODE>DtoDatabase</CODE> that enable manipulation of=
=20
  secured databases and the ability to copy a database while preserving=20
  referential integrity.=20
  <P><CODE>Open</CODE>, <CODE>Close</CODE>, <CODE>Secure</CODE>,=20
  <CODE>UnSecure</CODE>, <CODE>Copy</CODE>. </P>
  <LI>New <CODE>Secured</CODE> property in <CODE>DtoDatabase</CODE>=20
  <P>Reveals whether a database has security enabled. </P></LI></UL>
<H3>Working with Secured Databases in DTO</H3>
<P>This release of DTO has updates that reflect the changes that were=20
implemented in the DTI interface for Pervasive PSQL v9. The=20
<CODE>DtoDictionary</CODE> object is deprecated in this release. You can s=
till=20
open a dictionary using a path, but no longer using the DB name. The new=20
preferred way is to instantiate a <CODE>DtoDatabase</CODE> object and invo=
ke the=20
<CODE>Open</CODE> method to authenticate to the database. You can then acc=
ess=20
the <CODE>Tables</CODE> collection from the <CODE>DtoDatabase</CODE> objec=
t. You=20
should invoke the <CODE>Open</CODE> method whether or not the database has=
=20
security enabled. If security is not enabled, pass empty strings for the=20
database username and password.=20
<P>If you obtain a <CODE>DtoDatabase</CODE> object from the=20
<CODE>DtoDatabases</CODE> collection, you cannot use the <CODE>Open</CODE>=
 or=20
<CODE>Close</CODE> methods or obtain the <CODE>Tables</CODE> collection. Y=
ou=20
must specifically instantiate any <CODE>DtoDatabase</CODE> object for whic=
h you=20
want to obtain the <CODE>Tables</CODE> collection. The sample in this read=
me=20
shows examples of working with secured databases.=20
<P>You cannot have an open connection to the database when invoking the=20
<CODE>Secure</CODE> or <CODE>UnSecure</CODE> methods.=20
<P>The following code is a Visual Basic sample of connecting to a secure=20
database and obtaining the <CODE>Tables</CODE> collection. This sample has=
 two=20
parts that demonstrate the new security features of the Distributed Tuning=
=20
Objects. Part 1 displays information about each database on the current ma=
chine,=20
including whether it is secured. An attempt is made to connect to the data=
base=20
without credentials. If successful, the tables in that database are listed=
. Part=20
2 focuses on the DEMODATA database included with Pervasive PSQL The databa=
se is=20
secured, and then opened with the security credentials. Assuming success, =
the=20
tables are listed as in Part 1 and then DEMODATA is closed and then unsecu=
red. <PRE>
<SPAN class=3Dcodecomment>
' START OF DTO VISUAL BASIC SCRIPT
' Save as dtosample.vbs and run from
' a command prompt by entering:=20
' Cscript dtosample.vbs</SPAN>

 Set m_session =3D CreateObject("DTO.DtoSession.2")=20

   server   =3D "127.0.0.1"    <SPAN class=3Dcodecomment>' local machine</=
SPAN>

   username =3D ""
   password =3D ""
  =20
   result =3D m_session.Connect(server, username, password)
       =20
   if not(result =3D 0) then
      result_text =3D m_session.Error(result)
      Wscript.Echo "ERROR DURING CONNECT - result was " &amp; result &amp;=
 " - " &amp; result_text =20
    =20
   else=20

     Wscript.Echo "Distributed Tuning Objects - Pervasive PSQL v9 SDK Samp=
le"=20
     Wscript.Echo "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D" &amp; vbcrlf
           =20
<SPAN class=3Dcodecomment>           =20
     ' PART 1: New DtoDatabase Property and Methods</SPAN>

     Wscript.Echo "Part 1: Information about Databases" &amp; vbcrlf

       Set m_databases =3D m_session.Databases
<SPAN class=3Dcodecomment>           =20
     ' Important - if you access Tables collection, or use Open and Close =
methods,
     '             you must instantiate the DtoDatabase object</SPAN>
       Set m_dtodatabase =3D CreateObject("DTO.DtoDatabase.2")

       m_dtodatabase.Session =3D m_session

       Wscript.Echo "Number of databases =3D " &amp; m_databases.Count &am=
p; vbcrlf

       for each database in m_databases

         Wscript.Echo "DB Name   : " &amp; database.Name=20
         Wscript.Echo "Secured   : " &amp; Cbool(database.Secured)
         Wscript.Echo "Data Path : " &amp; database.DataPath
         Wscript.Echo "Dict Path : " &amp; database.DdfPath

         m_dtodatabase.Name =3D database.Name  <SPAN class=3Dcodecomment>'=
  database is variant, m_dtodatabase
                                             '  is needed to Open/Close, a=
ccess Tables</SPAN>

         result =3D m_dtodatabase.Open("","")  <SPAN class=3Dcodecomment>'=
  Try to open with no credentials</SPAN>

         if (result =3D 0) then
             set tables_collection =3D m_dtodatabase.Tables
             Wscript.Echo "Tables in " &amp; m_dtodatabase.Name &amp; ": "=
 &amp; tables_collection.Count

             for each table in tables_collection
                Wscript.Echo vbtab &amp; table.Name=20
             next
             Wscript.Echo
             m_dtodatabase.Close   <SPAN class=3Dcodecomment>'  Close any =
database you open</SPAN>

         else=20
              Wscript.Echo "Could not display " &amp; m_dtodatabase.Name &=
amp; " tables - error " &amp; result =20
              Wscript.Echo m_session.Error(result) &amp; vbcrlf <SPAN clas=
s=3Dcodecomment>' display error text</SPAN>
         end if


      next

      <SPAN class=3Dcodecomment>
      ' PART 2:  New Security methods applied to DEMODATA database</SPAN>

       Wscript.Echo "Part 2: New DtoDatabase Methods: Secure, Open, Close,=
 UnSecure" &amp; vbcrlf

       m_dtodatabase.Name =3D "DEMODATA"
       m_dtodatabase.Session =3D m_session
       Wscript.Echo "Demodata secured =3D " &amp; CBool(m_dtodatabase.Secu=
red)
 =20
      <SPAN class=3Dcodecomment>
     ' SECURE METHOD</SPAN>
       Wscript.Echo vbcrlf &amp; "Secure method"
       Wscript.Echo "name =3D " &amp; m_dtodatabase.Name &amp; ", data pat=
h =3D " &amp; m_dtodatabase.DataPath
       result =3D m_dtodatabase.Secure("Master", "123")  ' =20
       Wscript.Echo "result of SECURE db =3D " &amp; result &amp; ": " &am=
p; m_session.Error(result)
       Wscript.Echo "Demodata secured =3D " &amp; CBool(m_dtodatabase.Secu=
red)

      <SPAN class=3Dcodecomment>
     ' OPEN METHOD</SPAN>
       Wscript.Echo vbcrlf &amp; "Open method"
       Wscript.Echo "name =3D " &amp; m_dtodatabase.Name &amp; ", data pat=
h =3D " &amp; m_dtodatabase.DataPath
       result =3D m_dtodatabase.Open("Master","123")
       Wscript.Echo "result of open database =3D " &amp; result &amp; ": "=
  &amp; m_session.Error(result)
     =20
      <SPAN class=3Dcodecomment>
     ' TABLES COLLECTION FROM DTODATABASE</SPAN>

       Wscript.Echo vbcrlf &amp; "Database Tables collection"

       if (result =3D 0) then
           Set my_tables =3D m_dtodatabase.Tables  =20
           Wscript.Echo vbcrlf &amp; "number of Tables in demodata =3D " &=
amp; my_tables.Count

           For each table in my_tables
             Wscript.Echo table.Name=20
           Next

       else
          Wscript.Echo "Could not obtain Tables collection because Open me=
thod did not succeed"=20
       end if   =20
  =20
      <SPAN class=3Dcodecomment>
     ' CLOSE METHOD</SPAN>
       Wscript.Echo vbcrlf &amp; "Close method"
       result =3D m_dtodatabase.Close
       Wscript.Echo "Result of close database =3D " &amp; result &amp; ": =
"  &amp; m_session.Error(result)

      <SPAN class=3Dcodecomment>
     ' UNSECURE METHOD</SPAN>
       Wscript.Echo vbcrlf &amp; "Unsecure"
       Wscript.Echo "name =3D " &amp; m_dtodatabase.Name &amp; ", data pat=
h =3D " &amp; m_dtodatabase.DataPath
       result =3D m_dtodatabase.UnSecure("Master", "123")
       Wscript.Echo "Result of UNSECURE db =3D " &amp; result &amp; ": " &=
amp; m_session.Error(result)
       Wscript.Echo "Demodata secured =3D " &amp; CBool(m_dtodatabase.Secu=
red)

 end if <SPAN class=3Dcodecomment>' If session connected =3D OK</SPAN>



 Set m_dtodatabase =3D Nothing
 Set m_session =3D Nothing

<SPAN class=3Dcodecomment>
' END OF DTO SAMPLE SCRIPT</SPAN></PRE>
<H3>Copying a Database with DTO</H3>
<P>The following code segment demonstrates the use of the=20
<CODE>DtoDatabase</CODE> Copy method. <PRE>  =20
   result =3D m_session.Connect(server, username, password)
<SPAN class=3Dcodecomment>           =20
 ' Copying a Database
 ' result =3D m_database.Copy("<I>username</I>","<I>password</I>","<I>newD=
Bname</I>","<I>newDictionaryPath</I>","<I>NewDataPath</I>")</SPAN>

   Set m_databases =3D m_session.Databases
   Set m_dtodatabase =3D CreateObject("DTO.DtoDatabase.2")
   m_dtodatabase.Session =3D m_session
   m_dtodatabase.Name =3D "DEMODATA"
<SPAN class=3Dcodecomment>           =20
 ' New dictionary path must already exist.  If data path is empty, it will=
 be set to
 ' the same value as the dictionary path.

 ' Copy an unsecure database</SPAN>
   result =3D m_dtodatabase.Copy("","", "DEMODATA2", "c:\pvsw\demodata2", =
"c:\pvsw\demodata2")=20
<SPAN class=3Dcodecomment>           =20
 ' Copy a secure database
 ' Database does not need to be opened.  New database copy will also be se=
cure.</SPAN>
   result =3D m_dtodatabase.Copy("Master","123", "DEMODATA3", "c:\pvsw\dem=
odata3", "c:\pvsw\demodata3") =20
</PRE>
<H3>DTO and DTO2 Object Summary</H3>
<UL>
  <LI>Connection Object</LI></UL>
<UL>
  <P>DtoSession</P></UL>
<UL>
  <LI>Configuration Objects</LI></UL>
<UL>
  <P>DtoCategory</P>
  <P>DtoSetting</P>
  <P>DtoSelectionItem</P>
  <P>DtoServices</P>
  <P>DtoLicenseMgr - <FONT color=3Dblue>DTO2 only</FONT></P></UL>
<UL>
  <LI>Monitoring Objects</LI></UL>
<UL>
  <P>DtoMonitor</P>
  <P>DtoOpenFile</P>
  <P>DtoFileHandle</P>
  <P>DtoMkdeClient</P>
  <P>DtoMkdeClientHandle</P>
  <P>DtoSqlClient</P>
  <P>DtoCommStat</P>
  <P>DtoProtocolStat</P>
  <P>DtoMkdeVersion - <FONT color=3Dblue>DTO2 only</FONT></P>
  <P>DtoEngineInformation - <FONT color=3Dblue>DTO2 only</FONT></P></UL>
<UL>
  <LI>Database and Dictionary Objects</LI></UL>
<UL>
  <P>DtoDatabase</P>
  <P>DtoDSN</P>
  <P>DtoDictionary - <FONT color=3Dblue>deprecated in favor of=20
  DtoDatabase</FONT></P>
  <P>DtoTable</P>
  <P>DtoColumn</P>
  <P>DtoIndex</P>
  <P>DtoSegment</P></UL>
<H2><A name=3DRequirements></A>System Requirements</H2>
<UL>
  <LI>Existing install of Pervasive PSQL v9 Engine </LI></UL>
<H2><A name=3DStarted></A><B>Getting Started</B></H2>
<H3><A name=3Dinstall></A>Installation</H3>
<P>There is no separate install for DTO. The DTO runtime binaries listed u=
nder=20
the Components List are installed by the PSQL engine installation. PSQL v9=
 SP2=20
DTO SDK is available for download at<A=20
href=3D"http://www.pervasive.com/developerzone/access_methods/dtidto.asp"=
=20
target=3D_new>=20
http://www.pervasive.com/developerzone/access_methods/dtidto.asp</A>.</P>
<H3><A name=3Dcomps></A>Components List</H3>
<TABLE border=3D1 cellPadding=3D5 width=3D"60%">
  <TBODY>
  <TR>
    <TH vAlign=3Dtop width=3D"29%">
      <P><B>Component</B></P></TH>
    <TH vAlign=3Dtop width=3D"25%">
      <P><B>Description</B></P>
  <TR>
    <TD vAlign=3Dtop width=3D"29%">
      <P>DTO2.DLL</P>
      <P>&nbsp;</P></TD>
    <TD vAlign=3Dtop width=3D"25%">
      <P>Use if you utilize Pervasive PSQL secure database or need the=20
      <CODE><FONT size=3D+1>DtoMkdeVersion</FONT></CODE> and <CODE><FONT=20
      size=3D+1>DtoLicenseMgr</FONT></CODE> objects.</P></TD></TR>
  <TR>
    <TD vAlign=3Dtop width=3D"29%">
      <P>DTO.DLL</P>
      <P>&nbsp;</P></TD>
    <TD vAlign=3Dtop width=3D"25%">
      <P>Use if you want compatibility with older DTO=20
  applications.</P></TD></TR></TBODY></TABLE>
<H2><A name=3Dkissues></A><B>Known Issues in this Release</B></H2>
<P>The following are known issues with this release.</P>
<TABLE border=3D1 cellPadding=3D5 width=3D"60%">
  <TBODY>
  <TR>
    <TH vAlign=3Dtop width=3D"15%">Issue Number</TH>
    <TH vAlign=3Dtop width=3D"83%">Description</TH></TR>
  <TR>
    <TD width=3D"15%">52546</TD>
    <TD width=3D"83%">DtoSession.Property(dtoAccessRights),=20
      DtoSession.Property(dtoConnectionType), DtoLicenseMgr.Licenses colle=
ction=20
      appear in object browser but are not implemented in this release. </=
TD></TR>
  <TR>
    <TD width=3D"15%">52548</TD>
    <TD width=3D"83%">DTO does not have the following DTI functionality:=20
      <CODE><FONT size=3D+1>PvGetTableStat()</FONT></CODE>, database flags=
=20
      indicating the Btrieve security policy of the database (<CODE><FONT=
=20
      size=3D+1>P_DBFLAG_DBSEC_AUTHENTICATION</FONT></CODE><FONT size=3D+1=
>,=20
      <CODE>P_DBFLAG_DBSEC_AUTHORIZATION</CODE></FONT>). </TD></TR>
  <TR>
    <TD width=3D"15%">53074</TD>
    <TD width=3D"83%">Many possible DTO errors are not in the enumerated t=
ype=20
      DtoResult nor are descriptions returnable from the Error function. E=
rror=20
      codes are returned but there are no corresponding error messages. </=
TD></TR>
  <TR>
    <TD width=3D"15%">53113</TD>
    <TD width=3D"83%">The <FONT color=3D#0000ff>Databases.Remove</FONT> me=
thod=20
      returns <FONT color=3D#0000ff>Dto_Success</FONT> even when it fails =
or when=20
      it fails to delete the "in-use" DDF files </TD></TR>
  <TR>
    <TD width=3D"15%">54010</TD>
    <TD width=3D"83%">The updated <CODE><FONT size=3D+1>DtoDatabase</FONT>=
</CODE>=20
      object does not contain the <CODE><FONT size=3D+1>AddTable</FONT></C=
ODE> and=20
      <CODE><FONT size=3D+1>RemoveTable</FONT></CODE> methods found in the=
=20
      <CODE><FONT size=3D+1>DtoDictionary</FONT></CODE> object. To add or =
remove a=20
      table from a database with this release, you must use the deprecated=
=20
      <CODE><FONT size=3D+1>DtoDictionary</FONT></CODE> object. </TD></TR>
  <TR>
    <TD width=3D"15%">54011</TD>
    <TD width=3D"83%">The <CODE><FONT size=3D+1>Secure</FONT></CODE> and=20
      <CODE><FONT size=3D+1>UnSecure</FONT></CODE> methods in <CODE><FONT=
=20
      size=3D+1>DtoDatabase</FONT></CODE> do not have errors mapped to Dto=
Result.=20
      Any result other than success will report as "Unknown error".=20
  </TD></TR></TBODY></TABLE>
<H2><A name=3Dlinks></A>Useful Links</H2>
<P>Discuss all your Pervasive development issues at DevTalk at <A=20
href=3D"http://www.pervasive.com/devtalk">http://www.pervasive.com/devtalk=
</A>.=20
</P>
<P>See some creative applications and code snippets and share your own at=
=20
Pervasive ComponentZone at <A=20
href=3D"http://www.pervasive.com/componentzone">http://www.pervasive.com/c=
omponentzone</A>.=20
</P>
<H2><A name=3DDisclaimer></A>Disclaimer </H2>
<P><FONT size=3D2>PERVASIVE SOFTWARE INC. LICENSES THE SOFTWARE AND DOCUME=
NTATION=20
PRODUCT TO YOU OR YOUR COMPANY SOLELY ON AN "AS IS" BASIS AND SOLELY IN=20
ACCORDANCE WITH THE TERMS AND CONDITIONS OF THE ACCOMPANYING LICENSE=20
AGREEMENT.<BR>PERVASIVE SOFTWARE INC. MAKES NO OTHER WARRANTIES WHATSOEVER=
,=20
EITHER EXPRESS OR IMPLIED, REGARDING THE SOFTWARE OR THE CONTENT OF THE=20
DOCUMENTATION; PERVASIVE SOFTWARE INC. HEREBY EXPRESSLY STATES AND YOU OR =
YOUR=20
COMPANY ACKNOWLEDGES THAT PERVASIVE SOFTWARE INC. DOES NOT MAKE ANY WARRAN=
TIES,=20
INCLUDING, FOR EXAMPLE, WITH RESPECT TO MERCHANTABILITY, TITLE, OR FITNESS=
 FOR=20
ANY PARTICULAR PURPOSE OR ARISING FROM COURSE OF DEALING OR USAGE OF TRADE=
,=20
AMONG OTHERS. </FONT></P>
<P><FONT size=3D-1>Copyright =A9 1999-2006 Pervasive Software Inc. All Rig=
hts=20
Reserved. </FONT></P></BODY></HTML>

