WD14 - procédure stocke ODBC - je pattoge grave! A l'aide

Posté par Chapeau_m le 10/4/2009 10:16:35
Bonjour,

J'ai besoin de vos lumières...car ceci me dépasse largement...
J'ai besoin d'accéder à un BDD d'une société...mais elle ne me laisse qu'y accéder par Stored Procedures...

Comment faire...j'ai besoin d'aide et d'explications...
La société m'a envoyé un exemple écrit en C#...

Je dois apparement lancé une sorte de requête paramétré etc...et comment récuperer le résultat?

BAV

Code :


    //
    myConnection.ConnectionString = "DSN=C2MEXT01;UID=GZAEXTUSR01;PWD=EXTUSR";
    myCommand.Connection = myConnection;
}

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        myConnection.Open();
        //
        myCommand.CommandType = CommandType.StoredProcedure;
        //myCommand.CommandText = "CALL C2MV5_SA.gva_odbc_PatientAdminData_O";
        myCommand.CommandText = "{CALL C2MV5_SA.gva_odbc_PatientAdminData_O(?,?)}";
        //
        OdbcParameter param1 = new OdbcParameter();
        param1.ParameterName = "ContactNr";
        param1.OdbcType = OdbcType.VarChar;
        param1.Size = 16;
        param1.Direction = ParameterDirection.Input;
        param1.Value = "9361429";
        //
        OdbcParameter param2 = new OdbcParameter();
        param2.ParameterName = "PatName";
        param2.OdbcType = OdbcType.VarChar;
        param2.Size = 128;
        param2.Direction = ParameterDirection.Output;
        //
        myCommand.Parameters.Add(param1);
        myCommand.Parameters.Add(param2);
        //
        myCommand.ExecuteNonQuery();                
        //                
        textBox1.Text = param2.Value.ToString();                
       //
        myConnection.Close();
    }
    catch (Exception e1)
    {
        MessageBox.Show("exception : " + e1.Message);
        if (myConnection.State == ConnectionState.Open)
        {
            myConnection.Close();
        }
    }
}
}




Ceci fontionne parfaitement:

SQLConnecte("C2MEXT01", "GZAEXTUSR01", "EXTUSR", "", "ODBC")



En essayant ceci

SQLExec("CALL C2MV5_SA.gva_odbc_PatientAdminData_O('9361429')","req1")


je reçois les erreur SQL suivantes:

J'ai reçu les codes d'erreurs de mon client chez qui tourne la procédure stockée:

pour : CALL C2MV5_SA.gva_odbc_PatientAdminData_O('9361429')
erreur: S1000 ORA-06553-PLS-306 - wrong number or types of arguments

pour d'autre versions il y a aussi les erreurs :
CALL C2MV5_SA.gva_odbc_PatientAdminData_O('9361429','')
erreur : 07001-ORA-06577 - output parameter not a bind variable

CALL C2MV5_SA.gva_odbc_PatientAdminData_O('9361429',?)
erreur : 07001-ORA-01008 - not all variables bound

Pourriez-vous m'aider, please ?

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=20&topic_id=6170&post_id=24628