CREATE PROCEDURE [dbo].[proc1]
(
@tbl1 varchar(30),
@var2 varchar(7000)
)
AS
BEGIN
DECLARE @sql VARCHAR(8000)
BEGIN
SET @sql = 'INSERT INTO ' + @tbl1 + '(column) VALUES (''' + @var2 + ''')'
EXEC (@sql)
RETURN CONVERT(int, NEXT_IDENTITY(@tbl1))
END
END
C# Method:
//create connection
using (AseConnection cn = new AseConnection(connectionString)) {
AseCommand cmd = new AseCommand();
AseParameter[] paras = new AseParameter[]{
new AseParameter("@tbl1", AseDbType.VarChar, 30),
new AseParameter("@var1", AseDbType.VarChar, 7000),
new AseParameter("@RetValue",AseDbType.Integer) };
// Add all the parameters to command object
foreach(AseParameter p in paras) {
cmd.Parameters.Add(p);
}
//finally, execute the command.
return cmd.ExecuteNonQuery();
}
However, the third parameter is always empty. If I execute procedure directly in Sybase client, it gives me correct value.
Does anyone have good suggestion how to solve this issue?
Declare the third parameter as
Also, select the identity with