Das Problem ist wohl, dass das €-Zeichen in C# ein Unicode-Zeichen ist und beim Insert dann als ungültiges Zeichen erkannt wird.
Hier ist es erforderlich mit ParameterMarkern bzw. ParameterObjekten zu arbeiten. Dann wird die Codewandlung korrekt durchgeführt.

Delphi weiß wohl bei ODBC, dass der SQL in SBCS abgegeben werden muss und wandelt dann selber um.
In .NET ist aber alles Unicode.