Browse Source

Fixed a bug in OracleFormsArtefactFactory to query metadata for users properly, and added check in DbProvidersService so that it notifies users of DbProviderFactories that are not accessible rather than crashing.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2430 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Dickon Field 19 years ago
parent
commit
17604252a9
  1. 34
      src/AddIns/Misc/SharpServerTools/OracleDbToolsProvider/Src/Forms/OracleFormsArtefactFactory.cs
  2. 20
      src/AddIns/Misc/SharpServerTools/SharpDbTools/Src/Data/DbProvidersService.cs

34
src/AddIns/Misc/SharpServerTools/OracleDbToolsProvider/Src/Forms/OracleFormsArtefactFactory.cs

@ -57,23 +57,23 @@ namespace SharpDbTools.Oracle.Forms @@ -57,23 +57,23 @@ namespace SharpDbTools.Oracle.Forms
metaNode.Nodes.Add(collectionNode);
foreach (DataRow dbObjectRow in metaCollectionTable.Rows) {
TreeNode objectNode = null;
if (dbObjectRow.ItemArray.Length > 1) {
// if it is a table metadata collection then create a node
// with the option to invoke the DescribeTableViewContent
if (metadataCollectionName.Equals("Tables")) {
objectNode = new TableTreeNode((string)dbObjectRow[1], logicalConnectionName);
} else {
// TODO: describe other metadata collections
objectNode = new TreeNode((string)dbObjectRow[1]);
}
objectNode.Name = logicalConnectionName + ":Object:" + (string)dbObjectRow[1];
} else {
objectNode = new TreeNode((string)dbObjectRow[0]);
objectNode.Name = logicalConnectionName + ":Object:" + (string)dbObjectRow[0];
switch(metadataCollectionName) {
case "Tables":
LoggingService.Debug("found table row");
objectNode = new TableTreeNode((string)dbObjectRow[1], logicalConnectionName);
break;
case "Users":
LoggingService.Debug("found users row");
objectNode = new TreeNode((string)dbObjectRow[0]);
break;
default:
LoggingService.Debug("found " + metadataCollectionName + " row");
if (dbObjectRow.ItemArray.Length > 1) {
objectNode = new TreeNode((string)dbObjectRow[1]);
} else {
objectNode = new TreeNode((string)dbObjectRow[0]);
}
break;
}
collectionNode.Nodes.Add(objectNode);
}

20
src/AddIns/Misc/SharpServerTools/SharpDbTools/Src/Data/DbProvidersService.cs

@ -9,6 +9,7 @@ using System; @@ -9,6 +9,7 @@ using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Windows.Forms;
using ICSharpCode.Core;
@ -47,11 +48,20 @@ namespace SharpDbTools.Data @@ -47,11 +48,20 @@ namespace SharpDbTools.Data
LoggingService.Debug("adding lookup for: " + name + " to: + " + invariantName);
invariantByNameLookup.Add(name, invariantName);
//factoryData.Add(name, row);
LoggingService.Debug("retrieving DbProviderFactory for Name: " + name + " InvariantName: " + invariantName);
DbProviderFactory factory = DbProviderFactories.GetFactory(row);
names.Add(name);
factories.Add(name, factory);
factoriesByInvariantName.Add(invariantName, factory);
try {
LoggingService.Debug("retrieving DbProviderFactory for Name: "
+ name + " InvariantName: " + invariantName);
DbProviderFactory factory = DbProviderFactories.GetFactory(row);
names.Add(name);
factories.Add(name, factory);
factoriesByInvariantName.Add(invariantName, factory);
} catch (Exception) {
MessageBox.Show("Unable to load DbProviderFactory for: " + name + ", this will be unavailable." +
"\nCheck *.config files for invalid ado.net config elements, or config" +
"for assemblies that are not available.",
"Exception loading DbProviderFactory", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
initialized = true;

Loading…
Cancel
Save