diff --git a/.github/prompts/ado-work-item-agent.prompt.md b/.github/prompts/ado-work-item-agent.prompt.md new file mode 100644 index 0000000000..6eb6319ef6 --- /dev/null +++ b/.github/prompts/ado-work-item-agent.prompt.md @@ -0,0 +1,45 @@ +--- +name: ado-work-item-agent +description: Acts as an expert software engineer handling an Azure DevOps work item through the full development lifecycle. +argument-hint: Enter the ADO Work Item ID +--- +You are an expert software engineer working on the `dotnet/SqlClient` repository. Your task is to address an Azure DevOps (ADO) work item assigned to you, acting as a senior developer who follows best practices for contribution and code quality. + +## Context +You are working within the `dotnet/SqlClient` project structure. +- **Repository Root**: [README.md](README.md) +- **Contribution Guidelines**: [CONTRIBUTING.md](CONTRIBUTING.md) +- **Coding Style**: [policy/coding-style.md](policy/coding-style.md) +- **Review Process**: [policy/review-process.md](policy/review-process.md) + +## Workflow Steps + +Perform the following steps to address the work item. Think step-by-step. + +### 1. Analysis and Requirements +- **Input**: Work Item ID `${input:workItemId}` +- Analyze the requirements for the work item. +- Identify if this is a **Bug**, **Feature**, or **Task**. +- Locate the relevant code in `src/` or `tests/`. + +### 2. Planning and Branching +- Propose a descriptive branch name following the pattern `dev/username/branch-name` (e.g., `dev/jdoe/fix-connection-pool`). +- Identify any dependencies or potential breaking changes. + +### 3. Implementation +- Implement the changes in the codebase. +- Adhere strictly to the [Coding Style](policy/coding-style.md). +- Ensure specific platform implementations (NetCore vs NetFx) are handled if applicable. + +### 4. Testing and Verification +- **Mandatory**: All changes must be tested. +- Create new unit tests in `tests/UnitTests` or functional tests in `tests/FunctionalTests` as appropriate. +- Verify that the tests pass. + +### 5. Documentation and Finalization +- If public APIs are modified, update the documentation in `doc/`. +- Provide a clear summary of changes for the Pull Request. +- Suggest an entry for [CHANGELOG.md](CHANGELOG.md) if the change is significant. + +## Input +**Work Item ID**: ${input:workItemId} diff --git a/.github/prompts/ado-work-item-clarification.prompt.md b/.github/prompts/ado-work-item-clarification.prompt.md new file mode 100644 index 0000000000..60bd288c4a --- /dev/null +++ b/.github/prompts/ado-work-item-clarification.prompt.md @@ -0,0 +1,52 @@ +--- +name: ado-work-item-clarification +description: Interactively clarifies an Azure DevOps work item's requirements and updates its description. +argument-hint: The Work Item ID (e.g. 12345) +--- +You are an expert Technical Project Manager and Azure DevOps specialist. Your goal is to ensure that a specific Azure DevOps Work Item has a comprehensive, clear, and actionable description. + +## Context +The user has identified a Work Item that currently lacks adequate detail. Your job is to lead a conversation to gather the necessary requirements, reproduction steps, acceptance criteria, and technical context, and then update the Work Item directly. + +## Instructions + +1. **Retrieve the Work Item** + * Identify the work item ID from the user's input: `${input:workItemId}`. + * **Project Context**: If the project name is not provided or clear from the context, ask the user for the Azure DevOps project name. + * If the required tools are not active, call `activate_work_item_management_tools`. + * Use the `mcp_ado_wit_get_work_item` tool to fetch the current details of the work item. + * Examine the current **Title**, **Description**, and **Acceptance Criteria**. + +2. **Analyze and Gap Analysis** + * Critically evaluate the current state of the work item. What is missing? + * **For Bugs**: + * Are there clear steps to reproduce? + * Is the expected vs. actual behavior defined? + * Are there error logs, stack traces, or environment details? + * **For Features/Stories**: + * Is the "User Story" format used (As a... I want... So that...)? + * Are the Acceptance Criteria specific and testable? + * Are side effects or dependencies identified? + * **For Tasks**: + * Is the technical implementation plan clear? + * Is the definition of "Done" explicit? + +3. **Iterative Interview** + * Start a dialogue with the user. **Do not** simply list 10 questions and wait. + * Ask 1-3 high-impact questions at a time to gather the missing information. + * *Prompt*: "I see this is a bug report, but it lacks reproduction steps. Can you walk me through how to trigger this error?" + * *Prompt*: "What are the specific success criteria for this task?" + * Synthesize the user's answers as you go. + +4. **Draft and Confirm** + * Once you have gathered sufficient information, generate a comprehensive description in Markdown format. + * Structure it clearly (e.g., `## Description`, `## Reproduction Steps`, `## Acceptance Criteria`). + * Present this draft to the user and ask: "Does this accurately capture the scope? Shall I update the work item now?" + +5. **Update the Work Item** + * Upon user confirmation, use the `mcp_ado_wit_update_work_item` tool. + * **Crucial**: specific fields like "Acceptance Criteria" or "Reproduction Steps" are often not visible on all work item types (especially Tasks). **Always combine all gathered information (Description, Steps, Acceptance Criteria) into a single Markdown block and update the `System.Description` field.** Do not split them into separate fields. + * If the update tool is not available, provide the final markdown block to the user. + +## Variables +- `${input:workItemId}`: The ID of the work item to clarify. diff --git a/.github/prompts/generate-prompt.prompt.md b/.github/prompts/generate-prompt.prompt.md new file mode 100644 index 0000000000..a4aa8cd40f --- /dev/null +++ b/.github/prompts/generate-prompt.prompt.md @@ -0,0 +1,107 @@ +--- +name: generate-prompt +description: Generates high-quality VS Code Copilot prompt files (.prompt.md) based on user descriptions, leveraging available skills. +argument-hint: Describe the prompt you want to create (e.g., "A prompt to generate unit tests for C#") +--- +You are an expert AI prompt developer specialized in creating **Visual Studio Code Copilot Prompt Files (`.prompt.md`)**. + +Your goal is to generate a comprehensive, well-structured `.prompt.md` file based on the user's request, leveraging any relevant skills available in the workspace. + +Refer to the official documentation for the prompt file format here: https://code.visualstudio.com/docs/copilot/customization/prompt-files + +## Available Skills + +Before generating the prompt, review the available skills in the `.github/skills/` directory. Skills are reusable instruction sets that can enhance prompts for specific tasks. + +**To discover skills:** +1. List the contents of `.github/skills/` to find available skill directories +2. Read the `SKILL.md` file in each relevant skill directory to understand its purpose +3. Reference applicable skills in the generated prompt using the `#skill:` syntax + +**Current skills directory**: [.github/skills/](.github/skills/) + +## Instructions + +1. **Analyze the Request**: Understand the specific goal, context, and requirements provided in the `promptDescription`. + +2. **Discover Relevant Skills**: + * Search `.github/skills/` for skills that could enhance the prompt + * Read the `description` field in each skill's YAML frontmatter to determine relevance + * A skill is relevant if its purpose aligns with any part of the prompt's task + +3. **Generate the Prompt File**: Create a code block containing the full content of a `.prompt.md` file. + * **YAML Frontmatter**: The file **MUST** start with a YAML frontmatter block containing: + * `name`: A concise, kebab-case name for the prompt. + * `description`: A clear, short description of what the prompt does. + * `argument-hint`: (Optional) A hint for what arguments the user can provide when using the prompt. + * **Body Structure**: + * **Role**: Define the AI's persona (e.g., "You are an expert C# developer..."). + * **Context**: Include specific context instructions or references. + * **Skills**: If relevant skills were found, include a skills section that references them. + * **Task**: Clear steps or rules for the AI to follow. + * **Output Format**: Define how the result should look. + +4. **Reference Skills in Generated Prompts**: + * Use Markdown links to reference skill files: `[skill-name](.github/skills/skill-name/SKILL.md)` + * Instruct the prompt to "Follow the instructions in the referenced skill" when applicable + * Skills can be referenced for sub-tasks within a larger prompt + +5. **Use Variables**: + * Use `${input:variableName}` for user inputs (e.g., `${input:methodName}`). + * Use built-in variables like `${selection}`, `${file}`, or `${workspaceFolder}` where appropriate context is needed. + +6. **Best Practices**: + * Be specific and explicit. + * Encourage chain-of-thought reasoning if the task is complex. + * Reference workspace files using Markdown links `[path/to/file.cs](path/to/file.cs)` only if they are static and necessary for *all* invocations of this prompt. + * Prefer referencing skills over duplicating instructions that already exist in skills. + +## Example Output Structure (with skill reference) + +```markdown +--- +name: my-new-prompt +description: specialized task description +argument-hint: input parameter hint +--- +You are a specialized agent for... + +## Context +... + +## Skills +This prompt leverages the following skills for specific sub-tasks: +- [generate-mstest-filter](.github/skills/generate-mstest-filter/SKILL.md) - For generating test filter expressions + +## Instructions +1. ... +2. When generating test filters, follow the instructions in the [generate-mstest-filter](.github/skills/generate-mstest-filter/SKILL.md) skill. +3. ... + +## Variables +Use ${input:param1} to... +``` + +## Example Output Structure (without skills) + +```markdown +--- +name: my-new-prompt +description: specialized task description +argument-hint: input parameter hint +--- +You are a specialized agent for... + +## Context +... + +## Instructions +1. ... +2. ... + +## Variables +Use ${input:param1} to... +``` + +## User Request +${input:promptDescription} diff --git a/.github/prompts/generate-skill.prompt.md b/.github/prompts/generate-skill.prompt.md new file mode 100644 index 0000000000..484fe2debc --- /dev/null +++ b/.github/prompts/generate-skill.prompt.md @@ -0,0 +1,124 @@ +--- +name: generate-skill +description: Generate a GitHub Copilot Agent Skill (SKILL.md) following best practices and official documentation +argument-hint: Describe the skill you want to create (e.g., "debugging SQL connection issues") +--- +You are an expert developer specialized in creating **GitHub Copilot Agent Skills**. + +Your goal is to generate a well-structured, effective `SKILL.md` file based on the user's description. + +## About Agent Skills + +Agent Skills are folders of instructions, scripts, and resources that Copilot can load when relevant to improve its performance in specialized tasks. They work with: +- Copilot coding agent +- GitHub Copilot CLI +- Agent mode in Visual Studio Code + +Skills are stored in: +- **Project skills**: `.github/skills//SKILL.md` +- **Personal skills**: `~/.copilot/skills//SKILL.md` + +## Skill File Requirements + +### YAML Frontmatter (Required) +- **name** (required): A unique identifier for the skill. Must be lowercase, using hyphens for spaces. +- **description** (required): A description of what the skill does, and when Copilot should use it. This is critical because Copilot uses this to decide when to activate the skill. +- **license** (optional): A description of the license that applies to this skill. + +### Markdown Body +- Clear, actionable instructions for Copilot to follow +- Step-by-step processes when applicable +- Examples and guidelines +- References to tools, scripts, or resources in the skill directory + +## Best Practices + +1. **Write a descriptive `description`**: Copilot uses the description to decide when to load the skill. Include trigger phrases like "Use this when asked to..." or "Use this skill for..." + +2. **Be specific and actionable**: Provide clear, numbered steps that Copilot can follow. Avoid vague instructions. + +3. **Reference available tools**: If the skill leverages MCP servers or specific tools, explicitly name them and explain how to use them. + +4. **Include examples**: Show expected inputs, outputs, or code patterns when relevant. + +5. **Keep skills focused**: Each skill should address one specific task or domain. Use multiple skills for distinct tasks. + +6. **Use imperative language**: Write instructions as commands (e.g., "Use the X tool to...", "Check if...", "Generate a..."). + +7. **Consider edge cases**: Include guidance for error handling, validation, and fallback behaviors. + +8. **Naming convention**: Skill directory names should be lowercase, use hyphens for spaces, and match the `name` in the frontmatter. + +## Output Format + +Generate the complete content for a `SKILL.md` file, including: +1. YAML frontmatter with `name` and `description` (and optionally `license`) +2. Markdown body with clear instructions + +Also provide: +- The recommended directory path for the skill +- Any additional files (scripts, examples) that should be included in the skill directory + +## User Request + +${input:skillDescription} + +## Instructions + +1. **Analyze the Request**: Understand the task the skill should help Copilot perform. + +2. **Generate the Skill Name**: Create a lowercase, hyphenated name that clearly identifies the skill's purpose. + +3. **Write the Description**: Craft a description that tells Copilot exactly when to use this skill. Include trigger phrases. + +4. **Create the Instructions**: Write clear, numbered steps for Copilot to follow. Be specific about: + - What tools or commands to use + - What information to gather + - What output to produce + - How to handle errors or edge cases + +5. **Include Examples**: If the skill involves code generation, patterns, or specific formats, provide examples. + +6. **Suggest Additional Resources**: If the skill would benefit from helper scripts, templates, or example files, describe what should be included in the skill directory. + +## Example Output Structure + +```markdown +--- +name: skill-name-here +description: Description of what the skill does. Use this when asked to [specific trigger]. +--- + +Brief introduction to the skill's purpose. + +## When to Use This Skill + +- Condition 1 +- Condition 2 + +## Instructions + +1. First step with specific details +2. Second step with tool references +3. Third step with expected outcomes + +## Examples + +### Example 1: [Scenario] +```code +example code or pattern +``` + +## Error Handling + +- If X occurs, do Y +- If Z fails, try W +``` + +--- + +**Recommended Directory**: `.github/skills//` + +**Additional Files**: +- `script.ps1` - Helper script for X +- `template.md` - Template for Y diff --git a/.github/prompts/plan-splitTvpTests.prompt.md b/.github/prompts/plan-splitTvpTests.prompt.md new file mode 100644 index 0000000000..07cec8a1f9 --- /dev/null +++ b/.github/prompts/plan-splitTvpTests.prompt.md @@ -0,0 +1,26 @@ +## Plan: Split TvpTest.cs Into Independent Test Classes + +The current `TestMain()` runs 500+ test cases sequentially via baseline comparison, making it slow, hard to debug, and retry-unfriendly. The tests are already logically grouped into helper classes (`StreamInputParam`, `SqlVariantParam`, `DateTimeVariantTest`, `OutputParameter`) plus inline methods, with no shared state between groups—making them ideal candidates for splitting. + +### Steps (Each Step = One Git Commit) + +1. ✅ **Add per-group baseline files and update `TestMain()` to validate using concatenated split files** — Extract sections from [SqlParameterTest_DebugMode.bsl](src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlParameterTest_DebugMode.bsl), [SqlParameterTest_ReleaseMode.bsl](src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlParameterTest_ReleaseMode.bsl), and Azure variants into new files (`StreamInputParameter_DebugMode.bsl`, `StreamInputParameter_ReleaseMode.bsl`, `TvpColumnBoundaries_DebugMode.bsl`, `TvpColumnBoundaries_ReleaseMode.bsl`, etc.). Modify `FindDiffFromBaseline()` to concatenate the split baseline files in order (selecting Debug or Release variants based on build configuration) and compare against test output instead of using the original combined file. **If the split is incorrect, `TestMain()` fails—proving equivalence when CI passes.** + +2. ✅ **Add new test classes that run alongside `TestMain()`** — Create [StreamInputParameterTests.cs](src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/), [TvpColumnBoundariesTests.cs](src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/), [TvpQueryHintsTests.cs](src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/), [SqlVariantParameterTests.cs](src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/), [DateTimeVariantTests.cs](src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/), [OutputParameterTests.cs](src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/). Each class has its own baseline comparison method pointing to its split baseline files (Debug and Release variants), using `#if DEBUG` to select the appropriate baseline. Original `TestMain()` remains unchanged. **CI runs both old and new tests—all must pass.** + +3. ✅ **Delete `TestMain()` and original combined baseline files** — Remove `TestMain()`, `RunTestCoreAndCompareWithBaseline()`, `RunTest()`, `FindDiffFromBaseline()` from [TvpTest.cs](src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs). Delete [SqlParameterTest_*.bsl](src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/) files. Keep shared helper methods/classes in TvpTest.cs or move to a shared utilities file. Per-group Debug and Release baseline files remain. **Reviewer can verify deletion is safe since steps 1-2 already validated equivalence and new tests passed in CI.** + +4. ✅ **[Repeatable per group] Migrate one test class from baseline comparison to xUnit assertions** — For each group (start with smallest, e.g., `OutputParameterTests`): replace `Console.WriteLine` comparisons with `Assert.Equal()`, `Assert.True()`, etc., then delete that group's Debug and Release baseline files. Use `[Theory]` with `[MemberData]` pointing to static methods that yield all test case permutations with unique identifiers (e.g., `"StreamInput_Sync_DataLen100000_ParamLen-1_OldFalse"`)—xUnit displays each identifier in test output, allowing reviewers to diff test names against baseline to verify completeness. For DEBUG-only test cases, use `#if DEBUG` or `[Trait("Configuration", "Debug")]` to conditionally include them. **Each migration is a separate commit; reviewer sees direct assertion logic instead of string comparison.** + +### Baseline Section Boundaries + +| Test Group | Start Marker | End Marker | Debug | Release | Debug Azure | Release Azure | +|------------|--------------|------------|-------|---------|-------------|---------------| +| **StreamInputParameter** | `Starting test 'TvpTest'` (line 1) | Line before `+++++++ Iteration 0 ++++++++` | 1–478 | 1–17 | 1–478 | 1–17 | +| **TvpColumnBoundaries** | `+++++++ Iteration 0 ++++++++` | Line before `------- Sort order + uniqueness #1` | 479–943 | 18–482 | 479–943 | 18–482 | +| **TvpQueryHints** | `------- Sort order + uniqueness #1: simple -------` | Last `-------------` line before empty line | 944–974 | 483–513 | 944–974 | 483–513 | +| **SqlVariantParameter** | Empty line + `Starting test 'SqlVariantParam'` | `End test 'SqlVariantParam'` (inclusive) | 975–1073 | 514–612 | 975–1073 | 514–612 | +| **DateTimeVariant** | Line after `End test 'SqlVariantParam'` | Line before `Starting 'OutputParameter' tests` | 1074–2231 | 613–1770 | 1074–2231 | 613–1770 | +| **OutputParameter** | `Starting 'OutputParameter' tests` | `Done` (end of file) | 2232–2235 | 1771–1774 | 2232–2235 | 1771–1774 | + +**Note:** Azure baseline files have identical line numbers to their non-Azure counterparts—differences are in content (different error messages/behaviors on Azure SQL), not structure. diff --git a/.github/prompts/refine-test-overlap.prompt.md b/.github/prompts/refine-test-overlap.prompt.md new file mode 100644 index 0000000000..824e18f145 --- /dev/null +++ b/.github/prompts/refine-test-overlap.prompt.md @@ -0,0 +1,40 @@ +--- +name: test-minimize-overlap +description: Run coverage overlap analysis and suggest test suite optimizations +argument-hint: Test filter (e.g. FullyQualifiedName~MyTests) or describe the tests you want to analyze +--- +You are an expert .NET Test Engineer specialized in optimizing test coverage and reducing technical debt. + +## Goal +Your task is to analyze the user's test suite using the `AnalyzeTestOverlap.ps1` script to identify redundant tests (tests that cover identical code paths) and refactor them to improve maintainability without losing coverage. + +## Skills +This prompt leverages the following skills for specific sub-tasks: +- [generate-mstest-filter](../skills/generate-mstest-filter/SKILL.md) - For generating well-formed MSTest filter expressions + +## Tools +You have access to the analysis script at `[AnalyzeTestOverlap.ps1](./scripts/AnalyzeTestOverlap.ps1)`. + +## Workflow +1. **Parse or Generate Test Filter**: + * If `${input:filter}` is a valid MSTest filter expression (e.g., `FullyQualifiedName~MyTests`), use it directly. + * If `${input:filter}` is a loose description (e.g., "connection tests" or "SqlCommand class"), follow the instructions in the [generate-mstest-filter](../skills/generate-mstest-filter/SKILL.md) skill to generate a proper filter expression. + * If `${input:filter}` is empty, ask the user for a test filter or description to target specific tests. + +2. **Run Analysis**: + * Run the script using the filter: `.\scripts\AnalyzeTestOverlap.ps1 -Filter ""`. + * *Note*: The script produces a console summary and a `test-coverage-analysis.json` file. + +3. **Review Overlap**: + * Read the console output to spot "HIGH OVERLAP" warnings. + * If detailed inspection is needed, read `test-coverage-analysis.json` to see specific line mappings. + +4. **Refactor**: + * For overlapping tests, examine the actual C# test files. + * Strategies for reducing redundancy: + * **Merge**: If tests check the same logic with different inputs, convert them into a single `[Theory]` with `[InlineData]`. + * **Delete**: If a test is a strict subset of another (and provides no unique documentation value), propose deleting it. + * **Refinement**: If a test asserts too little for the coverage it generates, suggest adding assertions or mocking specific behaviors to differentiate it. + +## User Input +Test Filter: ${input:filter} diff --git a/.github/prompts/scripts/AnalyzeTestOverlap.ps1 b/.github/prompts/scripts/AnalyzeTestOverlap.ps1 new file mode 100644 index 0000000000..d888824196 --- /dev/null +++ b/.github/prompts/scripts/AnalyzeTestOverlap.ps1 @@ -0,0 +1,164 @@ +<# +.SYNOPSIS + Analyzes test coverage overlap between unit tests. + +.DESCRIPTION + This script performs the following actions: + 1. Sets up the Environment: Automatically installs 'dotnet-coverage' as a local tool if it's missing. + 2. Lists Tests: Uses 'dotnet test --list-tests' with the provided filter to identify which tests to run. + 3. Collects Granular Coverage: Runs each test individually wrapped in 'dotnet-coverage' to ensure completely isolated coverage data. + 4. Parses & Analyzes: Parses the resulting XML coverage files to extract the exact file paths and line ranges covered. + 5. Generates Output: + - JSON Report: Saves a detailed JSON file (test-coverage-analysis.json) mapping tests to executed lines. + - Console Summary: Prints a human-readable summary highlighting tests with high overlap (>90%). + +.EXAMPLE + # Run for a specific set of tests (Recommended) + .\AnalyzeTestOverlap.ps1 -Filter "FullyQualifiedName~ConnectionEnhancedRoutingTests" + +.EXAMPLE + # Run for all tests (Warning: Slow, as it runs each test in a separate process) + .\AnalyzeTestOverlap.ps1 -Filter "*" +#> + +param( + [string]$Filter = "FullyQualifiedName~ConnectionEnhancedRoutingTests", + [string]$Framework = "net462", + [string]$Project = "src\Microsoft.Data.SqlClient\tests\UnitTests\Microsoft.Data.SqlClient.UnitTests.csproj", + [string]$Output = "test-coverage-analysis.json" +) + +$ErrorActionPreference = "Stop" + +Write-Host "Checking for dotnet-coverage..." +try { + dotnet tool run dotnet-coverage --version | Out-Null +} catch { + Write-Host "Installing dotnet-coverage..." + dotnet tool install dotnet-coverage --create-manifest-if-needed +} + +Write-Host "Building project..." +dotnet build $Project --framework $Framework --configuration Debug | Out-Null + +Write-Host "Listing tests..." +$tests = dotnet test $Project --list-tests --framework $Framework --filter $Filter | Select-String " " | ForEach-Object { $_.ToString().Trim() } + +if ($tests.Count -eq 0) { + Write-Error "No tests found with filter '$Filter'" +} + +# Group tests by base method name to handle parameterized tests +# xUnit outputs "Namespace.Class.Method(param: value)" +# We want to run "Namespace.Class.Method" once to avoid filter quoting issues and aggregate coverage +$uniqueTestMethods = $tests | ForEach-Object { + if ($_ -match "^(.+?)\(.*\)$") { + $matches[1] + } else { + $_ + } +} | Select-Object -Unique + +Write-Host "Found $($tests.Count) test cases, aggregated to $($uniqueTestMethods.Count) test methods." + +$results = @{} +$tempDir = Join-Path $PSScriptRoot "TempCoverage" +if (Test-Path $tempDir) { Remove-Item $tempDir -Recurse -Force } +New-Item -ItemType Directory -Path $tempDir | Out-Null + +foreach ($test in $uniqueTestMethods) { + Write-Host "Running $test..." + # Sanitize test name for filename + $safeTestName = $test -replace '[^a-zA-Z0-9\._-]', '_' + $coverageFile = Join-Path $tempDir "$safeTestName.xml" + + # Run test with coverage + # We use -f xml to get xml output directly + # We use 'dotnet dotnet-coverage' (without 'tool run') as verified to work likely due to path/global install fallback + # Using ~ (Contains) for FullyQualifiedName handles both exact match and parameterized variants + $testFilter = "FullyQualifiedName~$test" + $innerCmd = "dotnet test `"$Project`" --filter `"$testFilter`" --framework $Framework --no-build" + # Note: passing dotnet-coverage as the command to the dotnet driver + $coverageArgs = @("dotnet-coverage", "collect", "-f", "xml", "-o", $coverageFile, $innerCmd) + + try { + & dotnet $coverageArgs | Out-Null + } catch { + Write-Warning "Failed to run coverage for ${test}: $_" + } + + if (Test-Path $coverageFile) { + # Parse XML + [xml]$xml = Get-Content $coverageFile + + # Map source file IDs to Paths + $sourceMap = @{} + $xml.results.modules.module.source_files.source_file | ForEach-Object { + $sourceMap[$_.id] = $_.path + } + + $coveredLines = @() + + # Get covered ranges + if ($xml.results.modules.module.functions.function) { + foreach ($func in $xml.results.modules.module.functions.function) { + if ($func.ranges.range) { + foreach ($range in $func.ranges.range) { + if ($range.covered -eq "yes" -or $range.covered -eq "partially") { + $filePath = $sourceMap[$range.source_id] + $coveredLines += "$($filePath):$($range.start_line)-$($range.end_line)" + } + } + } + } + } + + $results[$test] = $coveredLines + Write-Host " Collected $($coveredLines.Count) covered ranges." + } else { + Write-Warning "No coverage file generated for $test" + } +} + +# Clean up +if (Test-Path $tempDir) { Remove-Item $tempDir -Recurse -Force } + +# Output to JSON +$json = $results | ConvertTo-Json -Depth 5 +Set-Content $Output $json +Write-Host "Analysis saved to $Output" + +# Perform basic overlap analysis +Write-Host "`nGenerating overlap summary..." +$testNames = $results.Keys | Sort-Object +foreach ($t1 in $testNames) { + $lines1 = $results[$t1] + if ($null -eq $lines1 -or $lines1.Count -eq 0) { continue } + $set1 = New-Object System.Collections.Generic.HashSet[string] + $lines1 | ForEach-Object { $set1.Add($_) | Out-Null } + + foreach ($t2 in $testNames) { + if ($t1 -ge $t2) { continue } # Avoid self and duplicate comparisons + + $lines2 = $results[$t2] + if ($null -eq $lines2 -or $lines2.Count -eq 0) { continue } + + $intersection = 0 + foreach ($line in $lines2) { + if ($set1.Contains($line)) { + $intersection++ + } + } + + $overlapPct1 = ($intersection / $lines1.Count) * 100 + $overlapPct2 = ($intersection / $lines2.Count) * 100 + + if ($overlapPct1 -gt 90 -and $overlapPct2 -gt 90) { + Write-Host "HIGH OVERLAP: $t1 <-> $t2" + Write-Host " Shared lines: $intersection" + Write-Host " $t1 overlap: $([math]::Round($overlapPct1, 2))%" + Write-Host " $t2 overlap: $([math]::Round($overlapPct2, 2))%" + Write-Host "" + } + } +} diff --git a/.github/skills/generate-mstest-filter/SKILL.md b/.github/skills/generate-mstest-filter/SKILL.md new file mode 100644 index 0000000000..8441823347 --- /dev/null +++ b/.github/skills/generate-mstest-filter/SKILL.md @@ -0,0 +1,233 @@ +--- +name: generate-mstest-filter +description: Generates well-formed MSTest filter expressions for dotnet test. Use this skill when asked to create a test filter, run specific tests, filter tests by name, class, category, or priority, or when the user describes tests they want to run selectively. +--- + +This skill generates MSTest filter expressions for use with `dotnet test --filter`. Use this when users describe tests they want to run and need a properly formatted filter expression. + +## When to Use This Skill + +- User asks to run specific tests by name or pattern +- User wants to filter tests by class name, namespace, or method +- User wants to run tests with specific categories or priorities +- User describes a set of tests to include or exclude +- User needs help with test filter syntax for MSTest + +## MSTest Filter Syntax Reference + +### Supported Properties + +| Property | Description | Supported By | +|----------|-------------|--------------| +| `FullyQualifiedName` | Full namespace + class + method name (e.g., `Namespace.Class.Method`) | MSTest, xUnit, NUnit | +| `DisplayName` | The display name of the test (often same as FullyQualifiedName for xUnit) | MSTest, xUnit, NUnit | +| `Name` | Test method name only | MSTest only (not xUnit) | +| `ClassName` | Full namespace + class name (must include namespace) | MSTest only (not xUnit) | +| `Priority` | Priority attribute value (integer) | MSTest (with `[Priority]` attribute) | +| `TestCategory` | TestCategory attribute value (string) | MSTest (with `[TestCategory]` attribute) | + +> **Important**: For xUnit tests (common in .NET Core projects), **always use `FullyQualifiedName` or `DisplayName`**. The `Name` and `ClassName` properties are not populated by xUnit and will result in no matches. + +### Operators + +| Operator | Meaning | Example | +|----------|---------|---------| +| `=` | Exact match | `Name=TestMethod1` | +| `!=` | Not exact match | `Name!=TestMethod1` | +| `~` | Contains | `FullyQualifiedName~Connection` | +| `!~` | Does not contain | `FullyQualifiedName!~Integration` | + +### Boolean Operators + +| Operator | Meaning | Example | +|----------|---------|---------| +| `\|` | OR | `FullyQualifiedName~Test1\|FullyQualifiedName~Test2` | +| `&` | AND | `FullyQualifiedName~MyClass&Priority=1` | +| `()` | Grouping | `(FullyQualifiedName~Test1\|FullyQualifiedName~Test2)&Priority=1` | + +## Instructions + +1. **Analyze the user's description** to identify: + - Test names, patterns, or keywords mentioned + - Class names or namespaces referenced + - Categories or priorities specified + - Whether tests should be included or excluded + - Whether the user referenced a **file name** (look for `.cs` extension or file path patterns) + +2. **Handle file name inputs**: + - If the user provides a file name (e.g., `ChannelDbConnectionPoolTest.cs`), extract the class name by removing the `.cs` extension + - File names typically correspond to the test class name (e.g., `SqlConnectionTest.cs` → class `SqlConnectionTest`) + - Use `FullyQualifiedName~ClassName` pattern for file-based inputs + +3. **Choose the appropriate property**: + - **For xUnit tests (most .NET Core projects)**: Always use `FullyQualifiedName` or `DisplayName` + - **For MSTest only**: `Name` and `ClassName` properties are also available + - Use `FullyQualifiedName~` with contains operator for maximum compatibility + - Use `TestCategory` for category-based filtering (MSTest only) + - Use `Priority` for priority-based filtering (MSTest only) + +4. **Select the correct operator**: + - Use `~` (contains) for partial matches and patterns - **this is the safest default** + - Use `=` for exact matches only when you know the full value + - Use `!=` or `!~` for exclusions + +5. **Combine conditions** as needed: + - Use `|` (OR) when any condition should match + - Use `&` (AND) when all conditions must match + - Use parentheses `()` for complex logic + +6. **Format the output** as a complete `dotnet test` command: + ``` + dotnet test --filter "" + ``` + +7. **Handle special characters**: + - Escape `!` with `\!` on Linux/macOS shells + - Use `%2C` for commas in generic type parameters + - URL-encode special characters in Name/DisplayName values + +## Examples + +### Example 1: Run tests containing a keyword +**User says**: "Run all connection tests" +```bash +dotnet test --filter "FullyQualifiedName~Connection" +``` + +### Example 2: Run tests in a specific class (xUnit compatible) +**User says**: "Run tests in SqlConnectionTest class" +```bash +dotnet test --filter "FullyQualifiedName~SqlConnectionTest" +``` +> **Note**: Avoid using `ClassName=` for xUnit tests - it won't work. Always use `FullyQualifiedName~` for cross-framework compatibility. + +### Example 3: Run tests from a specific file +**User says**: "Run tests in ChannelDbConnectionPoolTest.cs" +```bash +dotnet test --filter "FullyQualifiedName~ChannelDbConnectionPoolTest" +``` +> Strip the `.cs` extension and use `FullyQualifiedName~` with the class name. + +### Example 4: Run a specific test method +**User says**: "Run the TestOpenConnection test" +```bash +dotnet test --filter "FullyQualifiedName~TestOpenConnection" +``` +> Use `FullyQualifiedName~` instead of `Name=` for xUnit compatibility. + +### Example 5: Run tests by category (MSTest only) +**User says**: "Run all tests in CategoryA" +```bash +dotnet test --filter "TestCategory=CategoryA" +``` + +### Example 6: Run high priority tests (MSTest only) +**User says**: "Run priority 1 tests" +```bash +dotnet test --filter "Priority=1" +``` + +### Example 7: Combine multiple conditions (AND) +**User says**: "Run connection tests that are priority 1" +```bash +dotnet test --filter "FullyQualifiedName~Connection&Priority=1" +``` + +### Example 8: Combine multiple conditions (OR) +**User says**: "Run tests for SqlConnection or SqlCommand" +```bash +dotnet test --filter "FullyQualifiedName~SqlConnection|FullyQualifiedName~SqlCommand" +``` + +### Example 9: Exclude tests +**User says**: "Run all tests except integration tests" +```bash +dotnet test --filter "FullyQualifiedName!~Integration" +``` + +### Example 10: Complex filter with grouping +**User says**: "Run connection or command tests that are in CategoryA" +```bash +dotnet test --filter "(FullyQualifiedName~Connection|FullyQualifiedName~Command)&TestCategory=CategoryA" +``` + +### Example 11: Exclude specific test method +**User says**: "Run all tests except TestSlowOperation" +```bash +dotnet test --filter "FullyQualifiedName!~TestSlowOperation" +``` + +### Example 12: Multiple exclusions +**User says**: "Run tests but skip integration and performance tests" +```bash +dotnet test --filter "FullyQualifiedName!~Integration&FullyQualifiedName!~Performance" +``` + +## Verification (Required) + +**Always verify the generated filter before presenting it to the user.** Use the `--list-tests` flag to confirm the filter matches the expected tests: + +```bash +dotnet test --list-tests --filter "" --framework +``` + +### Verification Steps + +1. **Run the list-tests command** with the generated filter +2. **Check the output**: + - If tests are listed → filter is valid + - If "No test matches the given testcase filter" → filter is invalid, needs adjustment +3. **If no matches**, try these fixes in order: + - Switch from `ClassName=` or `Name=` to `FullyQualifiedName~` + - Remove the namespace prefix and use just the class/method name with `~` + - Try `DisplayName~` as an alternative +4. **Re-run verification** after any changes + +### Example Verification + +```bash +# Generate filter for "ChannelDbConnectionPoolTest" class +dotnet test tests/UnitTests/UnitTests.csproj --list-tests --filter "FullyQualifiedName~ChannelDbConnectionPoolTest" --framework net9.0 + +# Expected output shows matching tests: +# The following Tests are available: +# Microsoft.Data.SqlClient.UnitTests.ConnectionPool.ChannelDbConnectionPoolTest.GetConnectionEmptyPool_ShouldCreateNewConnection(...) +# ... +``` + +## Error Handling + +- If the user's description is ambiguous, ask for clarification about: + - Whether they want exact match or contains + - The full class name or namespace if needed + - Whether conditions should be AND or OR + +- **If a filter returns no matches**: + - First, verify the test class/method exists in the project + - Switch to `FullyQualifiedName~` with contains operator + - Check if the project uses xUnit (common in .NET Core) - if so, avoid `Name` and `ClassName` properties + +- For complex filters, validate that parentheses are balanced + +## Additional Tips + +- An expression without any operator is interpreted as `FullyQualifiedName~` + - Example: `dotnet test --filter xyz` equals `dotnet test --filter "FullyQualifiedName~xyz"` + +- All lookups are case-insensitive + +- When running on Linux/macOS, escape `!` with backslash: `\!` + +- For project-specific tests, add the project path: + ```bash + dotnet test path/to/project.csproj --filter "FullyQualifiedName~MyTest" + ``` + +## Common Pitfalls + +| Problem | Cause | Solution | +|---------|-------|----------| +| No test matches filter | Using `Name=` or `ClassName=` with xUnit | Use `FullyQualifiedName~` instead | +| No test matches filter | Using just class name without namespace in `ClassName=` | Use `FullyQualifiedName~ClassName` | +| Filter matches too many tests | Using overly broad `~` pattern | Add more specific qualifiers or use `&` with additional conditions | +| TestCategory filter doesn't work | Project uses xUnit, which doesn't support TestCategory | Use `[Trait]` attributes with xUnit and filter by trait name | diff --git a/dotnet-tools.json b/dotnet-tools.json new file mode 100644 index 0000000000..69ba4502e5 --- /dev/null +++ b/dotnet-tools.json @@ -0,0 +1,13 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "dotnet-coverage": { + "version": "18.3.2", + "commands": [ + "dotnet-coverage" + ], + "rollForward": false + } + } +} \ No newline at end of file diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTesting.Tests.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTesting.Tests.csproj index 3155b87f81..8dc6b7ab38 100644 --- a/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTesting.Tests.csproj +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTesting.Tests.csproj @@ -221,6 +221,12 @@ + + + + + + PreserveNewest @@ -238,6 +244,103 @@ PreserveNewest SqlParameterTest_ReleaseMode_Azure.bsl + + + PreserveNewest + StreamInputParameter_DebugMode.bsl + + + PreserveNewest + StreamInputParameter_DebugMode_Azure.bsl + + + PreserveNewest + StreamInputParameter_ReleaseMode.bsl + + + PreserveNewest + StreamInputParameter_ReleaseMode_Azure.bsl + + + PreserveNewest + TvpColumnBoundaries_DebugMode.bsl + + + PreserveNewest + TvpColumnBoundaries_DebugMode_Azure.bsl + + + PreserveNewest + TvpColumnBoundaries_ReleaseMode.bsl + + + PreserveNewest + TvpColumnBoundaries_ReleaseMode_Azure.bsl + + + PreserveNewest + TvpQueryHints_DebugMode.bsl + + + PreserveNewest + TvpQueryHints_DebugMode_Azure.bsl + + + PreserveNewest + TvpQueryHints_ReleaseMode.bsl + + + PreserveNewest + TvpQueryHints_ReleaseMode_Azure.bsl + + + PreserveNewest + SqlVariantParameter_DebugMode.bsl + + + PreserveNewest + SqlVariantParameter_DebugMode_Azure.bsl + + + PreserveNewest + SqlVariantParameter_ReleaseMode.bsl + + + PreserveNewest + SqlVariantParameter_ReleaseMode_Azure.bsl + + + PreserveNewest + DateTimeVariant_DebugMode.bsl + + + PreserveNewest + DateTimeVariant_DebugMode_Azure.bsl + + + PreserveNewest + DateTimeVariant_ReleaseMode.bsl + + + PreserveNewest + DateTimeVariant_ReleaseMode_Azure.bsl + + + PreserveNewest + OutputParameter_DebugMode.bsl + + + PreserveNewest + OutputParameter_DebugMode_Azure.bsl + + + PreserveNewest + OutputParameter_ReleaseMode.bsl + + + PreserveNewest + OutputParameter_ReleaseMode_Azure.bsl + PreserveNewest data.xml diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariantTests.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariantTests.cs new file mode 100644 index 0000000000..b51e29403f --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariantTests.cs @@ -0,0 +1,133 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.IO; +using System.Text; +using Xunit; + +namespace Microsoft.Data.SqlClient.ManualTesting.Tests +{ + /// + /// Tests for DateTime variant parameters with different date/time types. + /// These tests run independently with their own baseline comparison. + /// + public class DateTimeVariantTests + { + private readonly string _connStr; + + public DateTimeVariantTests() + { + _connStr = DataTestUtility.TCPConnectionString; + } + + [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))] + public void DateTimeVariantParameterTest() + { + Assert.True(RunTestAndCompareWithBaseline()); + } + + private bool RunTestAndCompareWithBaseline() + { + string outputPath = "DateTimeVariant.out"; + string baselinePath; +#if DEBUG + if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance) + { + baselinePath = "DateTimeVariant_DebugMode.bsl"; + } + else + { + baselinePath = "DateTimeVariant_DebugMode_Azure.bsl"; + } +#else + if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance) + { + baselinePath = "DateTimeVariant_ReleaseMode.bsl"; + } + else + { + baselinePath = "DateTimeVariant_ReleaseMode_Azure.bsl"; + } +#endif + + var fstream = new FileStream(outputPath, FileMode.Create, FileAccess.Write, FileShare.Read); + var swriter = new StreamWriter(fstream, Encoding.UTF8); + var twriter = new TvpTest.CarriageReturnLineFeedReplacer(swriter); + Console.SetOut(twriter); + + // Run Test + DateTimeVariantTest.TestAllDateTimeWithDataTypeAndVariant(_connStr); + + Console.Out.Flush(); + Console.Out.Dispose(); + + // Recover the standard output stream + StreamWriter standardOutput = new(Console.OpenStandardOutput()); + standardOutput.AutoFlush = true; + Console.SetOut(standardOutput); + + // Compare output file + var comparisonResult = FindDiffFromBaseline(baselinePath, outputPath); + + if (string.IsNullOrEmpty(comparisonResult)) + { + return true; + } + + Console.WriteLine("DateTimeVariantParameterTest Failed!"); + Console.WriteLine("Please compare baseline: {0} with output: {1}", Path.GetFullPath(baselinePath), Path.GetFullPath(outputPath)); + Console.WriteLine("Comparison Results:"); + Console.WriteLine(comparisonResult); + return false; + } + + private static string FindDiffFromBaseline(string baselinePath, string outputPath) + { + var expectedLines = File.ReadAllLines(baselinePath); + var outputLines = File.ReadAllLines(outputPath); + + var comparisonSb = new StringBuilder(); + + var expectedLength = expectedLines.Length; + var outputLength = outputLines.Length; + var findDiffLength = Math.Min(expectedLength, outputLength); + + for (var lineNo = 0; lineNo < findDiffLength; lineNo++) + { + if (!expectedLines[lineNo].Equals(outputLines[lineNo])) + { + comparisonSb.AppendFormat("** DIFF at line {0} \n", lineNo); + comparisonSb.AppendFormat("A : {0} \n", outputLines[lineNo]); + comparisonSb.AppendFormat("E : {0} \n", expectedLines[lineNo]); + } + } + + var startIndex = findDiffLength - 1; + if (startIndex < 0) + { + startIndex = 0; + } + + if (findDiffLength < expectedLength) + { + comparisonSb.AppendFormat("** MISSING \n"); + for (var lineNo = startIndex; lineNo < expectedLength; lineNo++) + { + comparisonSb.AppendFormat("{0} : {1}", lineNo, expectedLines[lineNo]); + } + } + if (findDiffLength < outputLength) + { + comparisonSb.AppendFormat("** EXTRA \n"); + for (var lineNo = startIndex; lineNo < outputLength; lineNo++) + { + comparisonSb.AppendFormat("{0} : {1}", lineNo, outputLines[lineNo]); + } + } + + return comparisonSb.ToString(); + } + } +} diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_DebugMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_DebugMode.bsl new file mode 100644 index 0000000000..aa19a20d9a --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_DebugMode.bsl @@ -0,0 +1,1158 @@ + +------------------------------ TestSimpleParameter_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleParameter_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReader_TVP_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataRow_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test Simple Parameter [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +Test Simple Parameter [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test SqlDataRecord Parameter To TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +Test SqlDataRecord Parameter To TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test SqlDataReader Parameter To TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +Test SqlDataReader Parameter To TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test SqlDataReader TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test SqlDataReader TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleDataReader_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test Simple Data Reader [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleDataReader_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test Simple Data Reader [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopySqlDataReader_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +SqlBulkCopy From SqlDataReader [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +SqlBulkCopy From SqlDataReader [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataTable_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +SqlBulkCopy From Data Table [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataTable_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +SqlBulkCopy From Data Table [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +SqlBulkCopy From Data Row [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +SqlBulkCopy From Data Row [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleParameter_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleParameter_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test Simple Parameter [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleDataReader_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleDataReader_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReader_TVP_Type[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReader_TVP_Variant[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSimpleDataReader_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleDataReader_Type[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSimpleDataReader_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleDataReader_Variant[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopySqlDataReader_Type[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopySqlDataReader_Variant[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReader_TVP_Type[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReader_TVP_Variant[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleDataReader_Type[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleDataReader_Variant[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopySqlDataReader_Type[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopySqlDataReader_Variant[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleParameter_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReader_TVP_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataRow_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleParameter_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleParameter_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReader_TVP_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleDataReader_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleDataReader_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataRow_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleParameter_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSimpleParameter_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataReader_TVP_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ TestSimpleDataReader_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ TestSimpleDataReader_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ SqlBulkCopyDataRow_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSimpleParameter_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSimpleParameter_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test Simple Parameter [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSimpleDataReader_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSimpleDataReader_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.ArgumentException] Invalid value for this metadata. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReader_TVP_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSqlDataReader_TVP_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSimpleDataReader_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSimpleDataReader_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopyDataTable_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Type>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataTable_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Type>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.ArgumentOutOfRangeException] The added or subtracted value results in an un-representable DateTime. +Parameter name: value + +------------------------------ TestSimpleParameter_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +Test Simple Parameter [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.ArgumentException] Invalid value for this metadata. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.ArgumentOutOfRangeException] The added or subtracted value results in an un-representable DateTime. +Parameter name: value + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReader_TVP_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ TestSqlDataReader_TVP_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ TestSimpleDataReader_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ TestSimpleDataReader_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ SqlBulkCopyDataTable_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopyDataTable_Type>>> EXCEPTION: [System.ArgumentOutOfRangeException] The added or subtracted value results in an un-representable DateTime. +Parameter name: value + +------------------------------ SqlBulkCopyDataTable_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopyDataRow_Type>>> EXCEPTION: [System.ArgumentOutOfRangeException] The added or subtracted value results in an un-representable DateTime. +Parameter name: value + +------------------------------ SqlBulkCopyDataRow_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSimpleParameter_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.ArgumentException] Invalid value for this metadata. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +Type => Expected : Actual == System.TimeSpan : System.TimeSpan +Base Type => Expected : Actual == time : time +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 00:00:00] [Expected = -10675199.02:48:05.4775808] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataReader_TVP_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataReader_TVP_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSqlDataReader_TVP_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSimpleDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSimpleDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopyDataTable_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopyDataTable_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataTable_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataRow_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopyDataRow_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataRow_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSimpleParameter_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSimpleParameter_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.ArgumentException] Invalid value for this metadata. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Table-valued parameter 0 (""), row 1, column 1: The supplied value is not a valid instance of data type sql_variant. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision. +The statement has been terminated. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataReader_TVP_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataReader_TVP_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSqlDataReader_TVP_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSimpleDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSimpleDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopyDataTable_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopyDataTable_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataTable_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataRow_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopyDataRow_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataRow_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSimpleParameter_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.InvalidCastException] Failed to convert parameter value from a DateTime to a TimeSpan. + +------------------------------ TestSimpleParameter_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.InvalidCastException] Failed to convert parameter value from a DateTime to a TimeSpan. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +TestSqlDataReader_TVP_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSqlDataReader_TVP_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSimpleDataReader_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +TestSimpleDataReader_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSimpleDataReader_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +TestSimpleDataReader_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopyDataTable_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Type[EXPECTED INVALID OPERATION EXCEPTION] The given value '1/1/0001 00:00:00' of type DateTime from the data source cannot be converted to type time for Column 0 [f1] Row 1. + +------------------------------ SqlBulkCopyDataTable_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Type[EXPECTED INVALID OPERATION EXCEPTION] The given value '1/1/0001 00:00:00' of type DateTime from the data source cannot be converted to type time for Column 0 [f1] Row 1. + +------------------------------ SqlBulkCopyDataRow_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.InvalidCastException] Failed to convert parameter value from a DateTime to a TimeSpan. + +------------------------------ TestSimpleParameter_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +Test Simple Parameter [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.InvalidCastException] Failed to convert parameter value from a DateTime to a TimeSpan. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +TestSqlDataReader_TVP_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSqlDataReader_TVP_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSimpleDataReader_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +TestSimpleDataReader_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSimpleDataReader_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +TestSimpleDataReader_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopyDataTable_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopyDataTable_Type[EXPECTED INVALID OPERATION EXCEPTION] The given value '12/31/9999 23:59:59.9999999' of type DateTime from the data source cannot be converted to type time for Column 0 [f1] Row 1. + +------------------------------ SqlBulkCopyDataTable_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopyDataRow_Type[EXPECTED INVALID OPERATION EXCEPTION] The given value '12/31/9999 23:59:59.9999999' of type DateTime from the data source cannot be converted to type time for Column 0 [f1] Row 1. + +------------------------------ SqlBulkCopyDataRow_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_DebugMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_DebugMode_Azure.bsl new file mode 100644 index 0000000000..aa19a20d9a --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_DebugMode_Azure.bsl @@ -0,0 +1,1158 @@ + +------------------------------ TestSimpleParameter_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleParameter_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReader_TVP_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataRow_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test Simple Parameter [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +Test Simple Parameter [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test SqlDataRecord Parameter To TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +Test SqlDataRecord Parameter To TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test SqlDataReader Parameter To TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +Test SqlDataReader Parameter To TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test SqlDataReader TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test SqlDataReader TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleDataReader_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test Simple Data Reader [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleDataReader_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test Simple Data Reader [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopySqlDataReader_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +SqlBulkCopy From SqlDataReader [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +SqlBulkCopy From SqlDataReader [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataTable_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +SqlBulkCopy From Data Table [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataTable_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +SqlBulkCopy From Data Table [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +SqlBulkCopy From Data Row [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +SqlBulkCopy From Data Row [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleParameter_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleParameter_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test Simple Parameter [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleDataReader_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleDataReader_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReader_TVP_Type[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReader_TVP_Variant[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSimpleDataReader_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleDataReader_Type[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSimpleDataReader_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleDataReader_Variant[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopySqlDataReader_Type[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopySqlDataReader_Variant[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReader_TVP_Type[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReader_TVP_Variant[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleDataReader_Type[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleDataReader_Variant[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopySqlDataReader_Type[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopySqlDataReader_Variant[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleParameter_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReader_TVP_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataRow_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleParameter_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleParameter_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReader_TVP_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleDataReader_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleDataReader_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataRow_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleParameter_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSimpleParameter_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataReader_TVP_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ TestSimpleDataReader_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ TestSimpleDataReader_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ SqlBulkCopyDataRow_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSimpleParameter_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSimpleParameter_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test Simple Parameter [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSimpleDataReader_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSimpleDataReader_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.ArgumentException] Invalid value for this metadata. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReader_TVP_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSqlDataReader_TVP_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSimpleDataReader_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSimpleDataReader_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopyDataTable_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Type>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataTable_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Type>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.ArgumentOutOfRangeException] The added or subtracted value results in an un-representable DateTime. +Parameter name: value + +------------------------------ TestSimpleParameter_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +Test Simple Parameter [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.ArgumentException] Invalid value for this metadata. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.ArgumentOutOfRangeException] The added or subtracted value results in an un-representable DateTime. +Parameter name: value + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReader_TVP_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ TestSqlDataReader_TVP_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ TestSimpleDataReader_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ TestSimpleDataReader_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ SqlBulkCopyDataTable_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopyDataTable_Type>>> EXCEPTION: [System.ArgumentOutOfRangeException] The added or subtracted value results in an un-representable DateTime. +Parameter name: value + +------------------------------ SqlBulkCopyDataTable_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopyDataRow_Type>>> EXCEPTION: [System.ArgumentOutOfRangeException] The added or subtracted value results in an un-representable DateTime. +Parameter name: value + +------------------------------ SqlBulkCopyDataRow_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSimpleParameter_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.ArgumentException] Invalid value for this metadata. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +Type => Expected : Actual == System.TimeSpan : System.TimeSpan +Base Type => Expected : Actual == time : time +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 00:00:00] [Expected = -10675199.02:48:05.4775808] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataReader_TVP_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataReader_TVP_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSqlDataReader_TVP_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSimpleDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSimpleDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopyDataTable_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopyDataTable_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataTable_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataRow_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopyDataRow_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataRow_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSimpleParameter_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSimpleParameter_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.ArgumentException] Invalid value for this metadata. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Table-valued parameter 0 (""), row 1, column 1: The supplied value is not a valid instance of data type sql_variant. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision. +The statement has been terminated. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataReader_TVP_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataReader_TVP_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSqlDataReader_TVP_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSimpleDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSimpleDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopyDataTable_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopyDataTable_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataTable_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataRow_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopyDataRow_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataRow_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSimpleParameter_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.InvalidCastException] Failed to convert parameter value from a DateTime to a TimeSpan. + +------------------------------ TestSimpleParameter_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.InvalidCastException] Failed to convert parameter value from a DateTime to a TimeSpan. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +TestSqlDataReader_TVP_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSqlDataReader_TVP_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSimpleDataReader_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +TestSimpleDataReader_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSimpleDataReader_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +TestSimpleDataReader_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopyDataTable_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Type[EXPECTED INVALID OPERATION EXCEPTION] The given value '1/1/0001 00:00:00' of type DateTime from the data source cannot be converted to type time for Column 0 [f1] Row 1. + +------------------------------ SqlBulkCopyDataTable_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Type[EXPECTED INVALID OPERATION EXCEPTION] The given value '1/1/0001 00:00:00' of type DateTime from the data source cannot be converted to type time for Column 0 [f1] Row 1. + +------------------------------ SqlBulkCopyDataRow_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.InvalidCastException] Failed to convert parameter value from a DateTime to a TimeSpan. + +------------------------------ TestSimpleParameter_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +Test Simple Parameter [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.InvalidCastException] Failed to convert parameter value from a DateTime to a TimeSpan. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +TestSqlDataReader_TVP_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSqlDataReader_TVP_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSimpleDataReader_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +TestSimpleDataReader_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSimpleDataReader_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +TestSimpleDataReader_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopyDataTable_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopyDataTable_Type[EXPECTED INVALID OPERATION EXCEPTION] The given value '12/31/9999 23:59:59.9999999' of type DateTime from the data source cannot be converted to type time for Column 0 [f1] Row 1. + +------------------------------ SqlBulkCopyDataTable_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopyDataRow_Type[EXPECTED INVALID OPERATION EXCEPTION] The given value '12/31/9999 23:59:59.9999999' of type DateTime from the data source cannot be converted to type time for Column 0 [f1] Row 1. + +------------------------------ SqlBulkCopyDataRow_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_ReleaseMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_ReleaseMode.bsl new file mode 100644 index 0000000000..aa19a20d9a --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_ReleaseMode.bsl @@ -0,0 +1,1158 @@ + +------------------------------ TestSimpleParameter_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleParameter_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReader_TVP_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataRow_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test Simple Parameter [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +Test Simple Parameter [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test SqlDataRecord Parameter To TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +Test SqlDataRecord Parameter To TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test SqlDataReader Parameter To TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +Test SqlDataReader Parameter To TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test SqlDataReader TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test SqlDataReader TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleDataReader_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test Simple Data Reader [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleDataReader_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test Simple Data Reader [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopySqlDataReader_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +SqlBulkCopy From SqlDataReader [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +SqlBulkCopy From SqlDataReader [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataTable_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +SqlBulkCopy From Data Table [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataTable_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +SqlBulkCopy From Data Table [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +SqlBulkCopy From Data Row [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +SqlBulkCopy From Data Row [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleParameter_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleParameter_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test Simple Parameter [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleDataReader_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleDataReader_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReader_TVP_Type[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReader_TVP_Variant[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSimpleDataReader_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleDataReader_Type[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSimpleDataReader_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleDataReader_Variant[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopySqlDataReader_Type[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopySqlDataReader_Variant[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReader_TVP_Type[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReader_TVP_Variant[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleDataReader_Type[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleDataReader_Variant[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopySqlDataReader_Type[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopySqlDataReader_Variant[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleParameter_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReader_TVP_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataRow_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleParameter_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleParameter_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReader_TVP_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleDataReader_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleDataReader_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataRow_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleParameter_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSimpleParameter_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataReader_TVP_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ TestSimpleDataReader_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ TestSimpleDataReader_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ SqlBulkCopyDataRow_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSimpleParameter_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSimpleParameter_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test Simple Parameter [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSimpleDataReader_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSimpleDataReader_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.ArgumentException] Invalid value for this metadata. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReader_TVP_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSqlDataReader_TVP_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSimpleDataReader_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSimpleDataReader_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopyDataTable_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Type>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataTable_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Type>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.ArgumentOutOfRangeException] The added or subtracted value results in an un-representable DateTime. +Parameter name: value + +------------------------------ TestSimpleParameter_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +Test Simple Parameter [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.ArgumentException] Invalid value for this metadata. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.ArgumentOutOfRangeException] The added or subtracted value results in an un-representable DateTime. +Parameter name: value + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReader_TVP_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ TestSqlDataReader_TVP_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ TestSimpleDataReader_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ TestSimpleDataReader_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ SqlBulkCopyDataTable_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopyDataTable_Type>>> EXCEPTION: [System.ArgumentOutOfRangeException] The added or subtracted value results in an un-representable DateTime. +Parameter name: value + +------------------------------ SqlBulkCopyDataTable_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopyDataRow_Type>>> EXCEPTION: [System.ArgumentOutOfRangeException] The added or subtracted value results in an un-representable DateTime. +Parameter name: value + +------------------------------ SqlBulkCopyDataRow_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSimpleParameter_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.ArgumentException] Invalid value for this metadata. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +Type => Expected : Actual == System.TimeSpan : System.TimeSpan +Base Type => Expected : Actual == time : time +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 00:00:00] [Expected = -10675199.02:48:05.4775808] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataReader_TVP_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataReader_TVP_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSqlDataReader_TVP_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSimpleDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSimpleDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopyDataTable_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopyDataTable_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataTable_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataRow_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopyDataRow_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataRow_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSimpleParameter_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSimpleParameter_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.ArgumentException] Invalid value for this metadata. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Table-valued parameter 0 (""), row 1, column 1: The supplied value is not a valid instance of data type sql_variant. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision. +The statement has been terminated. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataReader_TVP_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataReader_TVP_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSqlDataReader_TVP_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSimpleDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSimpleDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopyDataTable_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopyDataTable_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataTable_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataRow_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopyDataRow_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataRow_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSimpleParameter_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.InvalidCastException] Failed to convert parameter value from a DateTime to a TimeSpan. + +------------------------------ TestSimpleParameter_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.InvalidCastException] Failed to convert parameter value from a DateTime to a TimeSpan. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +TestSqlDataReader_TVP_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSqlDataReader_TVP_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSimpleDataReader_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +TestSimpleDataReader_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSimpleDataReader_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +TestSimpleDataReader_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopyDataTable_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Type[EXPECTED INVALID OPERATION EXCEPTION] The given value '1/1/0001 00:00:00' of type DateTime from the data source cannot be converted to type time for Column 0 [f1] Row 1. + +------------------------------ SqlBulkCopyDataTable_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Type[EXPECTED INVALID OPERATION EXCEPTION] The given value '1/1/0001 00:00:00' of type DateTime from the data source cannot be converted to type time for Column 0 [f1] Row 1. + +------------------------------ SqlBulkCopyDataRow_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.InvalidCastException] Failed to convert parameter value from a DateTime to a TimeSpan. + +------------------------------ TestSimpleParameter_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +Test Simple Parameter [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.InvalidCastException] Failed to convert parameter value from a DateTime to a TimeSpan. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +TestSqlDataReader_TVP_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSqlDataReader_TVP_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSimpleDataReader_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +TestSimpleDataReader_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSimpleDataReader_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +TestSimpleDataReader_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopyDataTable_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopyDataTable_Type[EXPECTED INVALID OPERATION EXCEPTION] The given value '12/31/9999 23:59:59.9999999' of type DateTime from the data source cannot be converted to type time for Column 0 [f1] Row 1. + +------------------------------ SqlBulkCopyDataTable_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopyDataRow_Type[EXPECTED INVALID OPERATION EXCEPTION] The given value '12/31/9999 23:59:59.9999999' of type DateTime from the data source cannot be converted to type time for Column 0 [f1] Row 1. + +------------------------------ SqlBulkCopyDataRow_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_ReleaseMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_ReleaseMode_Azure.bsl new file mode 100644 index 0000000000..aa19a20d9a --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_ReleaseMode_Azure.bsl @@ -0,0 +1,1158 @@ + +------------------------------ TestSimpleParameter_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleParameter_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReader_TVP_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: date value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataRow_Variant [type: date value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test Simple Parameter [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +Test Simple Parameter [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test SqlDataRecord Parameter To TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +Test SqlDataRecord Parameter To TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test SqlDataReader Parameter To TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +Test SqlDataReader Parameter To TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test SqlDataReader TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test SqlDataReader TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleDataReader_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test Simple Data Reader [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleDataReader_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +Test Simple Data Reader [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopySqlDataReader_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +SqlBulkCopy From SqlDataReader [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : date +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +SqlBulkCopy From SqlDataReader [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataTable_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +SqlBulkCopy From Data Table [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataTable_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +SqlBulkCopy From Data Table [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378112000000000 +SqlBulkCopy From Data Row [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 12:00:00 AM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Variant [type: date value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == date : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = date] +SqlBulkCopy From Data Row [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleParameter_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime2 value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleParameter_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test Simple Parameter [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleDataReader_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleDataReader_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime2 value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReader_TVP_Type[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReader_TVP_Variant[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSimpleDataReader_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleDataReader_Type[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSimpleDataReader_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleDataReader_Variant[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopySqlDataReader_Type[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopySqlDataReader_Variant[EXPECTED EXCEPTION] The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Type[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant[EXPECTED EXCEPTION] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReader_TVP_Type[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReader_TVP_Variant[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleDataReader_Type[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleDataReader_Variant[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopySqlDataReader_Type[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopySqlDataReader_Variant[EXPECTED EXCEPTION] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Data Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type][EXPECTED ERROR]: VALUE MISMATCH - [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleParameter_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReader_TVP_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleDataReader_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataRow_Type [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 0 : 0 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetimeoffset value:1/1/0001 00:00:00 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 0 : 0 + +------------------------------ TestSimpleParameter_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleParameter_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReader_TVP_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleDataReader_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleDataReader_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataRow_Type [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetimeoffset value:12/31/9999 23:59:59.9999999 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 3155378975999999999 : 3155378975999999999 + +------------------------------ TestSimpleParameter_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSimpleParameter_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSqlDataReader_TVP_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ TestSimpleDataReader_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ TestSimpleDataReader_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630823121999999999 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ SqlBulkCopyDataRow_Type [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == : +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetimeoffset value:12/31/1999 23:59:59.9999999 -08:30:00] ------------------------------ +Type => Expected : Actual == System.DateTimeOffset : System.DateTimeOffset +Base Type => Expected : Actual == datetimeoffset : datetimeoffset +Value => Expected : Actual == 630822815999999999 : 630822815999999999 + +------------------------------ TestSimpleParameter_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSimpleParameter_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test Simple Parameter [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSqlDataReader_TVP_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSimpleDataReader_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ TestSimpleDataReader_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopySqlDataReader_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime2 +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopyDataTable_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopyDataTable_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == : +Value => Expected : Actual == 630192959999950000 : 630192959999950000 + +------------------------------ SqlBulkCopyDataRow_Variant [type: datetime2 value:1/1/1998 23:59:59.9950000] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == datetime2 : datetime +Value => Expected : Actual == 630192959999950000 : 630192959999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = datetime2] +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 1/1/1998 11:59:59 PM] [Expected = 1/1/1998 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.ArgumentException] Invalid value for this metadata. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReader_TVP_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSqlDataReader_TVP_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSimpleDataReader_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ TestSimpleDataReader_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +TestSimpleDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value. +The statement has been terminated. + +------------------------------ SqlBulkCopyDataTable_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Type>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataTable_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Type>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Variant [type: smalldatetime value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.ArgumentOutOfRangeException] The added or subtracted value results in an un-representable DateTime. +Parameter name: value + +------------------------------ TestSimpleParameter_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +Test Simple Parameter [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.ArgumentException] Invalid value for this metadata. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.ArgumentOutOfRangeException] The added or subtracted value results in an un-representable DateTime. +Parameter name: value + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReader_TVP_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ TestSqlDataReader_TVP_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ TestSimpleDataReader_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ TestSimpleDataReader_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting character string to smalldatetime data type. + +------------------------------ SqlBulkCopyDataTable_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopyDataTable_Type>>> EXCEPTION: [System.ArgumentOutOfRangeException] The added or subtracted value results in an un-representable DateTime. +Parameter name: value + +------------------------------ SqlBulkCopyDataTable_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopyDataRow_Type>>> EXCEPTION: [System.ArgumentOutOfRangeException] The added or subtracted value results in an un-representable DateTime. +Parameter name: value + +------------------------------ SqlBulkCopyDataRow_Variant [type: smalldatetime value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == smalldatetime : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = smalldatetime] +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSimpleParameter_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSimpleParameter_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.ArgumentException] Invalid value for this metadata. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +Type => Expected : Actual == System.TimeSpan : System.TimeSpan +Base Type => Expected : Actual == time : time +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 00:00:00] [Expected = -10675199.02:48:05.4775808] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataReader_TVP_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataReader_TVP_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSqlDataReader_TVP_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSimpleDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +TestSimpleDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopyDataTable_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopyDataTable_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataTable_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataRow_Type [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopyDataRow_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataRow_Variant [type: time value:-10675199.02:48:05.4775808] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '-10675199.02:48:05.4775808' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSimpleParameter_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSimpleParameter_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.ArgumentException] Invalid value for this metadata. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Table-valued parameter 0 (""), row 1, column 1: The supplied value is not a valid instance of data type sql_variant. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision. +The statement has been terminated. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSqlDataReader_TVP_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataReader_TVP_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSqlDataReader_TVP_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSimpleDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ TestSimpleDataReader_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +TestSimpleDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [Microsoft.Data.SqlClient.SqlException] Conversion failed when converting date and/or time from character string. + +------------------------------ SqlBulkCopyDataTable_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopyDataTable_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataTable_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataRow_Type [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopyDataRow_Type>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ SqlBulkCopyDataRow_Variant [type: time value:10675199.02:48:05.4775807] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.OverflowException] SqlDbType.Time overflow. Value '10675199.02:48:05.4775807' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + +------------------------------ TestSimpleParameter_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.InvalidCastException] Failed to convert parameter value from a DateTime to a TimeSpan. + +------------------------------ TestSimpleParameter_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSimpleParameter_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataRecordParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.InvalidCastException] Failed to convert parameter value from a DateTime to a TimeSpan. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +TestSqlDataReaderParameterToTVP_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSqlDataReader_TVP_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +TestSqlDataReader_TVP_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSqlDataReader_TVP_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSimpleDataReader_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +TestSimpleDataReader_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSimpleDataReader_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +TestSimpleDataReader_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopyDataTable_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Type[EXPECTED INVALID OPERATION EXCEPTION] The given value '1/1/0001 00:00:00' of type DateTime from the data source cannot be converted to type time for Column 0 [f1] Row 1. + +------------------------------ SqlBulkCopyDataTable_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataTable_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ SqlBulkCopyDataRow_Type [type: time value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Type[EXPECTED INVALID OPERATION EXCEPTION] The given value '1/1/0001 00:00:00' of type DateTime from the data source cannot be converted to type time for Column 0 [f1] Row 1. + +------------------------------ SqlBulkCopyDataRow_Variant [type: time value:1/1/0001 00:00:00] ------------------------------ +SqlBulkCopyDataRow_Variant>>> EXCEPTION: [System.Data.SqlTypes.SqlTypeException] SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + +------------------------------ TestSimpleParameter_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSimpleParameter_Type>>> EXCEPTION: [System.InvalidCastException] Failed to convert parameter value from a DateTime to a TimeSpan. + +------------------------------ TestSimpleParameter_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test Simple Parameter [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +Test Simple Parameter [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataRecordParameterToTVP_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataRecordParameterToTVP_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSqlDataRecordParameterToTVP_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +Test SqlDataRecord Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReaderParameterToTVP_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +TestSqlDataReaderParameterToTVP_Type>>> EXCEPTION: [System.InvalidCastException] Failed to convert parameter value from a DateTime to a TimeSpan. + +------------------------------ TestSqlDataReaderParameterToTVP_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +Test SqlDataReader Parameter To TVP [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ TestSqlDataReader_TVP_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +TestSqlDataReader_TVP_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSqlDataReader_TVP_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +TestSqlDataReader_TVP_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSimpleDataReader_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +TestSimpleDataReader_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ TestSimpleDataReader_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +TestSimpleDataReader_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopySqlDataReader_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == : +SqlBulkCopySqlDataReader_Type>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopySqlDataReader_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.TimeSpan +Base Type => Expected : Actual == time : time +SqlBulkCopySqlDataReader_Variant>>> EXCEPTION: [System.InvalidCastException] Specified cast is not valid. + +------------------------------ SqlBulkCopyDataTable_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopyDataTable_Type[EXPECTED INVALID OPERATION EXCEPTION] The given value '12/31/9999 23:59:59.9999999' of type DateTime from the data source cannot be converted to type time for Column 0 [f1] Row 1. + +------------------------------ SqlBulkCopyDataTable_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +SqlBulkCopy From Data Table [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] + +------------------------------ SqlBulkCopyDataRow_Type [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +SqlBulkCopyDataRow_Type[EXPECTED INVALID OPERATION EXCEPTION] The given value '12/31/9999 23:59:59.9999999' of type DateTime from the data source cannot be converted to type time for Column 0 [f1] Row 1. + +------------------------------ SqlBulkCopyDataRow_Variant [type: time value:12/31/9999 23:59:59.9999999] ------------------------------ +Type => Expected : Actual == System.DateTime : System.DateTime +Base Type => Expected : Actual == time : datetime +Value => Expected : Actual == 3155378975999999999 : 3155378975999970000 +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time] +SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM] diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameterTests.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameterTests.cs new file mode 100644 index 0000000000..0f4f168029 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameterTests.cs @@ -0,0 +1,133 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.IO; +using System.Text; +using Xunit; + +namespace Microsoft.Data.SqlClient.ManualTesting.Tests +{ + /// + /// Tests for output parameters. + /// These tests run independently with their own baseline comparison. + /// + public class OutputParameterTests + { + private readonly string _connStr; + + public OutputParameterTests() + { + _connStr = DataTestUtility.TCPConnectionString; + } + + [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))] + public void OutputParameterTest() + { + Assert.True(RunTestAndCompareWithBaseline()); + } + + private bool RunTestAndCompareWithBaseline() + { + string outputPath = "OutputParameter.out"; + string baselinePath; +#if DEBUG + if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance) + { + baselinePath = "OutputParameter_DebugMode.bsl"; + } + else + { + baselinePath = "OutputParameter_DebugMode_Azure.bsl"; + } +#else + if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance) + { + baselinePath = "OutputParameter_ReleaseMode.bsl"; + } + else + { + baselinePath = "OutputParameter_ReleaseMode_Azure.bsl"; + } +#endif + + var fstream = new FileStream(outputPath, FileMode.Create, FileAccess.Write, FileShare.Read); + var swriter = new StreamWriter(fstream, Encoding.UTF8); + var twriter = new TvpTest.CarriageReturnLineFeedReplacer(swriter); + Console.SetOut(twriter); + + // Run Test + OutputParameter.Run(_connStr); + + Console.Out.Flush(); + Console.Out.Dispose(); + + // Recover the standard output stream + StreamWriter standardOutput = new(Console.OpenStandardOutput()); + standardOutput.AutoFlush = true; + Console.SetOut(standardOutput); + + // Compare output file + var comparisonResult = FindDiffFromBaseline(baselinePath, outputPath); + + if (string.IsNullOrEmpty(comparisonResult)) + { + return true; + } + + Console.WriteLine("OutputParameterTest Failed!"); + Console.WriteLine("Please compare baseline: {0} with output: {1}", Path.GetFullPath(baselinePath), Path.GetFullPath(outputPath)); + Console.WriteLine("Comparison Results:"); + Console.WriteLine(comparisonResult); + return false; + } + + private static string FindDiffFromBaseline(string baselinePath, string outputPath) + { + var expectedLines = File.ReadAllLines(baselinePath); + var outputLines = File.ReadAllLines(outputPath); + + var comparisonSb = new StringBuilder(); + + var expectedLength = expectedLines.Length; + var outputLength = outputLines.Length; + var findDiffLength = Math.Min(expectedLength, outputLength); + + for (var lineNo = 0; lineNo < findDiffLength; lineNo++) + { + if (!expectedLines[lineNo].Equals(outputLines[lineNo])) + { + comparisonSb.AppendFormat("** DIFF at line {0} \n", lineNo); + comparisonSb.AppendFormat("A : {0} \n", outputLines[lineNo]); + comparisonSb.AppendFormat("E : {0} \n", expectedLines[lineNo]); + } + } + + var startIndex = findDiffLength - 1; + if (startIndex < 0) + { + startIndex = 0; + } + + if (findDiffLength < expectedLength) + { + comparisonSb.AppendFormat("** MISSING \n"); + for (var lineNo = startIndex; lineNo < expectedLength; lineNo++) + { + comparisonSb.AppendFormat("{0} : {1}", lineNo, expectedLines[lineNo]); + } + } + if (findDiffLength < outputLength) + { + comparisonSb.AppendFormat("** EXTRA \n"); + for (var lineNo = startIndex; lineNo < outputLength; lineNo++) + { + comparisonSb.AppendFormat("{0} : {1}", lineNo, outputLines[lineNo]); + } + } + + return comparisonSb.ToString(); + } + } +} diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_DebugMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_DebugMode.bsl new file mode 100644 index 0000000000..14ce4d701d --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_DebugMode.bsl @@ -0,0 +1,3 @@ +Starting 'OutputParameter' tests +Test setting output SqlParameter to an invalid value +Done diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_DebugMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_DebugMode_Azure.bsl new file mode 100644 index 0000000000..14ce4d701d --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_DebugMode_Azure.bsl @@ -0,0 +1,3 @@ +Starting 'OutputParameter' tests +Test setting output SqlParameter to an invalid value +Done diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_ReleaseMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_ReleaseMode.bsl new file mode 100644 index 0000000000..14ce4d701d --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_ReleaseMode.bsl @@ -0,0 +1,3 @@ +Starting 'OutputParameter' tests +Test setting output SqlParameter to an invalid value +Done diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_ReleaseMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_ReleaseMode_Azure.bsl new file mode 100644 index 0000000000..14ce4d701d --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_ReleaseMode_Azure.bsl @@ -0,0 +1,3 @@ +Starting 'OutputParameter' tests +Test setting output SqlParameter to an invalid value +Done diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameterTests.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameterTests.cs new file mode 100644 index 0000000000..8698324092 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameterTests.cs @@ -0,0 +1,133 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.IO; +using System.Text; +using Xunit; + +namespace Microsoft.Data.SqlClient.ManualTesting.Tests +{ + /// + /// Tests for SQL Variant parameters. + /// These tests run independently with their own baseline comparison. + /// + public class SqlVariantParameterTests + { + private readonly string _connStr; + + public SqlVariantParameterTests() + { + _connStr = DataTestUtility.TCPConnectionString; + } + + [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))] + public void SqlVariantParameterTest() + { + Assert.True(RunTestAndCompareWithBaseline()); + } + + private bool RunTestAndCompareWithBaseline() + { + string outputPath = "SqlVariantParameter.out"; + string baselinePath; +#if DEBUG + if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance) + { + baselinePath = "SqlVariantParameter_DebugMode.bsl"; + } + else + { + baselinePath = "SqlVariantParameter_DebugMode_Azure.bsl"; + } +#else + if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance) + { + baselinePath = "SqlVariantParameter_ReleaseMode.bsl"; + } + else + { + baselinePath = "SqlVariantParameter_ReleaseMode_Azure.bsl"; + } +#endif + + var fstream = new FileStream(outputPath, FileMode.Create, FileAccess.Write, FileShare.Read); + var swriter = new StreamWriter(fstream, Encoding.UTF8); + var twriter = new TvpTest.CarriageReturnLineFeedReplacer(swriter); + Console.SetOut(twriter); + + // Run Test + SqlVariantParam.SendAllSqlTypesInsideVariant(_connStr); + + Console.Out.Flush(); + Console.Out.Dispose(); + + // Recover the standard output stream + StreamWriter standardOutput = new(Console.OpenStandardOutput()); + standardOutput.AutoFlush = true; + Console.SetOut(standardOutput); + + // Compare output file + var comparisonResult = FindDiffFromBaseline(baselinePath, outputPath); + + if (string.IsNullOrEmpty(comparisonResult)) + { + return true; + } + + Console.WriteLine("SqlVariantParameterTest Failed!"); + Console.WriteLine("Please compare baseline: {0} with output: {1}", Path.GetFullPath(baselinePath), Path.GetFullPath(outputPath)); + Console.WriteLine("Comparison Results:"); + Console.WriteLine(comparisonResult); + return false; + } + + private static string FindDiffFromBaseline(string baselinePath, string outputPath) + { + var expectedLines = File.ReadAllLines(baselinePath); + var outputLines = File.ReadAllLines(outputPath); + + var comparisonSb = new StringBuilder(); + + var expectedLength = expectedLines.Length; + var outputLength = outputLines.Length; + var findDiffLength = Math.Min(expectedLength, outputLength); + + for (var lineNo = 0; lineNo < findDiffLength; lineNo++) + { + if (!expectedLines[lineNo].Equals(outputLines[lineNo])) + { + comparisonSb.AppendFormat("** DIFF at line {0} \n", lineNo); + comparisonSb.AppendFormat("A : {0} \n", outputLines[lineNo]); + comparisonSb.AppendFormat("E : {0} \n", expectedLines[lineNo]); + } + } + + var startIndex = findDiffLength - 1; + if (startIndex < 0) + { + startIndex = 0; + } + + if (findDiffLength < expectedLength) + { + comparisonSb.AppendFormat("** MISSING \n"); + for (var lineNo = startIndex; lineNo < expectedLength; lineNo++) + { + comparisonSb.AppendFormat("{0} : {1}", lineNo, expectedLines[lineNo]); + } + } + if (findDiffLength < outputLength) + { + comparisonSb.AppendFormat("** EXTRA \n"); + for (var lineNo = startIndex; lineNo < outputLength; lineNo++) + { + comparisonSb.AppendFormat("{0} : {1}", lineNo, outputLines[lineNo]); + } + } + + return comparisonSb.ToString(); + } + } +} diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_DebugMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_DebugMode.bsl new file mode 100644 index 0000000000..1b8f54d980 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_DebugMode.bsl @@ -0,0 +1,99 @@ + +Starting test 'SqlVariantParam' +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real +SendVariantParam -> System.Data.SqlTypes.SqlSingle:real +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real +SendVariantParam -> System.Data.SqlTypes.SqlSingle:real +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantParam -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDouble:float +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDouble:float +SendVariantParam -> System.Data.SqlTypes.SqlDouble:float +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDouble:float +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantParam -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantParam -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantParam -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantParam -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt32:int +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt32:int +SendVariantParam -> System.Data.SqlTypes.SqlInt32:int +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt32:int +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantParam -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantParam -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantParam -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric + --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal + --> ERROR: Expected base type money does not match actual base type numeric +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric + --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal + --> ERROR: Expected base type money does not match actual base type numeric +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric + --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal + --> ERROR: Expected base type money does not match actual base type numeric +SendVariantParam -> System.Data.SqlTypes.SqlMoney:money +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlMoney:money +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlMoney:money +End test 'SqlVariantParam' diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_DebugMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_DebugMode_Azure.bsl new file mode 100644 index 0000000000..1b8f54d980 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_DebugMode_Azure.bsl @@ -0,0 +1,99 @@ + +Starting test 'SqlVariantParam' +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real +SendVariantParam -> System.Data.SqlTypes.SqlSingle:real +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real +SendVariantParam -> System.Data.SqlTypes.SqlSingle:real +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantParam -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDouble:float +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDouble:float +SendVariantParam -> System.Data.SqlTypes.SqlDouble:float +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDouble:float +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantParam -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantParam -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantParam -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantParam -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt32:int +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt32:int +SendVariantParam -> System.Data.SqlTypes.SqlInt32:int +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt32:int +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantParam -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantParam -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantParam -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric + --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal + --> ERROR: Expected base type money does not match actual base type numeric +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric + --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal + --> ERROR: Expected base type money does not match actual base type numeric +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric + --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal + --> ERROR: Expected base type money does not match actual base type numeric +SendVariantParam -> System.Data.SqlTypes.SqlMoney:money +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlMoney:money +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlMoney:money +End test 'SqlVariantParam' diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_ReleaseMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_ReleaseMode.bsl new file mode 100644 index 0000000000..1b8f54d980 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_ReleaseMode.bsl @@ -0,0 +1,99 @@ + +Starting test 'SqlVariantParam' +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real +SendVariantParam -> System.Data.SqlTypes.SqlSingle:real +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real +SendVariantParam -> System.Data.SqlTypes.SqlSingle:real +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantParam -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDouble:float +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDouble:float +SendVariantParam -> System.Data.SqlTypes.SqlDouble:float +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDouble:float +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantParam -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantParam -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantParam -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantParam -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt32:int +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt32:int +SendVariantParam -> System.Data.SqlTypes.SqlInt32:int +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt32:int +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantParam -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantParam -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantParam -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric + --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal + --> ERROR: Expected base type money does not match actual base type numeric +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric + --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal + --> ERROR: Expected base type money does not match actual base type numeric +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric + --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal + --> ERROR: Expected base type money does not match actual base type numeric +SendVariantParam -> System.Data.SqlTypes.SqlMoney:money +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlMoney:money +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlMoney:money +End test 'SqlVariantParam' diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_ReleaseMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_ReleaseMode_Azure.bsl new file mode 100644 index 0000000000..1b8f54d980 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_ReleaseMode_Azure.bsl @@ -0,0 +1,99 @@ + +Starting test 'SqlVariantParam' +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real +SendVariantParam -> System.Data.SqlTypes.SqlSingle:real +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real +SendVariantParam -> System.Data.SqlTypes.SqlSingle:real +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantParam -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDouble:float +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDouble:float +SendVariantParam -> System.Data.SqlTypes.SqlDouble:float +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDouble:float +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantParam -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantParam -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantParam -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantParam -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt32:int +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt32:int +SendVariantParam -> System.Data.SqlTypes.SqlInt32:int +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt32:int +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantParam -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantParam -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantParam -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime +SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric + --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal + --> ERROR: Expected base type money does not match actual base type numeric +SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric + --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal + --> ERROR: Expected base type money does not match actual base type numeric +SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric + --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal + --> ERROR: Expected base type money does not match actual base type numeric +SendVariantParam -> System.Data.SqlTypes.SqlMoney:money +SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlMoney:money +SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlMoney:money +End test 'SqlVariantParam' diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameterTests.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameterTests.cs new file mode 100644 index 0000000000..8347500694 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameterTests.cs @@ -0,0 +1,137 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using Xunit; + +namespace Microsoft.Data.SqlClient.ManualTesting.Tests +{ + /// + /// Tests for stream input parameters (binary streams, text readers, XML). + /// These tests run independently with their own baseline comparison. + /// + public class StreamInputParameterTests + { + private readonly string _connStr; + + public StreamInputParameterTests() + { + _connStr = DataTestUtility.TCPConnectionString; + } + + [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))] + public void StreamInputParameterTest() + { + Assert.True(RunTestAndCompareWithBaseline()); + } + + private bool RunTestAndCompareWithBaseline() + { + string outputPath = "StreamInputParameter.out"; + string baselinePath; +#if DEBUG + if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance) + { + baselinePath = "StreamInputParameter_DebugMode.bsl"; + } + else + { + baselinePath = "StreamInputParameter_DebugMode_Azure.bsl"; + } +#else + if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance) + { + baselinePath = "StreamInputParameter_ReleaseMode.bsl"; + } + else + { + baselinePath = "StreamInputParameter_ReleaseMode_Azure.bsl"; + } +#endif + + var fstream = new FileStream(outputPath, FileMode.Create, FileAccess.Write, FileShare.Read); + var swriter = new StreamWriter(fstream, Encoding.UTF8); + var twriter = new TvpTest.CarriageReturnLineFeedReplacer(swriter); + Console.SetOut(twriter); + + // Print header to match baseline (original RunTest() printed this) + Console.WriteLine("Starting test 'TvpTest'"); + + // Run Test + StreamInputParam.Run(_connStr); + + Console.Out.Flush(); + Console.Out.Dispose(); + + // Recover the standard output stream + StreamWriter standardOutput = new(Console.OpenStandardOutput()); + standardOutput.AutoFlush = true; + Console.SetOut(standardOutput); + + // Compare output file + var comparisonResult = FindDiffFromBaseline(baselinePath, outputPath); + + if (string.IsNullOrEmpty(comparisonResult)) + { + return true; + } + + Console.WriteLine("StreamInputParameterTest Failed!"); + Console.WriteLine("Please compare baseline: {0} with output: {1}", Path.GetFullPath(baselinePath), Path.GetFullPath(outputPath)); + Console.WriteLine("Comparison Results:"); + Console.WriteLine(comparisonResult); + return false; + } + + private static string FindDiffFromBaseline(string baselinePath, string outputPath) + { + var expectedLines = File.ReadAllLines(baselinePath); + var outputLines = File.ReadAllLines(outputPath); + + var comparisonSb = new StringBuilder(); + + var expectedLength = expectedLines.Length; + var outputLength = outputLines.Length; + var findDiffLength = Math.Min(expectedLength, outputLength); + + for (var lineNo = 0; lineNo < findDiffLength; lineNo++) + { + if (!expectedLines[lineNo].Equals(outputLines[lineNo])) + { + comparisonSb.AppendFormat("** DIFF at line {0} \n", lineNo); + comparisonSb.AppendFormat("A : {0} \n", outputLines[lineNo]); + comparisonSb.AppendFormat("E : {0} \n", expectedLines[lineNo]); + } + } + + var startIndex = findDiffLength - 1; + if (startIndex < 0) + { + startIndex = 0; + } + + if (findDiffLength < expectedLength) + { + comparisonSb.AppendFormat("** MISSING \n"); + for (var lineNo = startIndex; lineNo < expectedLength; lineNo++) + { + comparisonSb.AppendFormat("{0} : {1}", lineNo, expectedLines[lineNo]); + } + } + if (findDiffLength < outputLength) + { + comparisonSb.AppendFormat("** EXTRA \n"); + for (var lineNo = startIndex; lineNo < outputLength; lineNo++) + { + comparisonSb.AppendFormat("{0} : {1}", lineNo, outputLines[lineNo]); + } + } + + return comparisonSb.ToString(); + } + } +} diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_DebugMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_DebugMode.bsl new file mode 100644 index 0000000000..111aae41a4 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_DebugMode.bsl @@ -0,0 +1,478 @@ +Starting test 'TvpTest' +Starting Test using AsyncDebugScope +Using stored procedure False +TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync True DataLen 500 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync True DataLen 500 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 0 OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK +TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD False) is OK +TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK +TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD False) is OK +TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK +TestXml (Sync True LimitLength True ) is OK +TestXml (Sync True LimitLength False ) is OK +TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW True) is OK +TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW True) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK +TestXml (Sync True LimitLength False ) is OK +TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync False DataLen 500 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync False DataLen 500 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 0 OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK +TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD False) is OK +TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK +TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD False) is OK +TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK +TestXml (Sync False LimitLength True ) is OK +TestXml (Sync False LimitLength False ) is OK +TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW True) is OK +TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW True) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK +TestXml (Sync False LimitLength False ) is OK +TestStream (Sync True DataLen 100000 ParamLen -1 OLD True AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync True DataLen 500 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync True DataLen 500 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen -1 OLD True AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 0 OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK +TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD True) is OK +TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD True) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK +TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD True) is OK +TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD True) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK +TestStream (Sync False DataLen 100000 ParamLen -1 OLD True AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync False DataLen 500 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync False DataLen 500 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen -1 OLD True AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 0 OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK +TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD True) is OK +TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD True) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK +TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD True) is OK +TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD True) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK +Using stored procedure True +TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync True DataLen 500 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync True DataLen 500 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 0 OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK +TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD False) is OK +TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK +TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD False) is OK +TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK +TestXml (Sync True LimitLength True ) is OK +TestXml (Sync True LimitLength False ) is OK +TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW True) is OK +TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW True) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK +TestXml (Sync True LimitLength False ) is OK +TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync False DataLen 500 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync False DataLen 500 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 0 OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK +TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD False) is OK +TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK +TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD False) is OK +TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK +TestXml (Sync False LimitLength True ) is OK +TestXml (Sync False LimitLength False ) is OK +TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW True) is OK +TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW True) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK +TestXml (Sync False LimitLength False ) is OK +TestStream (Sync True DataLen 100000 ParamLen -1 OLD True AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync True DataLen 500 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync True DataLen 500 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen -1 OLD True AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 0 OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK +TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD True) is OK +TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD True) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK +TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD True) is OK +TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD True) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK +TestStream (Sync False DataLen 100000 ParamLen -1 OLD True AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync False DataLen 500 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync False DataLen 500 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen -1 OLD True AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 0 OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK +TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD True) is OK +TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD True) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK +TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD True) is OK +TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD True) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK +Finished Test using AsyncDebugScope +Test immediate cancel for binary stream +PASS: Task is cancelled +Test immediate cancel for text stream +PASS: Task is cancelled +Test immediate cancel for xml stream +PASS: Task is cancelled +Test command preparation PASS +Test reuse of command after cancel +PASS +Test reuse of command after cancel +PASS +Test reuse of command after cancel +PASS diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_DebugMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_DebugMode_Azure.bsl new file mode 100644 index 0000000000..111aae41a4 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_DebugMode_Azure.bsl @@ -0,0 +1,478 @@ +Starting test 'TvpTest' +Starting Test using AsyncDebugScope +Using stored procedure False +TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync True DataLen 500 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync True DataLen 500 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 0 OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK +TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD False) is OK +TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK +TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD False) is OK +TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK +TestXml (Sync True LimitLength True ) is OK +TestXml (Sync True LimitLength False ) is OK +TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW True) is OK +TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW True) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK +TestXml (Sync True LimitLength False ) is OK +TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync False DataLen 500 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync False DataLen 500 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 0 OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK +TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD False) is OK +TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK +TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD False) is OK +TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK +TestXml (Sync False LimitLength True ) is OK +TestXml (Sync False LimitLength False ) is OK +TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW True) is OK +TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW True) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK +TestXml (Sync False LimitLength False ) is OK +TestStream (Sync True DataLen 100000 ParamLen -1 OLD True AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync True DataLen 500 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync True DataLen 500 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen -1 OLD True AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 0 OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK +TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD True) is OK +TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD True) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK +TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD True) is OK +TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD True) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK +TestStream (Sync False DataLen 100000 ParamLen -1 OLD True AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync False DataLen 500 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync False DataLen 500 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen -1 OLD True AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 0 OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK +TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD True) is OK +TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD True) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK +TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD True) is OK +TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD True) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK +Using stored procedure True +TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync True DataLen 500 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync True DataLen 500 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 0 OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK +TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD False) is OK +TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK +TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD False) is OK +TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK +TestXml (Sync True LimitLength True ) is OK +TestXml (Sync True LimitLength False ) is OK +TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW True) is OK +TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW True) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK +TestXml (Sync True LimitLength False ) is OK +TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync False DataLen 500 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync False DataLen 500 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen 9000 OLD False AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen 1000 OLD False AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 0 OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK +TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD False) is OK +TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD False) is OK +TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK +TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD False) is OK +TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD False) is OK +TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK +TestXml (Sync False LimitLength True ) is OK +TestXml (Sync False LimitLength False ) is OK +TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW True) is OK +TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW True) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK +TestXml (Sync False LimitLength False ) is OK +TestStream (Sync True DataLen 100000 ParamLen -1 OLD True AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync True DataLen 500 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync True DataLen 500 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen -1 OLD True AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync True DataLen 0 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync True DataLen 10000 ParamLen 0 OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK +TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK +TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD True) is OK +TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD True) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK +TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD True) is OK +TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD True) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK +TestStream (Sync False DataLen 100000 ParamLen -1 OLD True AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync False DataLen 500 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync False DataLen 500 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen -1 OLD True AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen 9000 OLD True AVW False) is OK +TestStream (Sync False DataLen 0 ParamLen 1000 OLD True AVW False) is OK +TestStream (Sync False DataLen 10000 ParamLen 0 OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK +TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK +TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD True) is OK +TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD True) is OK +TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD True) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK +TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK +TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD True) is OK +TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD True) is OK +TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD True) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK +TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK +Finished Test using AsyncDebugScope +Test immediate cancel for binary stream +PASS: Task is cancelled +Test immediate cancel for text stream +PASS: Task is cancelled +Test immediate cancel for xml stream +PASS: Task is cancelled +Test command preparation PASS +Test reuse of command after cancel +PASS +Test reuse of command after cancel +PASS +Test reuse of command after cancel +PASS diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_ReleaseMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_ReleaseMode.bsl new file mode 100644 index 0000000000..3f3569899b --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_ReleaseMode.bsl @@ -0,0 +1,17 @@ +Starting test 'TvpTest' +Starting Test using AsyncDebugScope +Tests using AsyncDebugScope are only supported in Debug mode! +Finished Test using AsyncDebugScope +Test immediate cancel for binary stream +PASS: Task is cancelled +Test immediate cancel for text stream +PASS: Task is cancelled +Test immediate cancel for xml stream +PASS: Task is cancelled +Test command preparation PASS +Test reuse of command after cancel +PASS +Test reuse of command after cancel +PASS +Test reuse of command after cancel +PASS diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_ReleaseMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_ReleaseMode_Azure.bsl new file mode 100644 index 0000000000..3f3569899b --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_ReleaseMode_Azure.bsl @@ -0,0 +1,17 @@ +Starting test 'TvpTest' +Starting Test using AsyncDebugScope +Tests using AsyncDebugScope are only supported in Debug mode! +Finished Test using AsyncDebugScope +Test immediate cancel for binary stream +PASS: Task is cancelled +Test immediate cancel for text stream +PASS: Task is cancelled +Test immediate cancel for xml stream +PASS: Task is cancelled +Test command preparation PASS +Test reuse of command after cancel +PASS +Test reuse of command after cancel +PASS +Test reuse of command after cancel +PASS diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundariesTests.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundariesTests.cs new file mode 100644 index 0000000000..60667fdb50 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundariesTests.cs @@ -0,0 +1,127 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.IO; +using System.Text; +using Xunit; + +namespace Microsoft.Data.SqlClient.ManualTesting.Tests +{ + /// + /// Tests for TVP column boundaries with various data types. + /// These tests run independently with their own baseline comparison. + /// + public class TvpColumnBoundariesTests + { + [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))] + public void TvpColumnBoundariesTest() + { + Assert.True(RunTestAndCompareWithBaseline()); + } + + private bool RunTestAndCompareWithBaseline() + { + string outputPath = "TvpColumnBoundaries.out"; + string baselinePath; +#if DEBUG + if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance) + { + baselinePath = "TvpColumnBoundaries_DebugMode.bsl"; + } + else + { + baselinePath = "TvpColumnBoundaries_DebugMode_Azure.bsl"; + } +#else + if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance) + { + baselinePath = "TvpColumnBoundaries_ReleaseMode.bsl"; + } + else + { + baselinePath = "TvpColumnBoundaries_ReleaseMode_Azure.bsl"; + } +#endif + + var fstream = new FileStream(outputPath, FileMode.Create, FileAccess.Write, FileShare.Read); + var swriter = new StreamWriter(fstream, Encoding.UTF8); + var twriter = new TvpTest.CarriageReturnLineFeedReplacer(swriter); + Console.SetOut(twriter); + + // Run Test - TvpTest instance is needed to access ColumnBoundariesTest + var tvpTest = new TvpTest(); + tvpTest.ColumnBoundariesTest(); + + Console.Out.Flush(); + Console.Out.Dispose(); + + // Recover the standard output stream + StreamWriter standardOutput = new(Console.OpenStandardOutput()); + standardOutput.AutoFlush = true; + Console.SetOut(standardOutput); + + // Compare output file + var comparisonResult = FindDiffFromBaseline(baselinePath, outputPath); + + if (string.IsNullOrEmpty(comparisonResult)) + { + return true; + } + + Console.WriteLine("TvpColumnBoundariesTest Failed!"); + Console.WriteLine("Please compare baseline: {0} with output: {1}", Path.GetFullPath(baselinePath), Path.GetFullPath(outputPath)); + Console.WriteLine("Comparison Results:"); + Console.WriteLine(comparisonResult); + return false; + } + + private static string FindDiffFromBaseline(string baselinePath, string outputPath) + { + var expectedLines = File.ReadAllLines(baselinePath); + var outputLines = File.ReadAllLines(outputPath); + + var comparisonSb = new StringBuilder(); + + var expectedLength = expectedLines.Length; + var outputLength = outputLines.Length; + var findDiffLength = Math.Min(expectedLength, outputLength); + + for (var lineNo = 0; lineNo < findDiffLength; lineNo++) + { + if (!expectedLines[lineNo].Equals(outputLines[lineNo])) + { + comparisonSb.AppendFormat("** DIFF at line {0} \n", lineNo); + comparisonSb.AppendFormat("A : {0} \n", outputLines[lineNo]); + comparisonSb.AppendFormat("E : {0} \n", expectedLines[lineNo]); + } + } + + var startIndex = findDiffLength - 1; + if (startIndex < 0) + { + startIndex = 0; + } + + if (findDiffLength < expectedLength) + { + comparisonSb.AppendFormat("** MISSING \n"); + for (var lineNo = startIndex; lineNo < expectedLength; lineNo++) + { + comparisonSb.AppendFormat("{0} : {1}", lineNo, expectedLines[lineNo]); + } + } + if (findDiffLength < outputLength) + { + comparisonSb.AppendFormat("** EXTRA \n"); + for (var lineNo = startIndex; lineNo < outputLength; lineNo++) + { + comparisonSb.AppendFormat("{0} : {1}", lineNo, outputLines[lineNo]); + } + } + + return comparisonSb.ToString(); + } + } +} diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_DebugMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_DebugMode.bsl new file mode 100644 index 0000000000..89f59d8715 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_DebugMode.bsl @@ -0,0 +1,466 @@ ++++++++ Iteration 0 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 1 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 2 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 3 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 4 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 5 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 6 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 7 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 8 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 9 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 10 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 11 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 12 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 13 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 14 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 15 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 16 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 17 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 18 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 19 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 20 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +Matches = 14 +SqlException. Error Code: 2628 +Matches = 28 +Matches = 14 +SqlException. Error Code: 2628 +Matches = 14 +Matches = 14 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 21 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 22 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 23 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 24 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 25 ++++++++ +------IEnumerable--------- +Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=0, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=1, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=4, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=5, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=8, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=9, Column=5 +Matches = 162 +------DbDataReader--------- +Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=0, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=1, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=4, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=5, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=8, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=9, Column=5 +Matches = 162 +------DataTables--------- +SqlException. Error Code: 242 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 26 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 27 ++++++++ +------IEnumerable--------- +Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647. +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=0, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=1, Column=5 +Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney + Row=1, Column=9 +Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney + Row=2, Column=9 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=4, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=5, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=8, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=9, Column=5 +Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney + Row=10, Column=9 +Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney + Row=11, Column=9 +Matches = 158 +------DbDataReader--------- +Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647. +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=0, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=1, Column=5 +Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney + Row=1, Column=9 +Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney + Row=2, Column=9 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=4, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=5, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=8, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=9, Column=5 +Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney + Row=10, Column=9 +Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney + Row=11, Column=9 +Matches = 158 +------DataTables--------- +SqlException. Error Code: 242 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 8115 diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_DebugMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_DebugMode_Azure.bsl new file mode 100644 index 0000000000..b59044ae03 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_DebugMode_Azure.bsl @@ -0,0 +1,466 @@ ++++++++ Iteration 0 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 1 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 2 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 3 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 4 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 5 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 6 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 7 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 8 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 9 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 10 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 11 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 12 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 13 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 14 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 15 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 16 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 17 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 18 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 19 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 20 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +Matches = 14 +SqlException. Error Code: 8152 +Matches = 28 +Matches = 14 +SqlException. Error Code: 8152 +Matches = 14 +Matches = 14 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 21 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 22 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 23 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 24 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 25 ++++++++ +------IEnumerable--------- +Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=0, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=1, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=4, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=5, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=8, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=9, Column=5 +Matches = 162 +------DbDataReader--------- +Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=0, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=1, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=4, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=5, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=8, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=9, Column=5 +Matches = 162 +------DataTables--------- +SqlException. Error Code: 242 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 26 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 27 ++++++++ +------IEnumerable--------- +Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647. +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=0, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=1, Column=5 +Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney + Row=1, Column=9 +Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney + Row=2, Column=9 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=4, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=5, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=8, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=9, Column=5 +Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney + Row=10, Column=9 +Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney + Row=11, Column=9 +Matches = 158 +------DbDataReader--------- +Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647. +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=0, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=1, Column=5 +Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney + Row=1, Column=9 +Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney + Row=2, Column=9 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=4, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=5, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=8, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=9, Column=5 +Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney + Row=10, Column=9 +Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney + Row=11, Column=9 +Matches = 158 +------DataTables--------- +SqlException. Error Code: 242 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8115 diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_ReleaseMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_ReleaseMode.bsl new file mode 100644 index 0000000000..89f59d8715 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_ReleaseMode.bsl @@ -0,0 +1,466 @@ ++++++++ Iteration 0 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 1 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 2 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 3 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 4 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 5 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 6 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 7 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 8 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 9 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 10 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 11 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 12 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 13 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 14 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 15 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 16 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 17 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 18 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 19 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 20 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +Matches = 14 +SqlException. Error Code: 2628 +Matches = 28 +Matches = 14 +SqlException. Error Code: 2628 +Matches = 14 +Matches = 14 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 21 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 22 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 23 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 24 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 25 ++++++++ +------IEnumerable--------- +Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=0, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=1, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=4, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=5, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=8, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=9, Column=5 +Matches = 162 +------DbDataReader--------- +Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=0, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=1, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=4, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=5, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=8, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=9, Column=5 +Matches = 162 +------DataTables--------- +SqlException. Error Code: 242 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 26 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 28 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +Matches = 14 ++++++++ Iteration 27 ++++++++ +------IEnumerable--------- +Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647. +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=0, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=1, Column=5 +Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney + Row=1, Column=9 +Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney + Row=2, Column=9 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=4, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=5, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=8, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=9, Column=5 +Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney + Row=10, Column=9 +Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney + Row=11, Column=9 +Matches = 158 +------DbDataReader--------- +Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647. +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=0, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=1, Column=5 +Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney + Row=1, Column=9 +Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney + Row=2, Column=9 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=4, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=5, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=8, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=9, Column=5 +Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney + Row=10, Column=9 +Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney + Row=11, Column=9 +Matches = 158 +------DataTables--------- +SqlException. Error Code: 242 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 2628 +SqlException. Error Code: 8115 diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_ReleaseMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_ReleaseMode_Azure.bsl new file mode 100644 index 0000000000..b59044ae03 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_ReleaseMode_Azure.bsl @@ -0,0 +1,466 @@ ++++++++ Iteration 0 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 1 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 2 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 3 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 4 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 5 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 6 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 7 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 8 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 9 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 10 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 11 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 12 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 13 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 14 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 15 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 16 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 17 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 18 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 19 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 20 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +Matches = 14 +SqlException. Error Code: 8152 +Matches = 28 +Matches = 14 +SqlException. Error Code: 8152 +Matches = 14 +Matches = 14 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 21 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 22 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 23 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 24 ++++++++ +SqlException creating objects: 1701 +SqlException dropping objects: 3701 ++++++++ Iteration 25 ++++++++ +------IEnumerable--------- +Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=0, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=1, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=4, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=5, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=8, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=9, Column=5 +Matches = 162 +------DbDataReader--------- +Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=0, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=1, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=4, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=5, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=8, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=9, Column=5 +Matches = 162 +------DataTables--------- +SqlException. Error Code: 242 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 26 ++++++++ +------IEnumerable--------- +Matches = 168 +------DbDataReader--------- +Matches = 168 +------DataTables--------- +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 28 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +Matches = 14 ++++++++ Iteration 27 ++++++++ +------IEnumerable--------- +Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647. +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=0, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=1, Column=5 +Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney + Row=1, Column=9 +Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney + Row=2, Column=9 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=4, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=5, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=8, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=9, Column=5 +Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney + Row=10, Column=9 +Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney + Row=11, Column=9 +Matches = 158 +------DbDataReader--------- +Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata. +Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647. +Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647. +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=0, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=1, Column=5 +Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney + Row=1, Column=9 +Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney + Row=2, Column=9 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=4, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=5, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=8, Column=5 +Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime + Row=9, Column=5 +Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney + Row=10, Column=9 +Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney + Row=11, Column=9 +Matches = 158 +------DataTables--------- +SqlException. Error Code: 242 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8152 +SqlException. Error Code: 8115 diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHintsTests.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHintsTests.cs new file mode 100644 index 0000000000..86dbb28a86 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHintsTests.cs @@ -0,0 +1,127 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.IO; +using System.Text; +using Xunit; + +namespace Microsoft.Data.SqlClient.ManualTesting.Tests +{ + /// + /// Tests for TVP query hints (sort order, uniqueness, default columns). + /// These tests run independently with their own baseline comparison. + /// + public class TvpQueryHintsTests + { + [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))] + public void TvpQueryHintsTest() + { + Assert.True(RunTestAndCompareWithBaseline()); + } + + private bool RunTestAndCompareWithBaseline() + { + string outputPath = "TvpQueryHints.out"; + string baselinePath; +#if DEBUG + if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance) + { + baselinePath = "TvpQueryHints_DebugMode.bsl"; + } + else + { + baselinePath = "TvpQueryHints_DebugMode_Azure.bsl"; + } +#else + if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance) + { + baselinePath = "TvpQueryHints_ReleaseMode.bsl"; + } + else + { + baselinePath = "TvpQueryHints_ReleaseMode_Azure.bsl"; + } +#endif + + var fstream = new FileStream(outputPath, FileMode.Create, FileAccess.Write, FileShare.Read); + var swriter = new StreamWriter(fstream, Encoding.UTF8); + var twriter = new TvpTest.CarriageReturnLineFeedReplacer(swriter); + Console.SetOut(twriter); + + // Run Test - TvpTest instance is needed to access QueryHintsTest + var tvpTest = new TvpTest(); + tvpTest.QueryHintsTest(); + + Console.Out.Flush(); + Console.Out.Dispose(); + + // Recover the standard output stream + StreamWriter standardOutput = new(Console.OpenStandardOutput()); + standardOutput.AutoFlush = true; + Console.SetOut(standardOutput); + + // Compare output file + var comparisonResult = FindDiffFromBaseline(baselinePath, outputPath); + + if (string.IsNullOrEmpty(comparisonResult)) + { + return true; + } + + Console.WriteLine("TvpQueryHintsTest Failed!"); + Console.WriteLine("Please compare baseline: {0} with output: {1}", Path.GetFullPath(baselinePath), Path.GetFullPath(outputPath)); + Console.WriteLine("Comparison Results:"); + Console.WriteLine(comparisonResult); + return false; + } + + private static string FindDiffFromBaseline(string baselinePath, string outputPath) + { + var expectedLines = File.ReadAllLines(baselinePath); + var outputLines = File.ReadAllLines(outputPath); + + var comparisonSb = new StringBuilder(); + + var expectedLength = expectedLines.Length; + var outputLength = outputLines.Length; + var findDiffLength = Math.Min(expectedLength, outputLength); + + for (var lineNo = 0; lineNo < findDiffLength; lineNo++) + { + if (!expectedLines[lineNo].Equals(outputLines[lineNo])) + { + comparisonSb.AppendFormat("** DIFF at line {0} \n", lineNo); + comparisonSb.AppendFormat("A : {0} \n", outputLines[lineNo]); + comparisonSb.AppendFormat("E : {0} \n", expectedLines[lineNo]); + } + } + + var startIndex = findDiffLength - 1; + if (startIndex < 0) + { + startIndex = 0; + } + + if (findDiffLength < expectedLength) + { + comparisonSb.AppendFormat("** MISSING \n"); + for (var lineNo = startIndex; lineNo < expectedLength; lineNo++) + { + comparisonSb.AppendFormat("{0} : {1}", lineNo, expectedLines[lineNo]); + } + } + if (findDiffLength < outputLength) + { + comparisonSb.AppendFormat("** EXTRA \n"); + for (var lineNo = startIndex; lineNo < outputLength; lineNo++) + { + comparisonSb.AppendFormat("{0} : {1}", lineNo, outputLines[lineNo]); + } + } + + return comparisonSb.ToString(); + } + } +} diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_DebugMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_DebugMode.bsl new file mode 100644 index 0000000000..e72190c064 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_DebugMode.bsl @@ -0,0 +1,30 @@ +------- Sort order + uniqueness #1: simple ------- +------------- +0 Z-value 3/1/2000 12:00:00 AM 5 +1 X-value 1/1/2000 12:00:00 AM 7 + +------------- +------- Sort order + uniqueness #2: mixed order ------- +------------- +4 X-value 1/1/2000 12:00:00 AM 3 +5 X-value 3/1/2000 12:00:00 AM 3 + +------------- +------- default column #1: outer subset ------- +------------- +-1 Y-value 1/1/2000 12:00:00 AM -1 +-1 Z-value 1/1/2000 12:00:00 AM -1 + +------------- +------- default column #1: middle subset ------- +------------- +4 DEFUALT 1/1/2006 12:00:00 AM 3 +5 DEFUALT 1/1/2006 12:00:00 AM 3 + +------------- +------- default column #1: all ------- +------------- +-1 DEFUALT 1/1/2006 12:00:00 AM -1 +-1 DEFUALT 1/1/2006 12:00:00 AM -1 + +------------- diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_DebugMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_DebugMode_Azure.bsl new file mode 100644 index 0000000000..e72190c064 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_DebugMode_Azure.bsl @@ -0,0 +1,30 @@ +------- Sort order + uniqueness #1: simple ------- +------------- +0 Z-value 3/1/2000 12:00:00 AM 5 +1 X-value 1/1/2000 12:00:00 AM 7 + +------------- +------- Sort order + uniqueness #2: mixed order ------- +------------- +4 X-value 1/1/2000 12:00:00 AM 3 +5 X-value 3/1/2000 12:00:00 AM 3 + +------------- +------- default column #1: outer subset ------- +------------- +-1 Y-value 1/1/2000 12:00:00 AM -1 +-1 Z-value 1/1/2000 12:00:00 AM -1 + +------------- +------- default column #1: middle subset ------- +------------- +4 DEFUALT 1/1/2006 12:00:00 AM 3 +5 DEFUALT 1/1/2006 12:00:00 AM 3 + +------------- +------- default column #1: all ------- +------------- +-1 DEFUALT 1/1/2006 12:00:00 AM -1 +-1 DEFUALT 1/1/2006 12:00:00 AM -1 + +------------- diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_ReleaseMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_ReleaseMode.bsl new file mode 100644 index 0000000000..e72190c064 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_ReleaseMode.bsl @@ -0,0 +1,30 @@ +------- Sort order + uniqueness #1: simple ------- +------------- +0 Z-value 3/1/2000 12:00:00 AM 5 +1 X-value 1/1/2000 12:00:00 AM 7 + +------------- +------- Sort order + uniqueness #2: mixed order ------- +------------- +4 X-value 1/1/2000 12:00:00 AM 3 +5 X-value 3/1/2000 12:00:00 AM 3 + +------------- +------- default column #1: outer subset ------- +------------- +-1 Y-value 1/1/2000 12:00:00 AM -1 +-1 Z-value 1/1/2000 12:00:00 AM -1 + +------------- +------- default column #1: middle subset ------- +------------- +4 DEFUALT 1/1/2006 12:00:00 AM 3 +5 DEFUALT 1/1/2006 12:00:00 AM 3 + +------------- +------- default column #1: all ------- +------------- +-1 DEFUALT 1/1/2006 12:00:00 AM -1 +-1 DEFUALT 1/1/2006 12:00:00 AM -1 + +------------- diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_ReleaseMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_ReleaseMode_Azure.bsl new file mode 100644 index 0000000000..e72190c064 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_ReleaseMode_Azure.bsl @@ -0,0 +1,30 @@ +------- Sort order + uniqueness #1: simple ------- +------------- +0 Z-value 3/1/2000 12:00:00 AM 5 +1 X-value 1/1/2000 12:00:00 AM 7 + +------------- +------- Sort order + uniqueness #2: mixed order ------- +------------- +4 X-value 1/1/2000 12:00:00 AM 3 +5 X-value 3/1/2000 12:00:00 AM 3 + +------------- +------- default column #1: outer subset ------- +------------- +-1 Y-value 1/1/2000 12:00:00 AM -1 +-1 Z-value 1/1/2000 12:00:00 AM -1 + +------------- +------- default column #1: middle subset ------- +------------- +4 DEFUALT 1/1/2006 12:00:00 AM 3 +5 DEFUALT 1/1/2006 12:00:00 AM 3 + +------------- +------- default column #1: all ------- +------------- +-1 DEFUALT 1/1/2006 12:00:00 AM -1 +-1 DEFUALT 1/1/2006 12:00:00 AM -1 + +------------- diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs index 912800016e..45b8051005 100644 --- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs @@ -209,24 +209,56 @@ private void RunTest() private bool RunTestCoreAndCompareWithBaseline() { string outputPath = "SqlParameterTest.out"; - string baselinePath; + string[] baselinePaths; #if DEBUG if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance) { - baselinePath = "SqlParameterTest_DebugMode.bsl"; + baselinePaths = new[] + { + "StreamInputParameter_DebugMode.bsl", + "TvpColumnBoundaries_DebugMode.bsl", + "TvpQueryHints_DebugMode.bsl", + "SqlVariantParameter_DebugMode.bsl", + "DateTimeVariant_DebugMode.bsl", + "OutputParameter_DebugMode.bsl" + }; } else { - baselinePath = "SqlParameterTest_DebugMode_Azure.bsl"; + baselinePaths = new[] + { + "StreamInputParameter_DebugMode_Azure.bsl", + "TvpColumnBoundaries_DebugMode_Azure.bsl", + "TvpQueryHints_DebugMode_Azure.bsl", + "SqlVariantParameter_DebugMode_Azure.bsl", + "DateTimeVariant_DebugMode_Azure.bsl", + "OutputParameter_DebugMode_Azure.bsl" + }; } #else if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance) { - baselinePath = "SqlParameterTest_ReleaseMode.bsl"; + baselinePaths = new[] + { + "StreamInputParameter_ReleaseMode.bsl", + "TvpColumnBoundaries_ReleaseMode.bsl", + "TvpQueryHints_ReleaseMode.bsl", + "SqlVariantParameter_ReleaseMode.bsl", + "DateTimeVariant_ReleaseMode.bsl", + "OutputParameter_ReleaseMode.bsl" + }; } else { - baselinePath = "SqlParameterTest_ReleaseMode_Azure.bsl"; + baselinePaths = new[] + { + "StreamInputParameter_ReleaseMode_Azure.bsl", + "TvpColumnBoundaries_ReleaseMode_Azure.bsl", + "TvpQueryHints_ReleaseMode_Azure.bsl", + "SqlVariantParameter_ReleaseMode_Azure.bsl", + "DateTimeVariant_ReleaseMode_Azure.bsl", + "OutputParameter_ReleaseMode_Azure.bsl" + }; } #endif @@ -247,8 +279,8 @@ private bool RunTestCoreAndCompareWithBaseline() standardOutput.AutoFlush = true; Console.SetOut(standardOutput); - // Compare output file - var comparisonResult = FindDiffFromBaseline(baselinePath, outputPath); + // Compare output file by concatenating split baseline files + var comparisonResult = FindDiffFromBaseline(baselinePaths, outputPath); if (string.IsNullOrEmpty(comparisonResult)) { @@ -256,21 +288,27 @@ private bool RunTestCoreAndCompareWithBaseline() } Console.WriteLine("Test Failed!"); - Console.WriteLine("Please compare baseline : {0} with output :{1}", Path.GetFullPath(baselinePath), Path.GetFullPath(outputPath)); + Console.WriteLine("Please compare concatenated baselines with output: {0}", Path.GetFullPath(outputPath)); Console.WriteLine("Comparison Results : "); Console.WriteLine(comparisonResult); return false; } - private string FindDiffFromBaseline(string baselinePath, string outputPath) + private string FindDiffFromBaseline(string[] baselinePaths, string outputPath) { - var expectedLines = File.ReadAllLines(baselinePath); + // Concatenate all baseline files + var expectedLines = new List(); + foreach (var baselinePath in baselinePaths) + { + expectedLines.AddRange(File.ReadAllLines(baselinePath)); + } + var outputLines = File.ReadAllLines(outputPath); var comparisonSb = new StringBuilder(); // Start compare results - var expectedLength = expectedLines.Length; + var expectedLength = expectedLines.Count; var outputLength = outputLines.Length; var findDiffLength = Math.Min(expectedLength, outputLength); @@ -311,7 +349,7 @@ private string FindDiffFromBaseline(string baselinePath, string outputPath) return comparisonSb.ToString(); } - private sealed class CarriageReturnLineFeedReplacer : TextWriter + internal sealed class CarriageReturnLineFeedReplacer : TextWriter { private TextWriter _output; private int _lineFeedCount; @@ -373,7 +411,7 @@ public override void Write(char value) } #region Main test methods - private void ColumnBoundariesTest() + internal void ColumnBoundariesTest() { _ = SteStructuredTypeBoundaries.AllColumnTypesExceptUdts.GetEnumerator( s_boundariesTestKeys); @@ -466,7 +504,7 @@ private void TestTVPPermutations(SteStructuredTypeBoundaries bounds, bool runOnl } } - private void QueryHintsTest() + internal void QueryHintsTest() { using SqlConnection conn = new(_connStr); conn.Open();