チェンジセット 1648 (default)


以下の違いを無視:
日時:
2024/06/05 18:14:06 (4ヵ月前)
更新者:
hizuya@…
ログメッセージ:
  • DbDataOperator.Import で、テーブル定義の行だけで動作することを確認する UnitTest を追加。
  • DbDataOperator.Import で、TRUNCATE の場合でもシーケンス番号が指定されていればシーケンス番号をリセットする様に修正。
場所:
framework/trunk
ファイル:
6個の追加
3個の更新
9個の移動

凡例:

未変更
追加
削除
  • framework/trunk/Appendix/Test/Data/Import/21-AppendWithValue.txt

    r1647 r1648  
    11############################################################################## 
    22# 
    3 # テーブルをクリアせずにデータを INSERT するだけ 
     3# テーブルをクリアせずにシーケンスの初期値を設定しデータを INSERT するだけ 
    44# 
    55############################################################################## 
  • framework/trunk/Appendix/Test/Data/Import/23-ResetWithValue.txt

    r1647 r1648  
    11############################################################################## 
    22# 
    3 # テーブルをリセットしてデータを INSERT するだけ 
     3# テーブルをリセットしてシーケンスの初期値を設定しデータを INSERT するだけ 
    44# 
    55############################################################################## 
  • framework/trunk/Appendix/Test/Data/Import/24-ConditionWithValue.txt

    r1647 r1648  
    11############################################################################## 
    22# 
    3 # テーブルをクリアせずにデータを INSERT するだけ 
     3# テーブルのデータを条件付きで削除しシーケンスの初期値を設定しデータを INSERT するだけ 
    44# 
    55############################################################################## 
  • framework/trunk/CoreLibrary/Sources/Data/DbDataOperator.cs

    r1647 r1648  
    24692469                } 
    24702470 
     2471                // 既存データを削除 
    24712472                switch (mode) 
    24722473                { 
    24732474                    case Mode.Truncate: 
    24742475                    case Mode.ResetIdentity: 
    2475                         // 既存データを削除 
    24762476                        ClearTable(transaction, tableName, condition); 
    2477  
    2478                         // シーケンス番号をリセット 
    2479                         if (mode == Mode.ResetIdentity) 
    2480                         { 
    2481                             ResetSequence(transaction, columns.SequenceName ?? columns.TableName, columns.NextValue); 
    2482                         } 
    2483  
    24842477                        break; 
    2485  
    2486                     default: 
    2487                         // シーケンス番号が指定されていればシーケンス番号をリセット 
    2488                         if (columns.NextValue != null) 
    2489                         { 
    2490                             ResetSequence(transaction, columns.SequenceName ?? columns.TableName, columns.NextValue); 
    2491                         } 
    2492  
    2493                         break; 
     2478                } 
     2479 
     2480                // シーケンス番号のリセットが指定されているか、シーケンス番号の初期値が指定されていればシーケンス番号をリセット 
     2481                if (mode == Mode.ResetIdentity || columns.NextValue != null) 
     2482                { 
     2483                    ResetSequence(transaction, columns.SequenceName ?? columns.TableName, columns.NextValue); 
    24942484                } 
    24952485            } 
  • framework/trunk/CoreTest/CoreTest.csproj

    r1647 r1648  
    338338  </ItemGroup> 
    339339  <ItemGroup> 
    340     <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\14-ResetWithValue-0.txt" /> 
    341   </ItemGroup> 
    342   <ItemGroup> 
    343     <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\14-ResetWithValue-2.txt" /> 
     340    <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\23-ResetWithValue-0.txt" /> 
     341  </ItemGroup> 
     342  <ItemGroup> 
     343    <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\23-ResetWithValue-2.txt" /> 
    344344  </ItemGroup> 
    345345  <ItemGroup> 
     
    348348  </ItemGroup> 
    349349  <ItemGroup> 
    350     <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\15-AppendWithValue-0.txt" /> 
    351     <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\15-AppendWithValue-2.txt" /> 
    352   </ItemGroup> 
    353   <ItemGroup> 
    354     <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\16-ConditionWithValue-0.txt" /> 
    355     <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\16-ConditionWithValue-2.txt" /> 
     350    <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\21-AppendWithValue-0.txt" /> 
     351    <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\21-AppendWithValue-2.txt" /> 
     352  </ItemGroup> 
     353  <ItemGroup> 
     354    <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\24-ConditionWithValue-0.txt" /> 
     355    <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\24-ConditionWithValue-2.txt" /> 
    356356  </ItemGroup> 
    357357  <ItemGroup> 
     
    397397    <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\82-CommandWithVariable-2.txt" /> 
    398398  </ItemGroup> 
     399  <ItemGroup> 
     400    <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\26-AppendWithValueOnly-2-1.txt" /> 
     401    <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\27-TruncateWithValueOnly-2-1.txt" /> 
     402    <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\28-ResetWithValueOnly-2-1.txt" /> 
     403    <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\29-ConditionWithValueOnly-2-1.txt" /> 
     404  </ItemGroup> 
     405  <ItemGroup> 
     406    <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\22-TruncateWithValue-0.txt" /> 
     407    <EmbeddedResource Include="TestResources\Data\DbDataOperatorImportTest\22-TruncateWithValue-2.txt" /> 
     408  </ItemGroup> 
    399409  <Import Project="$(MSBuildThisFileDirectory)..\MSBuild.Common.targets" /> 
    400410</Project> 
  • framework/trunk/CoreTest/Sources/Data/DbDataOperatorImportTest.cs

    r1647 r1648  
    6161        /// <param name="initialRows">最初に準備する行数。</param> 
    6262        /// <param name="affectedRows">インポートした行数。</param> 
     63        /// <param name="appendRows">インポートした後に追加する行数。</param> 
    6364        /// <param name="useVariables"> 
    6465        /// 埋め込みに使用する変数を使用する場合は <see langword="true"/>。 
     
    6768        /// <param name="expedtedDataFile">結果のデータ。</param> 
    6869        [Test] 
    69         [TestCase(@"01-Append.txt", 0, 2, false, @"01-Append-0.txt")] 
    70         [TestCase(@"01-Append.txt", 2, 2, false, @"01-Append-2.txt")] 
    71         [TestCase(@"02-Truncate.txt", 0, 2, false, @"02-Truncate-0.txt")] 
    72         [TestCase(@"02-Truncate.txt", 2, 2, false, @"02-Truncate-2.txt")] 
    73         [TestCase(@"03-Reset.txt", 0, 2, false, @"03-Reset-0.txt")] 
    74         [TestCase(@"03-Reset.txt", 2, 2, false, @"03-Reset-2.txt")] 
    75         [TestCase(@"06-Condition.txt", 0, 3, false, @"06-Condition-0.txt")] 
    76         [TestCase(@"06-Condition.txt", 2, 3, false, @"06-Condition-2.txt")] 
    77         [TestCase(@"11-Append.txt", 0, 2, false, @"11-Append-0.txt")] 
    78         [TestCase(@"11-Append.txt", 2, 2, false, @"11-Append-2.txt")] 
    79         [TestCase(@"12-Truncate.txt", 0, 2, false, @"12-Truncate-0.txt")] 
    80         [TestCase(@"12-Truncate.txt", 2, 2, false, @"12-Truncate-2.txt")] 
    81         [TestCase(@"13-Reset.txt", 0, 2, false, @"13-Reset-0.txt")] 
    82         [TestCase(@"13-Reset.txt", 2, 2, false, @"13-Reset-2.txt")] 
    83         [TestCase(@"14-ResetWithValue.txt", 0, 2, false, @"14-ResetWithValue-0.txt")] 
    84         [TestCase(@"14-ResetWithValue.txt", 2, 2, false, @"14-ResetWithValue-2.txt")] 
    85         [TestCase(@"15-AppendWithValue.txt", 0, 2, false, @"15-AppendWithValue-0.txt")] 
    86         [TestCase(@"15-AppendWithValue.txt", 2, 2, false, @"15-AppendWithValue-2.txt")] 
    87         [TestCase(@"16-ConditionWithValue.txt", 0, 2, false, @"16-ConditionWithValue-0.txt")] 
    88         [TestCase(@"16-ConditionWithValue.txt", 2, 2, false, @"16-ConditionWithValue-2.txt")] 
    89         [TestCase(@"17-AppendEmpty.txt", 0, 2, false, @"17-AppendEmpty-0.txt")] 
    90         [TestCase(@"17-AppendEmpty.txt", 2, 2, false, @"17-AppendEmpty-2.txt")] 
    91         [TestCase(@"18-TruncateEmpty.txt", 0, 2, false, @"18-TruncateEmpty-0.txt")] 
    92         [TestCase(@"18-TruncateEmpty.txt", 2, 2, false, @"18-TruncateEmpty-2.txt")] 
    93         [TestCase(@"19-ResetEmpty.txt", 0, 2, false, @"19-ResetEmpty-0.txt")] 
    94         [TestCase(@"19-ResetEmpty.txt", 2, 2, false, @"19-ResetEmpty-2.txt")] 
    95         [TestCase(@"31-QuoteString.txt", 0, 2, false, @"31-QuoteString-0.txt")] 
    96         [TestCase(@"31-QuoteString.txt", 2, 2, false, @"31-QuoteString-2.txt")] 
    97         [TestCase(@"32-Variable.txt", 0, 2, true, @"32-Variable-0.txt")] 
    98         [TestCase(@"32-Variable.txt", 2, 2, true, @"32-Variable-2.txt")] 
    99         [TestCase(@"33-VariableInQuoteString.txt", 0, 2, true, @"33-VariableInQuoteString-0.txt")] 
    100         [TestCase(@"33-VariableInQuoteString.txt", 2, 2, true, @"33-VariableInQuoteString-2.txt")] 
    101         [TestCase(@"34-VariableOnlyString.txt", 0, 2, false, @"34-VariableOnlyString-0.txt")] 
    102         [TestCase(@"34-VariableOnlyString.txt", 2, 2, false, @"34-VariableOnlyString-2.txt")] 
    103         [TestCase(@"51-MissingColumnData.txt", 0, 3, false, @"51-MissingColumnData-0.txt")] 
    104         [TestCase(@"51-MissingColumnData.txt", 2, 3, false, @"51-MissingColumnData-2.txt")] 
    105         [TestCase(@"61-SubQuery.txt", 0, 2, false, @"61-SubQuery-0.txt")] 
    106         [TestCase(@"61-SubQuery.txt", 2, 2, false, @"61-SubQuery-2.txt")] 
    107         [TestCase(@"62-SubQueryWithVariable.txt", 0, 2, true, @"62-SubQueryWithVariable-0.txt")] 
    108         [TestCase(@"62-SubQueryWithVariable.txt", 2, 2, true, @"62-SubQueryWithVariable-2.txt")] 
    109         [TestCase(@"71-MultiTable.txt", 0, 4, false, @"71-MultiTable-0.txt")] 
    110         [TestCase(@"71-MultiTable.txt", 2, 4, false, @"71-MultiTable-2.txt")] 
    111         [TestCase(@"81-Command.txt", 0, 2, false, @"81-Command-0.txt")] 
    112         [TestCase(@"81-Command.txt", 2, 3, false, @"81-Command-2.txt")] 
    113         [TestCase(@"82-CommandWithVariable.txt", 0, 2, true, @"82-CommandWithVariable-0.txt")] 
    114         [TestCase(@"82-CommandWithVariable.txt", 2, 3, true, @"82-CommandWithVariable-2.txt")] 
    115         public void TestImport(string importFileName, int initialRows, int affectedRows, bool useVariables, string expedtedDataFile) 
     70        [TestCase(@"01-Append.txt", 0, 2, 0, false, @"01-Append-0.txt")] 
     71        [TestCase(@"01-Append.txt", 2, 2, 0, false, @"01-Append-2.txt")] 
     72        [TestCase(@"02-Truncate.txt", 0, 2, 0, false, @"02-Truncate-0.txt")] 
     73        [TestCase(@"02-Truncate.txt", 2, 2, 0, false, @"02-Truncate-2.txt")] 
     74        [TestCase(@"03-Reset.txt", 0, 2, 0, false, @"03-Reset-0.txt")] 
     75        [TestCase(@"03-Reset.txt", 2, 2, 0, false, @"03-Reset-2.txt")] 
     76        [TestCase(@"06-Condition.txt", 0, 3, 0, false, @"06-Condition-0.txt")] 
     77        [TestCase(@"06-Condition.txt", 2, 3, 0, false, @"06-Condition-2.txt")] 
     78        [TestCase(@"11-Append.txt", 0, 2, 0, false, @"11-Append-0.txt")] 
     79        [TestCase(@"11-Append.txt", 2, 2, 0, false, @"11-Append-2.txt")] 
     80        [TestCase(@"12-Truncate.txt", 0, 2, 0, false, @"12-Truncate-0.txt")] 
     81        [TestCase(@"12-Truncate.txt", 2, 2, 0, false, @"12-Truncate-2.txt")] 
     82        [TestCase(@"13-Reset.txt", 0, 2, 0, false, @"13-Reset-0.txt")] 
     83        [TestCase(@"13-Reset.txt", 2, 2, 0, false, @"13-Reset-2.txt")] 
     84        [TestCase(@"17-AppendEmpty.txt", 0, 2, 0, false, @"17-AppendEmpty-0.txt")] 
     85        [TestCase(@"17-AppendEmpty.txt", 2, 2, 0, false, @"17-AppendEmpty-2.txt")] 
     86        [TestCase(@"18-TruncateEmpty.txt", 0, 2, 0, false, @"18-TruncateEmpty-0.txt")] 
     87        [TestCase(@"18-TruncateEmpty.txt", 2, 2, 0, false, @"18-TruncateEmpty-2.txt")] 
     88        [TestCase(@"19-ResetEmpty.txt", 0, 2, 0, false, @"19-ResetEmpty-0.txt")] 
     89        [TestCase(@"19-ResetEmpty.txt", 2, 2, 0, false, @"19-ResetEmpty-2.txt")] 
     90        [TestCase(@"21-AppendWithValue.txt", 0, 2, 0, false, @"21-AppendWithValue-0.txt")] 
     91        [TestCase(@"21-AppendWithValue.txt", 2, 2, 0, false, @"21-AppendWithValue-2.txt")] 
     92        [TestCase(@"22-TruncateWithValue.txt", 0, 2, 0, false, @"22-TruncateWithValue-0.txt")] 
     93        [TestCase(@"22-TruncateWithValue.txt", 2, 2, 0, false, @"22-TruncateWithValue-2.txt")] 
     94        [TestCase(@"23-ResetWithValue.txt", 0, 2, 0, false, @"23-ResetWithValue-0.txt")] 
     95        [TestCase(@"23-ResetWithValue.txt", 2, 2, 0, false, @"23-ResetWithValue-2.txt")] 
     96        [TestCase(@"24-ConditionWithValue.txt", 0, 2, 0, false, @"24-ConditionWithValue-0.txt")] 
     97        [TestCase(@"24-ConditionWithValue.txt", 2, 2, 0, false, @"24-ConditionWithValue-2.txt")] 
     98        [TestCase(@"26-AppendWithValueOnly.txt", 2, 0, 1, false, @"26-AppendWithValueOnly-2-1.txt")] 
     99        [TestCase(@"27-TruncateWithValueOnly.txt", 2, 0, 1, false, @"27-TruncateWithValueOnly-2-1.txt")] 
     100        [TestCase(@"28-ResetWithValueOnly.txt", 2, 0, 1, false, @"28-ResetWithValueOnly-2-1.txt")] 
     101        [TestCase(@"29-ConditionWithValueOnly.txt", 2, 0, 1, false, @"29-ConditionWithValueOnly-2-1.txt")] 
     102        [TestCase(@"31-QuoteString.txt", 0, 2, 0, false, @"31-QuoteString-0.txt")] 
     103        [TestCase(@"31-QuoteString.txt", 2, 2, 0, false, @"31-QuoteString-2.txt")] 
     104        [TestCase(@"32-Variable.txt", 0, 2, 0, true, @"32-Variable-0.txt")] 
     105        [TestCase(@"32-Variable.txt", 2, 2, 0, true, @"32-Variable-2.txt")] 
     106        [TestCase(@"33-VariableInQuoteString.txt", 0, 2, 0, true, @"33-VariableInQuoteString-0.txt")] 
     107        [TestCase(@"33-VariableInQuoteString.txt", 2, 2, 0, true, @"33-VariableInQuoteString-2.txt")] 
     108        [TestCase(@"34-VariableOnlyString.txt", 0, 2, 0, false, @"34-VariableOnlyString-0.txt")] 
     109        [TestCase(@"34-VariableOnlyString.txt", 2, 2, 0, false, @"34-VariableOnlyString-2.txt")] 
     110        [TestCase(@"51-MissingColumnData.txt", 0, 3, 0, false, @"51-MissingColumnData-0.txt")] 
     111        [TestCase(@"51-MissingColumnData.txt", 2, 3, 0, false, @"51-MissingColumnData-2.txt")] 
     112        [TestCase(@"61-SubQuery.txt", 0, 2, 0, false, @"61-SubQuery-0.txt")] 
     113        [TestCase(@"61-SubQuery.txt", 2, 2, 0, false, @"61-SubQuery-2.txt")] 
     114        [TestCase(@"62-SubQueryWithVariable.txt", 0, 2, 0, true, @"62-SubQueryWithVariable-0.txt")] 
     115        [TestCase(@"62-SubQueryWithVariable.txt", 2, 2, 0, true, @"62-SubQueryWithVariable-2.txt")] 
     116        [TestCase(@"71-MultiTable.txt", 0, 4, 0, false, @"71-MultiTable-0.txt")] 
     117        [TestCase(@"71-MultiTable.txt", 2, 4, 0, false, @"71-MultiTable-2.txt")] 
     118        [TestCase(@"81-Command.txt", 0, 2, 0, false, @"81-Command-0.txt")] 
     119        [TestCase(@"81-Command.txt", 2, 3, 0, false, @"81-Command-2.txt")] 
     120        [TestCase(@"82-CommandWithVariable.txt", 0, 2, 0, true, @"82-CommandWithVariable-0.txt")] 
     121        [TestCase(@"82-CommandWithVariable.txt", 2, 3, 0, true, @"82-CommandWithVariable-2.txt")] 
     122        public void TestImport(string importFileName, int initialRows, int affectedRows, int appendRows, bool useVariables, string expedtedDataFile) 
    116123        { 
    117124            string path = UnitTestUtility.NormalizeDataPath(Path.Combine("Import", importFileName)); 
     
    157164                    { 
    158165                        actualAffectedRows = DbDataOperator.Import(transaction, fileStream, variables); 
     166                    } 
     167 
     168                    for (int i = 0; i < appendRows; i++) 
     169                    { 
     170                        DbDataOperator.Insert( 
     171                            transaction, 
     172                            new NormalBean 
     173                            { 
     174                                Id = i + 201, 
     175                                Int32 = i + 201, 
     176                                String = "AD " + (i + 1), 
     177                                Double = i + 201.5, 
     178                            }); 
     179                        DbDataOperator.Insert( 
     180                            transaction, 
     181                            new AutoSequenceNumberBean 
     182                            { 
     183                                Int32 = i + 201, 
     184                                String = "AD " + (i + 1), 
     185                                Double = i + 201.5, 
     186                            }); 
    159187                    } 
    160188 
  • framework/trunk/CoreTest/TestResources/Data/DbDataOperatorImportTest/21-AppendWithValue-0.txt

    r1647 r1648  
    11############################################################################## 
    22# 
    3 # テーブルが空の状態で 15-AppendWithValue.txt をインポート 
     3# テーブルが空の状態で 21-AppendWithValue.txt をインポート 
    44# 
    55############################################################################## 
  • framework/trunk/CoreTest/TestResources/Data/DbDataOperatorImportTest/21-AppendWithValue-2.txt

    r1647 r1648  
    11############################################################################## 
    22# 
    3 # テーブルに 2 件ある状態で 15-AppendWithValue.txt をインポート 
     3# テーブルに 2 件ある状態で 21-AppendWithValue.txt をインポート 
    44# 
    55############################################################################## 
  • framework/trunk/CoreTest/TestResources/Data/DbDataOperatorImportTest/23-ResetWithValue-0.txt

    r1647 r1648  
    11############################################################################## 
    22# 
    3 # テーブルが空の状態で 13-Reset.txt をインポート 
     3# テーブルが空の状態で 23-ResetWithValue.txt をインポート 
    44# 
    55############################################################################## 
  • framework/trunk/CoreTest/TestResources/Data/DbDataOperatorImportTest/23-ResetWithValue-2.txt

    r1647 r1648  
    11############################################################################## 
    22# 
    3 # テーブルに 2 件ある状態で 13-Reset.txt をインポート 
     3# テーブルに 2 件ある状態で 23-ResetWithValue.txt をインポート 
    44# 
    55############################################################################## 
  • framework/trunk/CoreTest/TestResources/Data/DbDataOperatorImportTest/24-ConditionWithValue-0.txt

    r1647 r1648  
    11############################################################################## 
    22# 
    3 # テーブルが空の状態で 16-ConditionWithValue.txt をインポート 
     3# テーブルが空の状態で 24-ConditionWithValue.txt をインポート 
    44# 
    55############################################################################## 
  • framework/trunk/CoreTest/TestResources/Data/DbDataOperatorImportTest/24-ConditionWithValue-2.txt

    r1647 r1648  
    11############################################################################## 
    22# 
    3 # テーブルに 2 件ある状態で 16-ConditionWithValue.txt をインポート 
     3# テーブルに 2 件ある状態で 24-ConditionWithValue.txt をインポート 
    44# 
    55############################################################################## 
詳しい使い方は TracChangeset を参照してください。