<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Times New Roman","serif";
        color:windowtext;
        font-weight:normal;
        font-style:normal;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-CA link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'>Hi,<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'>I
am working on a FDO based application that should use the King Oracle Provider
to connect to a data source on an Oracle 11g instance. The application
currently connects fine to an empty data store (the data store does not contain
any tables) and successfully applies a test schema that consists of a feature
and a non feature class. The problem arises in the following step where a
describe schema request is executed. In this case, the result is one schema
named <i>KingOra</i> and no classes. I expected the test schema and its
corresponding classes being reported.<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'>The
application has access to all the DLLs that come with FDO. The DLLs were
created by compiling the projects from the trunk in release mode. Due to the
fact that I use MS Visual Studio C++ 2008 Express Edition, I had to open each
solution and compile it separately as some of the projects referenced MFC files
that are not available with the Express Edition. Those issues were corrected in
the shadow and all builds succeeded. <o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'>Besides
the changes to eliminate MFC references, one additional change was required in
the King Oracle provider project in that the references to Oracle 10 libs were
replaced by the corresponding Oracle 11 ones. <o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'>Using
the command <i>built.bat –c=release –a=install –o=c:\FdoHome</i>
on the FDO and ThirdParty directory, all DLLs were copied into the specified
folder and hence made accessible to the FDO application.<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'>The
providers.xml file was modified to include the following statement for the King
Oracle Provider:<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>
<FeatureProvider><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>
<Name>King.Oracle.3.5</Name> <o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>
<DisplayName>King Provider for Oracle</DisplayName> <o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>
<Description>Read/write access to spatial and attribute data
in an Oracle Spatial.</Description> <o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>
<IsManaged>False</IsManaged> <o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>
<Version>3.5.0.0</Version> <o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>
<FeatureDataObjectsVersion>3.5.0.0</FeatureDataObjectsVersion>
<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>
<LibraryPath>.\KingOracleProvider.dll</LibraryPath> <o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>
</FeatureProvider><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'>I
did perform some debugging on the code. When following the statement that
retrieves the schema name (see code below), I noted that it does not hit the
function that implements the retrieval of the schema name but ends up in the
function <i>FdoCollection::GetCount()</i> (file <i>FDO\Unmanaged\Inc\Common\Collection.h</i>).
However, following other requests like the apply schema execute or the describe
schema execute call, the correct functions are hit and executed. I also did
some dependency checks on some DLLs and executables and nothing missing was
reported.<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'>I
assume that this may be just a simple setup issue but after trying multiple things
now, I reached a point where I am not sure what to try next. If someone has any
suggestions I would appreciate the feedback. Also, if there are additional
questions, please let me know.<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'>Thanks<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'>
Thomas<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p> </o:p></span></p>
<div style='mso-element:para-border-div;border:none;border-bottom:double windowtext 2.25pt;
padding:0cm 0cm 1.0pt 0cm'>
<p class=MsoNormal style='border:none;padding:0cm'><span style='font-size:10.0pt;
font-family:"Times New Roman","serif"'><o:p> </o:p></span></p>
</div>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
FdoPtr<FdoIDescribeSchema> describe_schema_cmd = <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
(FdoIDescribeSchema*) fdo_connection->CreateCommand(<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
FdoCommandType_DescribeSchema);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'> FdoFeatureSchemasP
schema_collection = describe_schema_cmd->Execute();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'> FdoInt32 schema_count
= schema_collection->GetCount();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'> if (schema_count ==
0)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
printf(" -> No schemas found \n");<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'> else<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'> for (int
s = 0; s < schema_count; s++) {<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
FdoFeatureSchemaP curr_schema = schema_collection->GetItem(s);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
FdoStringP curr_schema_name = curr_schema->GetName();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
printf(" -> Schema[%d]: %ls \n", s, (FdoString
*)curr_schema_name);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
FdoPtr<FdoClassCollection> curr_schema_classes =<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
curr_schema->GetClasses();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
FdoInt32 curr_schema_class_count = curr_schema_classes->GetCount();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
if (curr_schema_class_count == 0)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
printf(" -> No classes found for current schema
\n");<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
else <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
for (int sc = 0; sc < curr_schema_class_count; sc++) {<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
FdoPtr<FdoClassDefinition> curr_schema_class =<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
curr_schema_classes->GetItem(sc);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
FdoStringP curr_schema_class_name = curr_schema_class->GetName();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
printf(" -> Class[%d]: %ls \n",<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
sc,<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
(FdoString *)curr_schema_class_name);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'>
} <span style='color:green'>// for (int sc = 0; ...<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:9.0pt;
font-family:"Courier New"'> } <span
style='color:green'>// for (int s = 0; ...<o:p></o:p></span></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Times New Roman","serif"'><o:p> </o:p></span></p>
</div>
</body>
</html>