BIML GetDatabaseSchema不适用于ODBC进度源数据库

BIML GetDatabaseSchema不适用于ODBC进度源数据库,odbc,progress,biml,Odbc,Progress,Biml,我正试图用BIML生成一个自动暂存区。 源数据库是Progress,通过ODBC连接 我正在使用以下演练: 1-2-Environment.biml: Source2是正常的ODBC连接,Source是使用OLEDB for ODBC进行的测试 1-2-CreateTableMetadata.biml 对 1-x-DeployTargetTables.biml: 问题是,生成的MasterTableDeploy.dtsx包不包含任何内容,它只是空的。 作为测试,我使用了我们自己

我正试图用BIML生成一个自动暂存区。 源数据库是Progress,通过ODBC连接

我正在使用以下演练:

1-2-Environment.biml:


Source2是正常的ODBC连接,Source是使用OLEDB for ODBC进行的测试

1-2-CreateTableMetadata.biml

1-x-DeployTargetTables.biml:


问题是,生成的MasterTableDeploy.dtsx包不包含任何内容,它只是空的。 作为测试,我使用了我们自己的SQL Server作为源代码,它工作得非常好。 使用Progress ODBC源不会执行任何操作,没有错误消息


有什么想法吗?

我在尝试使用ODBC连接连接到Db2数据库时遇到了类似的问题。我最终反编译了bimlingine.dll,发现ODBC连接没有实现此功能。
对不起

我知道时间晚了,但也许它能帮助别人


某些ODBC提供程序和GetDatabaseSchema()存在问题。对我来说,ImportDB()(GetDatabaseSchema()的旧版本)工作正常

您或其他人有权访问数据库日志吗?通常是dbname.lg。也许他们透露了什么?你好,你指的是什么日志?进步?没错。至少有一个名为“databasename.lg”的数据库日志。如果您使用appserver,还有一些名为asbroker1.server.log和asbroker1.broker.log的文件。这些名称是标准名称,但可以重命名(除了数据库日志)。好的,我将尝试联系数据库管理员,因为我没有访问服务器的权限。遗憾的是,*.lg文件或其他文件中没有任何记录。还有其他想法吗?谢谢你的回复。如果这是真的,为什么他们不在某个地方说出来呢?我们花了几个小时试图让它工作。由于您包括System.DB,您可以直接尝试使用System.DB.ODBC.GetSchema()方法(或System.DB.Oledb.GetSchema(),如果Oledb是您的毒药…)并从那里开始工作。在脚本任务中,我曾经这样做过一次,以查询特定的不太兼容的“ODBC”驱动程序/数据库中的模式对象。。。
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
   <#@ template tier="0" #>

<Connections>
    <OleDbConnection Name="Source" ConnectionString="Provider=MSDASQL;DSN=XXX;UID=XXX;PWD=XXX;" />
    <OdbcConnection Name="Source2" ConnectionString="DSN=XXX;UID=XXX;PWD=XXX;" />
    <OleDbConnection Name="Target" ConnectionString="Provider=SQLOLEDB;Server=localhost;Initial Catalog=DWH_Staging;Integrated Security=SSPI;" />
</Connections>
<Databases>
    <Database Name="DWH_Staging" ConnectionName="Target" />
    <Database Name="pa" ConnectionName="Source" />
</Databases>
<Schemas>
    <Schema Name="test" DatabaseName="DWH_Staging" />
    <Schema Name="pub" DatabaseName="pa" />
</Schemas>
<#@ import namespace="System.Data" #>
<#@ import namespace="Varigence.Biml.CoreLowerer.SchemaManagement" #>

<#
var sourceConnection = RootNode.DbConnections["Source"];
var importResult = sourceConnection.GetDatabaseSchema();

#>
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
  <Tables>
    <# foreach (var table in importResult.TableNodes) { #>
    <Table Name="Staging_<#=table.Schema.Name#>_<#=table.Name#>" SchemaName="DWH_Staging.test">
      <Columns>
        <# foreach (var column in table.Columns) { #>
          <# if (column.DataType == System.Data.DbType.AnsiString) { #>
            <Column Name="<#=column.Name#>" DataType="String" Length="<#=column.Length#>">
              <Annotations>
                <Annotation AnnotationType="Tag" Tag="ConvertToUnicode">yes</Annotation>
              </Annotations>
            </Column>
          <# } else { #>
            <#=column.GetBiml()#>
          <# } #>
        <# } #>
      </Columns>
      <Annotations>
        <Annotation AnnotationType="Tag" Tag="SourceSchemaQualifiedName"><#=table.SchemaQualifiedName#></Annotation>
      </Annotations>
    </Table>
    <# } #>
  </Tables>
</Biml>
<#@ template tier="2" #>
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
  <Packages>
    <Package Name="MasterTableDeploy" ConstraintMode="Parallel">
      <Tasks>
        <# foreach (var table in RootNode.Tables) { #>
        <ExecuteSQL Name="Create <#=table.Name#>" ConnectionName="Target">
          <DirectInput><#=table.GetDropAndCreateDdl()#></DirectInput>
        </ExecuteSQL>
        <# } #>
      </Tasks>
    </Package>
  </Packages>
</Biml>