Я использую подготовленный оператор для sql ниже
SELECT
t.baseSystem 'source',
count(t.filenumber) 'fileCount'
FROM orders t JOIN customer c ON t.customer = c.customerid
WHERE
t.entrydate = @loaddate
AND (t.baseSystem in ('GFQWE','GHOTR','EFXSDE','EBDBDL','AUTO','MDFX')
OR t.baseSystem LIKE 'STPALLOC_%')
AND t.trdsource in (0,22)
AND t.refType NOT LIKE '%Far%'
AND c.type IN ('BANK','NBNK','BFAC')
AND t.reference NOT IN ('QDisk', 'DSSDOL', 'DEFG', 'FGYT')
GROUP BY t.baseSystem
UNION
SELECT
CASE
WHEN t.baseSystem = 'GFQWE' THEN 'FGQC'
WHEN t.baseSystem = 'GHOTR' THEN 'OUY UI'
ELSE t.baseSystem
END 'source',
count(t.filenumber) 'fileCount'
FROM orders t JOIN customer c ON t.customer = c.customerid
WHERE
t.entrydate = @loaddate
AND t.baseSystem in ('GFQWE','GHOTR')
AND t.broker = 'P'
AND t.trdsource in (0,22)
AND t.refType NOT LIKE '%Far%'
AND c.type IN ('BANK','NBNK','BFAC')
AND t.reference NOT IN ('QDisk', 'DSSDOL', 'DEFG', 'FGYT')
GROUP BY
CASE
WHEN t.baseSystem = 'GFQWE' THEN 'FGQC'
WHEN t.baseSystem = 'GHOTR' THEN 'OUY UI'
ELSE t.baseSystem
END
код С#
DataTable result = new DataTable();
AseConnection aseConnection = GetAseConnection(connection);
try
{
AseCommand command = new AseCommand(sql, aseConnection);
command.CommandText = sql;
AseParameter parameter = new AseParameter("@loaddate", strDate);
command.Parameters.Add(param);
command.Prepare();
using (AseDataAdapter adapter = new AseDataAdapter(command))
{
adapter.Fill(result);
}
}
finally
{
aseConnection.Close();
}
return result;
Этот код отлично работает на моем локальном компьютере, но на сервере выдает следующую ошибку. Мне трудно, так как я не могу воспроизвести ту же ошибку на своем локальном компьютере.
Sybase.Data.AseClient.AseException: Недопустимое количество параметров. в Sybase.Data.AseClient1.AseCommand.CheckResult(Int32 res) в Sybase.Data.AseClient1.AseCommand.SetCommandStatement(CommandBehavior commandBehavior) в Sybase.Data.AseClient1.AseCommand.Execute(CommandBehavior commandBehavior) в Sybase.Data.AseClient1.AseCommand ._ExecuteReader(CommandBehavior commandBehavior) в Sybase.Data.AseClient1.AseCommand.ExecuteReader(CommandBehavior commandBehavior) в Sybase.Data.AseClient.AseCommand.ExecuteDbDataReader(CommandBehavior поведение) в System.Data.Common.DbCommand.System.Data.IDbCommand.Execute (Поведение CommandBehavior) в System.Data.Common.DbDataAdapter.FillInternal (набор данных DataSet, таблицы данных DataTable [], Int32 startRecord, Int32 maxRecords, String srcTable, команда IDbCommand, поведение CommandBehavior) в System.Data.Common.DbDataAdapter.Fill (DataTable [] dataTables, Int32 startRecord, Int32 maxRecords, команда IDbCommand, поведение CommandBehavior) в System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)