从脚本激发Integration Services事件时,我对Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase上Microsoft.SqlServer.Dts.Tasks.ScriptTask.EventsObjectWrapper Dts属性的FireInformation方法有所了解。最后一个参数fireAgain通过引用传递。该文档解释说:“继续发射是正确的;否则,是错误的。” 为什么通过引用传递参数?在某些情况下,该方法将值设置为true并要求调用方重复调用吗?如果调用者将该值设置为false,则意味着什么?
在我所处的遗留项目中,我们有几个通过DTS执行的处理.DTS并不是我在嘿嘿日工作的很多东西....我在大学里.
更具体,这些过程在ActiveX代码块中 - 基本上是数据库的VBScript.调试真的很难.
无论如何,我想知道过去或现在有经验的DTS专业人员是否可以提供有关如何处理调试,故障排除或以其他方式处理DTS包开发的提示.
这个问题被标记为社区维基,我希望为所有类型的DTS包实现提供一般和有针对性的想法和方法.
我正在尝试将大型Access .mdb数据库导出到SQL Server数据库,并且一直遇到Microsoft DTS无法识别访问数据库中特定类型字段的数据类型的问题.
我查看了相关的访问表,并将它们设置为长度为1的"文本".如果填充,它们包含单个Y或N值,但也可以具有空值.
我一直在测试包含这种类型字段的单个表.当我打开"编辑映射"屏幕时,数据类型设置为-1,因此我手动将其设置为长度为1的char类型,并尝试处理该表.这会产生以下错误消息:
[Source Information]
Source Location : C:\admin\facdata.mdb
Source Provider : Microsoft.Jet.OLEDB.4.0
Table: `ACASSCATDEPREC`
Column: DepBook
Column Type: 130
SSIS Type: (Type unknown ...)
Mapping file (to SSIS type): c:\Program Files\Microsoft SQL Server\100\DTS\MappingFiles\JetToSSIS.xml
[Destination Information]
Destination Location : SERVERNAME
Destination Provider : SQLOLEDB
Table: [dbo].[ACASSCATDEPREC]
Column: DepBook
Column Type: char
SSIS Type: string [DT_STR]
Mapping file (to SSIS type): c:\Program Files\Microsoft SQL Server\100\DTS\MappingFiles\MSSQLToSSIS10.XML
[Conversion Steps]
Conversion unknown ...
SSIS conversion file: c:\Program Files\Microsoft SQL Server\100\DTS\binn\DtwTypeConversion.xml
Run Code Online (Sandbox Code Playgroud)
我一直在阅读各种博客,似乎我需要编辑xml映射文件来告诉DTS应该是什么数据类型130所以我编辑了文件 …
我想手动编译我的主板设备树。我已经dtc从官方来源下载了最新版本的,但是当我尝试运行以下命令时,出现错误提示我将所有#include指令更改/include/为#define等等。
dtc -I dts -O dtb -p 0x1000 meson-gxl-s905x-khadas-vim.dts -o kvim1.dtb
Run Code Online (Sandbox Code Playgroud)
我的董事会是Khadas Vim,其核心是amlogic S905x SoC。所有包含文件都存在,并且错误是:
Error: meson-gxl-s905x-khadas-vim.dts:8.1-9 syntax error
FATAL ERROR: Unable to parse input tree
Run Code Online (Sandbox Code Playgroud)
第八行是:
#include <dt-bindings/input/input.h>
Run Code Online (Sandbox Code Playgroud)
更改#include为/include/将抑制错误!
如果您知道设备树“语言”的某些参考(U-boot文档除外),请对其进行介绍。
我确信这是一个很难回答的模糊问题,但我对此问题的一般看法表示感谢.
让我快速给你一个背景.
十年前,我们曾经写过数据加载从传统应用程序读取输入平面文件并将它们加载到我们的Datamart中.最初,我们的加载程序是用VB6编写的,并通过平面文件进行了修改,对于每个记录,执行了这个一般过程:
1)查看记录.如果找到,请更新它2)否则插入新记录
然后我们最终改变了这个过程,使用SQL Server来对临时表中的平面文件进行DTS,然后我们将在临时表上使用目标生产表执行大规模集合基本连接,从临时表中获取数据并使用它更新目标表.插入了未加入的记录.
这是对流程的简化,但实际上,流程从迭代方法变为"基于集合",不再一次执行更新1条记录.结果,我们获得了巨大的性能提升.
然后我们在DLL中创建了一个强大的共享函数集,用于使用这种方法执行常用函数/更新模式.它极大地抽象了开发,真正缩短了开发时间.
然后,一个ETL工具Informatica PowerCenter出现了,mgt希望对该工具进行标准化并重写使用DTS的旧VB负载.
我听说PowerCenter迭代地处理记录,但我知道它确实做了一些优化技巧,所以我很好奇Informatica将如何表现.
有没有人有任何使用DTS或SSIS的经验,能够做出通常表现更好的直觉性能预测?
我从未使用过sql jobs或dts.
什么..
N'DTSRun /~Z0xB6A63469D036090E592289E9BB069DBBB66DA8B3F00BB110255F2D64DD7346100CB714C2190C187070FAAF5BA84AB86B45D9EDCF423D9EE4FD4440C56ED3BB66F3337538BBC796E1A2AA15E8A78ED222DED7F01A55CF9AB025F8CB97E387FB129E9C77A6602918F64627B07CD005ED09569E30567F5AF1991346894A13CB2D7083C04A03AD842CF0C18665 '
Run Code Online (Sandbox Code Playgroud)
意思?我在哪里找到改变这个例程的代码?
我得到一个"索引超出了数组的范围." 我执行以下操作时出错.
1)我启动导入和导出数据向导(32位).
2)数据源:Odbc的.Net Framework数据提供程序.
3)我为我设置的32位Progress OpenEdge 10.2A ODBC驱动程序提供了连接字符串和DSN.
4)我设置了一个平面文件目的地.
5)当我点击"下一步"时,我收到以下错误:
无法检索源和目标数据的列信息,或者源列的数据类型未正确映射到目标提供程序上可用的列数据.
"VISION"."PUB"."tlrtran" - > C:\ Documents and Settings\user\Desktop\flat-file.txt:
- Index was outside the bounds of the array.
Run Code Online (Sandbox Code Playgroud)
附加信息:
指数数组的边界之外.(Microsoft.DataTransformationServices.Controls)
我们的数据仓库即将搬迁,我们需要更改位于 DTSX 包内 VBA 脚本任务中的许多连接字符串和 UNC 文件路径。
我们已经执行了大量的查找和替换,但是当使用这种方法更改脚本任务时,在 DTSX 包执行期间运行的二进制文件不会在运行时重新编译,导致查找和替换的更改没有反映在脚本任务的执行。
我找到了一些关于如何在 SQL Server 2008 和 2012 中执行此操作的文章,但我们使用的是 SQL Server 2014,这里的代码示例对我不起作用:( https://blogs.msdn.microsoft.com /jason_howell/2013/03/05/script-component-recompile-in-sql-server-2012-integration-services-ssis-to-refresh-metadata/)。
评论中的一些问题说明了我的问题,但没有一个“我以这种方式修复[导航到路径并包含引用]”对我有用——我没有看到这些程序集,以及 2008 年之间的变化到 2012 年,现在是 2014 年,我不确定这些库是否包含在我的发行版中......
因此,我在各种子目录中有一大堆 DTSX 文件,需要重新编译它们的脚本任务,以便我们能够使用这些更改。我希望不必手动打开每个包中的每个脚本任务来强制构建每个任务。
在此先感谢您提供任何潜在的解决方案!
请告诉我,将db结构复制到另一台服务器的最佳方法是什么?
我正在尝试在Management Studio中生成脚本,然后在远程计算机上运行该脚本.而且我讨厌那件事.它工作不可预测,你必须手动修复生成的脚本中的大量垃圾.我想这不是最好的解决方案.
然后我尝试使用DTSWizard.exe生成SSIS包,但我对这些东西一无所知,而且我找不到一种方法来只复制没有数据的结构.
也许有办法以某种方式将整个数据库结构分解成更小的部分并使用它们 - 首先执行所有表,然后是视图,然后是函数等.
或者还有另一种正常的方法可以做到这一点,而不是那么头痛?
我正在将 DTS 更新查找转换为带有更新查询的 SSIS 查找。到目前为止,它似乎不起作用。
旧的 DTS 活动 X 代码:
value = DTSLookups("apple").Execute(DTSSource("ID2"))
DTS 中的 SQL 查询:
UPDATE TABLE1 SET STAMP="TEST" WHERE (ID = ?)
在 SSIS 中:
创建查找,使用与上述相同的查询,如果单击列,则会出现错误:“无法从 SQL 语句导出参数信息。在准备命令之前设置参数信息”
有没有办法在 SSIS 中通过查找来完成这个任务?或者,还有更好的方法?
dts ×11
ssis ×6
sql-server ×4
sql ×2
activex ×1
build ×1
compilation ×1
database ×1
debugging ×1
device-tree ×1
embedded ×1
linux ×1
linux-kernel ×1
migration ×1
ms-access ×1
odbc ×1
progress-db ×1
smo ×1
vb.net ×1
xml ×1