Configuring and troubleshooting a Schema Provider

原文:https://codesmith.atlassian.net/wiki/display/Generator/Configuring+and+troubleshooting+a+Schema+Provider

The sections below will help guide you through using and configuring various Schema Providers that ship with CodeSmith Generator.

Creating a new connection string

Please read the adding a new database connection section before continuing.

The Data Source window will check to see if a schema provider supports showing Connection String designer. If it doesn‘t, then you must manually enter a valid connection string into the Connection String text box. You must enter in a valid connection string for the Provider Type you are trying to use.

  • If you‘re using the SqlSchemaProvider, connection strings follow the format used by the .NET SqlConnection.ConnectionString property.
  • If you‘re using the ADOXSchemaProvider, connection strings follow the format used by the ADO ConnectionString property.
  • If you‘re using the OracleSchemaProvider, please be sure to check out the link below for creating a connection string as well as the Connecting to an Oracle database section below.
  • If you‘re using the PostgreSchemaProvider, please make sure the following statement is included in your ConnectionString: Preload Reader = true;

For all SchemaProviders, please be sure to use the proper ConnectionString for the Database Provider you are using. A great resource for building database ConnectionStrings can be found here.

Configuring a Schema Providers behavior

A schema provider may contain additional configurable logic that changes how the schema provider behaves. For example, you may only want to show the various schema objects for the current logged in user or allow CommandResultSchema information to be retrieved.

These settings can be configured in the Generator Options Schema Provider section as shown above.

Oracle Schema Provider

Connecting to an Oracle database

The first step is to add a new Data Source. Once the Data Source window is open, you will want to select the OracleSchemaProvider from the Provider Type drop down menu.

Next, you will want to click on the ellipse button (...) to build the connection string.

You can also manually enter in a connection string into the Connnection String text box.

After you have filled out all of the required information, press the Test Connection Button or the OK button. If you could connect to your Oracle Server, then you are all done. If this doesn‘t work you may be scratching your head and thinking you are out of luck. The good news is your not. You will need to use a modified connection string that the Connection Properties UI doesn‘t account for.

"This is another type of Oracle connection string that doesn‘t rely on you to have a DSN for the connection. You create a connection string based on the format used in the tnsnames.ora file without the need to actually have one of these files on the client pc" (http://www.connectionstrings.com/oracle).

You will need to manually configure this connection string using the initial Data Source User Interface‘s Connection String text box (shown above).  Below is an example of using an TNS-Less (Transparent Network Substrate) connection string.

Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;

Please see the following website for more information on Oracle Connection Strings.

Installing Oracle Data Access Components (ODAC)

CodeSmith Generator is compiled as AnyCPU. This means that Generator will run as a 64bit process when you launch Generator outside of Visual Studio. If you are generating from within Visual Studio (32bit process), then CodeSmith Generator libraries will run as a 32bit process.

This is very important to understand as it determines which Schema Provider dependencies are resolved at run-time.

If you are trying to use the Oracle Schema Provider you may be presented with an error message that states a BadImageFormatException was thrown. This can be resolved by installing the ODAC libraries.

If you are running a 64bit version of windows, please install both the 32bit and 64bit versions.

Please visit the Oracle .NET Developer Center and download and install the latest versions of ODAC (32-bit64-bit). It is recommended that you restart your computer after installing the ODAC libraries.

MySQL Schema Provider

If you are trying to use the MySQL Schema Provider you may encounter the error message: ‘The MySQL.Data.MySQLClient  is not installed on this computer‘. This error can occur because the MySQL Connector/Net ( MySql.Data.MySqlClient DbProvider)  hasn‘t been installed on your machine.

Installing MySQL Connector/Net

Please download and install the latest MySQL .NET connector which can be found here. It is recommended that you restart your computer after installing the MySQL .NET connector.

Version 6.7.4 of the MySQL connector may not work in some circumstances. If you run into an issue where the connector isn‘t being resolved. It is recommended that you try installing an older version of the client.

Configuring MySQL Connector/Net

The MySQL Schema Provider doesn‘t require a specific version of the MySQL managed libraries. This is because it uses DbProviderFactories when interacting with MySQL. One must update all .NET Framework 4.0 machine.config‘s and add the MySQL provider to the DbProviderFactories element:

<system.data>
  <DbProviderFactories>
    <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
  </DbProviderFactories>
</system.data>

Please ensure that you update the Version number (E.G., Version=6.7.4.0) with the version of the MySQL Connector/NET that you installed.

The .NET Framework 4.0 machine.config‘s can be found here:

  • %windir%\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
  • %windir%\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config

SQLite Schema Provider

If you are trying to use the SQLite Schema Provider you may encounter the error message: ‘The System.Data.SQLite library is not installed on this computer‘. This error can occur for two reasons:

  1. The System.Data.SQLite hasn‘t been installed on your machine.
  2. The System.Data.SQLite hasn‘t been properly configured.

Installing System.Data.SQLite

CodeSmith Generator is compiled as AnyCPU. This means that Generator will run as a 64bit process when you launch Generator outside of Visual Studio. If you are generating from within Visual Studio (32bit process), then CodeSmith Generator libraries will run as a 32bit process.

This is very important to understand as it determines which Schema Provider dependencies are resolved at run-time.

The first step is to ensure that you download and install the latest .NET Framework 4.0 version of  System.Data.SQLite.

If you are running a 64bit version of windows, please install both the 32bit and 64bit versions.

You can skip the following configuration steps if you install the legacy version of System.Data.SQLite hereThe older version configures itself by adding entries into your machine.config. 

Configuring System.Data.SQLite

The SQLite Schema Provider doesn‘t require a specific version of the SQLite managed libraries. This is because it uses DbProviderFactories when interacting with SQLite. One must update all .NET Framework 4.0 machine.config‘s and add the SQLite provider to the DbProviderFactories element:

<system.data>
  <DbProviderFactories>
    <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
  </DbProviderFactories>
</system.data>

The .NET Framework 4.0 machine.config‘s can be found here:

  • %windir%\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
  • %windir%\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config

Next, you will need to copy the 64bit or 32bit SQLite assemblies that were installed via the System.Data.SQLite installer to CodeSmith Generators bin folder. This bin folder can be found in the location that you installed CodeSmith Generator to.

You should copy the 64bit SQLite assemblies if you are using 64 bit windows.

Finally, you are ready to start using the SQLite Schema Provider!

PostgreSQL Schema Provider

Connecting to an PostgreSQL database

Please follow the steps outlined in the "Creating a new connection string" section for information on creating a new data source.

Please see the following website for more information on PostgreSQL Connection Strings. Additional connection string parameters can be found here.

Please make sure the following statement is included in your ConnectionString: Preload Reader = true; Also you can limit what schema objects are returned by adding a SearchPath to your connection string.

Installing Npgsql

If you are trying to use the PostgreSQL Schema Provider you may be presented with an error message that states a FileNotFound was thrown. This can be resolved by installing the Npgsql libraries.

First, you will need to look at the error message and determine which version of the libraries need to be installed. This can be done by looking at the error message:

System.IO.FileNotFoundException: Could not load file or assembly ‘Npgsql, Version=2.0.11.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7‘ or one of its dependencies. The system cannot find the file specified.

The error message is telling us that we need to install version 2.0.11.0 of Npgsql. We then navigate to the Npgsql downloadssection and look for this version. You will need to download the .NET 4.0 compiled version (E.G., ending with bin-ms.net4.0.zip). After this has been done, unblock the zipand extract the files to a folder.  Next run GacUtil from an elevated Visual Studio command prompt and gac the two extracted assemblies as shown below.

gacutil -i Npgsql.dll
gacutil -i Mono.Security.dll

Finally, you are ready to start using the PostgreSQL Schema Provider!

时间: 2024-12-14 05:29:31

Configuring and troubleshooting a Schema Provider的相关文章

WebADI_Oracle R12 安装WebADI补丁

2014-12-25 Created By 鲍新建 一.摘要 Note: 396181.1 - Oracle Web Applications Desktop Integrator Documentation Resources, Release 12  https://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=396181.1 Note: 452452.1 - R12

codesmith连接postgresql修复bug

转:CodeSmith7代码生成器针对PostgreSQL数据库无法使用的Bug修复全过程 我自己又修改过,完整的PostgreSQLSchemaProvider.cs文件如下 1 using Npgsql; 2 using NpgsqlTypes; 3 using System; 4 using System.Collections.Generic; 5 using System.Data; 6 using System.Text.RegularExpressions; 7 8 namespa

Frame Relay - 简介及基本配置

Frame Relay现在越来越不流行了,不过在过去的设计中被广泛应用. 所以工作上还是能经常见到的, 这篇博文从二层简单总结下FR的一些概念 在介绍Frame Relay之前,先了解下广播介质和非广播介质的区别: Broadcast Media (广播介质): Ethernet . Token-Ring.FDDI 特点: 源可以同时向所有连接(二层)目的地址通话 简化了三层到二层的解析 Non-Broadcast Multi Access (NBMA): Frame Relay.ISDN.AT

Frame Relay - 简单介绍及基本配置

Frame Relay如今越来越不流行了,只是在过去的设计中被广泛应用. 所以工作上还是能常常见到的, 这篇博文从二层简单总结下FR的一些概念 在介绍Frame Relay之前,先了解下广播介质和非广播介质的差别: Broadcast Media (广播介质): Ethernet . Token-Ring.FDDI 特点: 源能够同一时候向全部连接(二层)目的地址通话 简化了三层到二层的解析 Non-Broadcast Multi Access (NBMA): Frame Relay.ISDN.

sql server2008 搭建链接服务器成功后查询时报Cannot obtain the schema rowset &quot;DBSCHEMA_TABLES_INFO&quot; for OLE DB provider &quot;SQLNCLI10&quot; for linked server &quot;XXXXX&quot;. 的解决方法

原文:sql server2008 搭建链接服务器成功后查询时报Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI10" for linked server "XXXXX". 的解决方法 这是由于链接的数据库服务器的版本与本地数据库服务器不一致,有人说要升到sp3,sp4,然后在执行什么语句之类的 我觉得太繁琐了,通过网上查询之后看

Log4j – Configuring Log4j 2 - Apache Log4j 2

Apache Log4j 2 ? Logging Wiki Apache Logging Services Sonar   Configuration Inserting log requests into the application code requires a fair amount of planning and effort. Observation shows that approximately 4 percent of code is dedicated to logging

troubleshooting tools in JDK 7--转载

This chapter describes in detail the troubleshooting tools that are available in JDK 7. In addition, the chapter lists operating-system-specific tools that may be used in conjunction with these troubleshooting tools. Finally, the chapter explains how

SQLite EF Core Database Provider

原文链接 This database provider allows Entity Framework Core to be used with SQLite. The provider is maintained as part of the Entity Framework Core project. Supported Database Engines SQLite (3.7 onwards) Supported Platforms .NET Framework (4.5.1 onward

我与solr(五)--关于schema.xml中的相关配置的详解

先把文件的代码贴上来: <?xml version="1.0" encoding="UTF-8" ?> <!-- 版权说明... --> <!-- 这是solr的chema 文件,这个文件应该被重命名为"schema.xml",而且他应该放在solrhome/core/conf文件下面. 获取你也能在solr webapp 的classload下面找到他. 更多的信息可以查看 http://wiki.apache.o