Blob sub_type 1 フィールドでテキストを検索しようとしています。検索テキストが 1 ~ 28 文字の場合、検索は正常に機能します。検索テキストが 28 文字を超えると、"-303 算術例外、数値オーバーフロー、または文字列の切り捨て" 例外が発生します。
DB から SQL を実行すると問題なく動作します。この問題は .NET ドライバーを使用している場合にのみ発生します。
parameter.FbDbType を FbDbType.Text に変更しようとしましたが、「-303 内部エラー」が発生しました。
ここでアイデアが不足しています。誰か助けてくれませんか?
前もって感謝します
K
アップデート:
同じ結果のサンプル アプリケーションを次に示します。
try
{
FbConnectionStringBuilder csFB = new FbConnectionStringBuilder();
csFB.Database = @"C:\MyDatabase\ITEMS.FDB";
csFB.UserID = "SYSDBA";
csFB.Password = "masterkey";
csFB.Pooling = true;
csFB.ServerType = FbServerType.Embedded;
using (var connection = new FbConnection(csFB.ToString()))
{
connection.Open();
using (var command = connection.CreateCommand())
{
var param = command.CreateParameter();
param.FbDbType = FbDbType.VarChar;
param.Value = "TESTTESTTESTTESTTESTTESTTESTTESTTESTTEST@TEST.COM";
//param.Value = "TEST@TEST.COM";
param.ParameterName = "@parm0";
command.Parameters.Add(param);
command.CommandText = "SELECT * FROM itemprops WHERE UPPER(SUBSTRING(itemdisplaysrcaddr FROM 1)) CONTAINING @parm0";
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(Convert.ToString(reader["itemdisplaysrcaddr"]));
}
}
}
connection.Close();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Console.ReadLine();