|
From: Christian W. <chr...@rt...> - 2015-06-26 11:50:02
|
I am using Firebird 2.5.4, superServer and embedded, Visula Studio 2013,
.Net Framework 4.5.1, .Net Provider 4.6.2
//==========================================================================
=================
I have defined a table with "CyclePassed" CHAR(1) to store a boolean result
CREATE TABLE "SampleSummaries" (
"UniqueId" BIGINT DEFAULT 0 NOT NULL,
"EndTestRunId" BIGINT NOT NULL,
"Cycle" BIGINT NOT NULL,
"LoadPressure" FLOAT,
"LoadPressureMin" FLOAT,
"LoadPressureMax" FLOAT,
"ShutoffPressure" FLOAT,
"ShutoffPressureMin" FLOAT,
"ShutoffPressureMax" FLOAT,
"TravelTime" FLOAT,
"TravelTimeMin" FLOAT,
"TravelTimeMax" FLOAT,
"CyclePassed" CHAR(1)
);
//==========================================================================
=================
// access to table from C#
bool cyclePassed = true;
FbCommand command = new FbCommand();
command.CommandText =
"INSERT INTO \"SampleSummaries\" (" +
"\"EndTestRunId\", \"Cycle\", " +
"\"LoadPressure\", \"LoadPressureMin\", \"LoadPressureMax\", " +
"\"ShutoffPressure\", \"ShutoffPressureMin\", \"ShutoffPressureMax\",
" +
"\"TravelTime\", \"TravelTimeMin\", \"TravelTimeMax\",
\"CyclePassed\"" +
") VALUES (@EndTestRunId, @Cycle, " +
"@LoadPressure, @LoadPressureMin, @LoadPressureMax, " +
"@ShutoffPressure, @ShutoffPressureMin, @ShutoffPressureMax," +
"@TravelTime, @TravelTimeMin, @TravelTimeMax, @CyclePassed )";
command.Connection = samplesTableAdapter.Connection;
command.Transaction = transaction;
command.Parameters.Add("@EndTestRunId", FbDbType.BigInt).Value = channelId;
...
// PROBLEM A:
============================================================================
==============
// works with stand alone server,
// but SQL error "string conversion error '49'"
// {Remark: 49 is the decimal ASCII code of '1'}
command.Parameters.Add("@CyclePassed", FbDbType.Boolean).Value = cyclePassed
? '1' : '0';
// PROBLEM B:
============================================================================
==============
// works with embedded server,
// but "string truncation error" with stand alone server
command.Parameters.Add("@CyclePassed", FbDbType.Boolean).Value =
cyclePassed;
// REMARK:
============================================================================
==============
// works with embedded server and standalone server Firebird 2.5.3, with
.Net Provider 2.0, .Net Framework 2.0, Visual Studio 2008
command.Parameters.Add("@CyclePassed", FbDbType.Boolean).Value =
cyclePassed;
// QUESTION
============================================================================
================
Is this a bug or am I missing the correct usage of storing a 'bool'?
Happy coding
Christian Waldmann
|