⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dts.pas

📁 delphi使用sqlserver2000中dts导入导出数据
💻 PAS
📖 第 1 页 / 共 4 页
字号:
    //以下初始化字段对应关系
    If InStr(LineText,'DTS.DataPumpTransformCopy') > 0 Then
    begin
       ColumnListCount := ColumnListCount + 1 ;
    end
    Else If InStr(LineText, 'SourceColumns.New') > 0 Then
    begin
       S := True;
       D := False;
    end
    Else If InStr(LineText, 'DestinationColumns.New') > 0 Then
    begin
       D := True;
       S := False;
    end
    Else If InStr(LineText, 'oColumn.Name') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If S Then ColumnList[ColumnListCount].SourceColumns_Name := StringReplace(Trim(tmp),'"', '',[rfReplaceAll]);
       If D Then ColumnList[ColumnListCount].DestinationColumns_Name := StringReplace(Trim(tmp),'"', '',[rfReplaceAll]);
    end
    Else If InStr(LineText, 'oColumn.Ordinal') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If S Then ColumnList[ColumnListCount].SourceColumns_Ordinal := StrToInt(Trim(tmp));
       If D Then ColumnList[ColumnListCount].DestinationColumns_Ordinal := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'oColumn.Flags') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If S Then ColumnList[ColumnListCount].SourceColumns_Flags := StrToInt(Trim(tmp));
       If D Then ColumnList[ColumnListCount].DestinationColumns_Flags := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'oColumn.Size') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If S Then ColumnList[ColumnListCount].SourceColumns_Size := StrToInt(Trim(tmp));
       If D Then ColumnList[ColumnListCount].DestinationColumns_Size := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'oColumn.DataType') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If S Then ColumnList[ColumnListCount].SourceColumns_DataType := StrToInt(Trim(tmp));
       If D Then ColumnList[ColumnListCount].DestinationColumns_DataType := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'oColumn.Precision') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If S Then ColumnList[ColumnListCount].SourceColumns_Precision := StrToInt(Trim(tmp));
       If D Then ColumnList[ColumnListCount].DestinationColumns_Precision := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'oColumn.NumericScale') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If S Then ColumnList[ColumnListCount].SourceColumns_NumericScale := StrToInt(Trim(tmp));
       If D Then ColumnList[ColumnListCount].DestinationColumns_NumericScale := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'oColumn.Nullable') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If S Then ColumnList[ColumnListCount].SourceColumns_Nullable := (LowerCase(Trim(tmp)) = 'true');
       If D Then ColumnList[ColumnListCount].DestinationColumns_Nullable := (LowerCase(Trim(tmp)) = 'true');
    end
    //以下初始化DTS包
    Else If InStr(LineText, 'goPackage.Name') > 0 Then
    begin
       tmp :=Split(LineText, '=')[1];
       goPackageValues.Name := StringReplace(Trim(tmp),'"', '',[rfReplaceAll]);
    end
    Else If InStr(LineText, 'goPackage.WriteCompletionStatusToNTEventLog') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       goPackageValues.WriteCompletionStatusToNTEventLog := (LowerCase(Trim(tmp)) = 'true');
    end
    Else If InStr(LineText, 'goPackage.FailOnError') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       goPackageValues.FailOnError := (LowerCase(Trim(tmp)) = 'true');
    end
    Else If InStr(LineText, 'goPackage.PackagePriorityClass') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       goPackageValues.PackagePriorityClass := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'goPackage.MaxConcurrentSteps') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       goPackageValues.MaxConcurrentSteps := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'goPackage.LineageOptions') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       goPackageValues.LineageOptions := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'goPackage.UseTransaction') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       goPackageValues.UseTransaction := (LowerCase(Trim(tmp)) = 'true');
    end
    Else If InStr(LineText, 'goPackage.TransactionIsolationLevel') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       goPackageValues.TransactionIsolationLevel := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'goPackage.AutoCommitTransaction') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       goPackageValues.AutoCommitTransaction := (LowerCase(Trim(tmp)) = 'true');
    end
    Else If InStr(LineText, 'goPackage.RepositoryMetadataOptions') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       goPackageValues.RepositoryMetadataOptions := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'goPackage.UseOLEDBServiceComponents') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       goPackageValues.UseOLEDBServiceComponents := (LowerCase(Trim(tmp)) = 'true');
    end
    Else If InStr(LineText, 'goPackage.LogToSQLServer') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       goPackageValues.LogToSQLServer := (LowerCase(Trim(tmp)) = 'true');
    end
    Else If InStr(LineText, 'goPackage.LogServerFlags') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       goPackageValues.LogServerFlags := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'goPackage.FailPackageOnLogFailure') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       goPackageValues.FailPackageOnLogFailure := (LowerCase(Trim(tmp)) = 'true');
    end
    Else If InStr(LineText, 'goPackage.ExplicitGlobalVariables') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       goPackageValues.ExplicitGlobalVariables := (LowerCase(Trim(tmp)) = 'true');
    end
    Else If InStr(LineText, 'goPackage.FailPackageOnLogFailure') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       goPackageValues.FailPackageOnLogFailure := StrToBool(Trim(tmp));
    end
    //初始化DTSFlatFile参数
    Else If InStr(LineText, 'goPackage.Connections.New("DTSFlatFile")') > 0 Then
    begin
       DTSFlatFile[1].IsUsed := True;
    end
    Else If InStr(LineText, 'oConnection.ConnectionProperties("Data Source")') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If DTSFlatFile[1].IsUsed Then DTSFlatFile[1].oConnection_ConnectionProperties_DataSource := StringReplace(Trim(tmp),'"', '',[rfReplaceAll]);
    end
    Else If InStr(LineText, 'oConnection.ConnectionProperties("Mode")') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If DTSFlatFile[1].IsUsed Then DTSFlatFile[1].oConnection_ConnectionProperties_Mode := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'oConnection.ConnectionProperties("Row Delimiter")') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If DTSFlatFile[1].IsUsed Then DTSFlatFile[1].oConnection_ConnectionProperties_RowDelimiter := #13#10;
    end
    Else If InStr(LineText, 'oConnection.ConnectionProperties("File Format")') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If DTSFlatFile[1].IsUsed Then DTSFlatFile[1].oConnection_ConnectionProperties_FileFormat := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'oConnection.ConnectionProperties("Column Delimiter")') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If DTSFlatFile[1].IsUsed Then DTSFlatFile[1].oConnection_ConnectionProperties_ColumnDelimiter := StringReplace(Trim(tmp),'"', '',[rfReplaceAll]);
    end
    Else If InStr(LineText, 'oConnection.ConnectionProperties("File Type")') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If DTSFlatFile[1].IsUsed Then DTSFlatFile[1].oConnection_ConnectionProperties_FileType := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'oConnection.ConnectionProperties("Skip Rows")') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If DTSFlatFile[1].IsUsed Then DTSFlatFile[1].oConnection_ConnectionProperties_SkipRows := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'oConnection.ConnectionProperties("First Row Column Name")') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If DTSFlatFile[1].IsUsed Then DTSFlatFile[1].oConnection_ConnectionProperties_FirstRowColumnName := (LowerCase(Trim(tmp)) = 'true');
    end
    Else If InStr(LineText, 'oConnection.ConnectionProperties("Number of Column")') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If DTSFlatFile[1].IsUsed Then DTSFlatFile[1].oConnection_ConnectionProperties_NumberofColumn := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'oConnection.ConnectionProperties("Max characters per delimited column")') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If DTSFlatFile[1].IsUsed Then DTSFlatFile[1].oConnection_ConnectionProperties_Maxcharactersperdelimitedcolumn := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'oConnection.ConnectionProperties("Column Lengths")') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If DTSFlatFile[1].IsUsed Then DTSFlatFile[1].oConnection_ConnectionProperties_ColumnLengths := StringReplace(Trim(tmp),'"', '',[rfReplaceAll]);
    end
    Else If InStr(LineText, 'oConnection.ConnectionProperties("Column Names")') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If DTSFlatFile[1].IsUsed Then DTSFlatFile[1].oConnection_ConnectionProperties_ColumnNames := StringReplace(Trim(tmp),'"', '',[rfReplaceAll]);
    end
    Else If InStr(LineText, 'oConnection.ConnectionProperties("Text Qualifier Col Mask: 0=no, 1=yes, e.g. 0101")') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If DTSFlatFile[1].IsUsed Then DTSFlatFile[1].oConnection_ConnectionProperties_TextQualifierColMask := StringReplace(Trim(tmp),'"', '',[rfReplaceAll]);
    end
    Else If InStr(LineText, 'oConnection.ConnectionProperties("Blob Col Mask: 0=no, 1=yes, e.g. 0101")') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If DTSFlatFile[1].IsUsed Then DTSFlatFile[1].oConnection_ConnectionProperties_BlobColMask := StringReplace(Trim(tmp),'"', '',[rfReplaceAll]);
    end
    Else If InStr(LineText, 'oConnection.ID') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       If DTSFlatFile[1].IsUsed Then DTSFlatFile[1].oConnection_ID := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'goPackage.Connections.Add oConnection') > 0 Then
    begin
       If DTSFlatFile[1].IsUsed Then
       begin
         DTSFlatFile[3] := DTSFlatFile[2];
         DTSFlatFile[2] := DTSFlatFile[1];
         DTSFlatFile[1].IsUsed := False;
       end
    end
    //初始化oCustomTask1
    Else If InStr(LineText, 'oCustomTask1.SourceConnectionID') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       oCustomTaskValue.oCustomTask1_SourceConnectionID := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'oCustomTask1.SourceObjectName') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       oCustomTaskValue.oCustomTask1_SourceObjectName := StringReplace(Trim(tmp),'"', '',[rfReplaceAll]);
    end
    Else If InStr(LineText, 'oCustomTask1.SourceSQLStatement') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       oCustomTaskValue.oCustomTask1_SourceSQLStatement := StringReplace(Trim(tmp),'"', '',[rfReplaceAll]);
    end
    Else If InStr(LineText, 'oCustomTask1.DestinationConnectionID') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       oCustomTaskValue.oCustomTask1_DestinationConnectionID := StrToInt(Trim(tmp));
    end
    Else If InStr(LineText, 'oCustomTask1.DestinationObjectName') > 0 Then
    begin
       tmp := Split(LineText, '=')[1];
       oCustomTaskValue.oCustomTask1_DestinationObjectName := StringReplace(Trim(tmp),'"', '',[rfReplaceAll]);
    End;
    CheckText := True;
End;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -