@@ -245,6 +245,42 @@ public void BulkLoadLocalCsvFileInTransactionWithCommit()
245
245
}
246
246
}
247
247
248
+ [ Fact ]
249
+ public void BulkLoadLocalCsvFileBeforeTransactionWithCommit ( )
250
+ {
251
+ try
252
+ {
253
+ m_database . Connection . Open ( ) ;
254
+ var bulkLoader = new MySqlBulkLoader ( m_database . Connection )
255
+ {
256
+ FileName = AppConfig . MySqlBulkLoaderLocalCsvFile ,
257
+ TableName = m_testTable ,
258
+ CharacterSet = "UTF8" ,
259
+ NumberOfLinesToSkip = 1 ,
260
+ FieldTerminator = "," ,
261
+ FieldQuotationCharacter = '"' ,
262
+ FieldQuotationOptional = true ,
263
+ Local = true ,
264
+ } ;
265
+ bulkLoader . Expressions . Add ( "five = UNHEX(five)" ) ;
266
+ bulkLoader . Columns . AddRange ( new [ ] { "one" , "two" , "three" , "four" , "five" } ) ;
267
+
268
+ using ( var transaction = m_database . Connection . BeginTransaction ( ) )
269
+ {
270
+ var rowCount = bulkLoader . Load ( ) ;
271
+ Assert . Equal ( 20 , rowCount ) ;
272
+
273
+ transaction . Commit ( ) ;
274
+ }
275
+
276
+ Assert . Equal ( 20 , m_database . Connection . ExecuteScalar < int > ( $@ "select count(*) from { m_testTable } ;") ) ;
277
+ }
278
+ finally
279
+ {
280
+ m_database . Connection . Close ( ) ;
281
+ }
282
+ }
283
+
248
284
[ Fact ]
249
285
public void BulkLoadLocalCsvFileInTransactionWithRollback ( )
250
286
{
@@ -281,6 +317,42 @@ public void BulkLoadLocalCsvFileInTransactionWithRollback()
281
317
}
282
318
}
283
319
320
+ [ Fact ]
321
+ public void BulkLoadLocalCsvFileBeforeTransactionWithRollback ( )
322
+ {
323
+ try
324
+ {
325
+ m_database . Connection . Open ( ) ;
326
+ var bulkLoader = new MySqlBulkLoader ( m_database . Connection )
327
+ {
328
+ FileName = AppConfig . MySqlBulkLoaderLocalCsvFile ,
329
+ TableName = m_testTable ,
330
+ CharacterSet = "UTF8" ,
331
+ NumberOfLinesToSkip = 1 ,
332
+ FieldTerminator = "," ,
333
+ FieldQuotationCharacter = '"' ,
334
+ FieldQuotationOptional = true ,
335
+ Local = true ,
336
+ } ;
337
+ bulkLoader . Expressions . Add ( "five = UNHEX(five)" ) ;
338
+ bulkLoader . Columns . AddRange ( new [ ] { "one" , "two" , "three" , "four" , "five" } ) ;
339
+
340
+ using ( var transaction = m_database . Connection . BeginTransaction ( ) )
341
+ {
342
+ var rowCount = bulkLoader . Load ( ) ;
343
+ Assert . Equal ( 20 , rowCount ) ;
344
+
345
+ transaction . Rollback ( ) ;
346
+ }
347
+
348
+ Assert . Equal ( 0 , m_database . Connection . ExecuteScalar < int > ( $@ "select count(*) from { m_testTable } ;") ) ;
349
+ }
350
+ finally
351
+ {
352
+ m_database . Connection . Close ( ) ;
353
+ }
354
+ }
355
+
284
356
[ Fact ]
285
357
public void BulkLoadMissingFileName ( )
286
358
{
0 commit comments