Stored Procedure mit Referenzparameter per OLEDB aufrufen

19/08/2008 - 15:23 von Jörg Schneider | Report spam
Hi Leute!

in unserer FoxPro dbc gibt es eine Stored Procedure die Werte per
Referenzparameter zurückgibt.

Jetzt wollen wir die SP von .NET auzs aufrufen. Leider wird der
Referenzparameter nicht zurückgereicht?! Habt Ihr so etwas schon mal
gemacht?

Hat jemand noch eine Idee?

Hier ein Teil des Codes:
if (curCon.State == ConnectionState.Open)
{


OleDbCommand command = curCon.CreateCommand();
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "sp_LongNextInternalNumber";


// Erster Parameter
IDbDataParameter para = command.CreateParameter();

para.Direction = ParameterDirection.Input;
para.DbType = DbType.String;
para.Size = 80;
para.ParameterName = "tcTableName";
para.Value = "Logbuch";
command.Parameters.Add(para);

// Zweiterparameter = Rückgabewert!
IDbDataParameter resultpara = command.CreateParameter();

resultpara.Direction = ParameterDirection.InputOutput;
resultpara.DbType = DbType.AnsiString;
resultpara.Size = 15;
resultpara.Value = " ";
resultpara.ParameterName = @"@tcReferenzLfdNrRueckgabe";
command.Parameters.Add(resultpara);

try
{
command.ExecuteNonQuery();
}
catch (OleDbException exception)
{

}


string lfdnr = resultpara.Value.ToString();

MessageBox.Show(lfdnr, "lfdnr");
 

Lesen sie die antworten

#1 Olaf Doschke
20/08/2008 - 16:34 | Warnen spam
Hallo Jörg,

Referenzrückgabe über OleDbCommand ginge denke ich mittels OleDBParameter
und deren Eigenschaft Direction.

Auf jedenfall kannst Du Foxproseitig einen Alias mittels SETRESULTSET()
als OleDB-Rückgabecursor markieren (und bei VFP-internem Aufruf
weiterhin den alten Weg über Referenzparameter nehmen). Du kannst dann
einen Cursor krieren, der die Rückgabewerte enthàlt.

Tschüß, Olaf.

Ähnliche fragen