Hallo,

ich habe in einer Datenbank zwei Datenbankuser "Test" und "Produktion".
Jeder User hat eine Stored Procedure calcSumAndSquare() der folgenden Form.

create procedure Test.calcSumAndSquare(in @Number integer,out @SumNumber
integer,out @SquareNumber integer)
begin
set @SumNumber=@Number+@Number;
set @SquareNumber=@Number*@Number
end
go

create procedure Produktion.calcSumAndSquare(in @Number integer,out
@SumNumber integer,out @SquareNumber integer)
begin
set @SumNumber=@Number+@Number;
set @SquareNumber=@Number*@Number
end
go

Wenn ich nun mit dem folgenden Code versuche, die Parameter von
"Test.calcSumAndSquare" zu ermitteln, bekomme ich als Rückgabe die
Vereinigung der Parameter beider Stored Procedures (Jeden Parameter doppelt)

Code:
using System;
using System.Collections;
using System.Data;
using iAnywhere.Data.AsaClient;
using System.Data.OleDb;

namespace DataAccessTest
{
public class HelloWorld
{
public static void Main()
{
// Connect to database

AsaConnection asaConn = new AsaConnection(
"DBN=Test;ENG=Test;UID=dba;PWD=sql" );
asaConn.Open();

// Get parameters for dba.calcSumAndSquare
AsaCommand asaCmd = new AsaCommand();

asaCmd.Connection = asaConn;
asaCmd.CommandText = "Test.calcSumAndSquare";
// asaCmd.CommandText = "calcSumAndSquare";
asaCmd.CommandType = CommandType.StoredProcedure;

try
{
AsaCommandBuilder.DeriveParameters(asaCmd);

Console.WriteLine(asaCmd.Parameters.Count.ToString());

for (int k = 0; k < asaCmd.Parameters.Count; k++)
{
Console.WriteLine( asaCmd.Parameters[k].ParameterName );
Console.WriteLine( asaCmd.Parameters[k].Direction.ToString ());
}
}
catch( AsaException ex )
{
Console.WriteLine( ex.Errors[0].Source + " : "
+ ex.Errors[0].Message + " (" +
ex.Errors[0].NativeError.ToString() + ")",
"Failed to execute SQL statement" );
}
catch (Exception x)
{
Console.WriteLine( x.Message );
}

asaConn.Close();
}
}
}


Wie kann man beim Aufruf von AsaCommandBuilder.DeriveParameters auf einen
Creator einer Stored Procedure filtern?

Ich benutze Asa 8.03.5212 und Asa 9.02.2551.

Mit freundlichen Grüßen
Jürgen Frerking