Я только что перенес нашу базу данных веб-приложений из sybase sql в любом месте 11 в SQL Server 2008 R2 Express, и когда я попытался скомпилировать службу WCF, которая взаимодействует с SQL-сервером, я обнаружил несколько ошибок, и среди них наиболее заметна та, что ниже.видел эту проблему, когда наша база данных была sybase.
Error 5 The best overloaded method match for
'GlobeMailServiceLibrary.GMDatabaseService.KioskDataSetTableAdapters.Kiosk.CreateFolder(int?,
string, bool?, bool?, ref int?)' has some invalid arguments
C:\WebMailDev\Code\GlobeMailServiceLibrary\GMDatabaseService\GMDatabaseService.40
13 GlobeMailServiceLibrary
Вот метод службы WCF, из которого вызывается и выполняется хранимая процедура: -
private int CreateFolder(int iUser, string strFolder, bool bUserCreate, bool bOutgoing)
{
int iFolder;
DBEncoder.EncodeObject(ref strFolder);
KioskAdapter.CreateFolder(iUser, strFolder, bUserCreate, bOutgoing, out
iFolder);
return iFolder;
}
Вот определение хранимой процедуры:-
create procedure dbo.CreateFolder( @v_userID integer,@v_foldername varchar(512),@v_IsUserDefined
bit,@v_IsOutGoing bit,@v_folderID integer Output)
AS
begin
--set option MAX_STATEMENT_COUNT = 0;
--set option MAX_CURSOR_COUNT = 0;
insert into GCK_Folder( Foldername,IsUserDefined,IsOutGoing,UserID ) values(
@v_foldername,@v_IsUserDefined,@v_IsOutGoing,@v_userID ) ;
set @v_folderID = @@IDENTITY
end
go
Я закомментировал Set OPTION MAX_STATEMENT_COUUNT и MAX_CURSON_COUNT, потому что я не знаю эквивалентную команду Sybase в SQL Server 2008 R2 express.