J'utilise JTDS avec Java pour me connecter à une base de données Microsoft SQL. Je suis capable de me connecter à la base de données parfaitement. Cependant, lorsque j'exécute le code ci-dessous, j'obtiens une erreur "Impossible de trouver la procédure stockée 'get_queue_items'". J'ai essayé de préfixer 'dbo'. au nom de la procédure stockée, mais je continue d'obtenir l'erreur. J'ai également inclus la procédure stockée réelle pour référence.JTDS (Java/MSSQL) - Impossible de trouver la procédure stockée
try {
// Prepare and call the stored procedure
CallableStatement proc = connection.prepareCall("{call get_queue_items(?) }");
// Register the ResultSet
proc.registerOutParameter(1, java.sql.Types.INTEGER);
// Register Input Parameters
proc.setInt("@last_queue_entry", 1);
// Execute the stored procedure
proc.execute();
// If we have a ResultSet
if (proc.getMoreResults()) {
ResultSet rs = proc.getResultSet();
if (rs.next()) {
// to complete...
}
}
}
catch(Exception ex)
{
System.out.println("Error: " + ex.getMessage());
}
Et la procédure stockée:
USE [test]
GO
/****** Object: StoredProcedure [dbo].[get_queue_items] Script Date: 11/17/2011 11:43:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[get_queue_items] @qid int OUT, @last_queue_entry int as
-- select all the new records out of the main table into a temp table
-- the temp table is what we will use to process
select @qid = qid from test.[dbo].que_items
where qid > @last_queue_entry
Je suis nouveau à JTDS et Java, il est donc probable que je suis en faute, mais toute aide serait appréciée.
Edit: Modification de la procédure stockée selon les conseils de Cristian, obtenant toujours la même erreur « Impossible de trouver la procédure stockée « get_queue_items »
Edit 2: ne fonctionne toujours pas - la connectivité de base de données semble bien aussi.
J'ai modifié la procédure exactement comme ci-dessus, et toujours obtenir la même erreur. – MichaelICE
** La connexion ** est connectée à la base de données [Test]? –
Si je modifie la ligne de ce CallableStatement proc = connection.prepareCall ("{call [test]. [Dbo]. [Get_queue_items] (1)}"); et supprimer les paramètres donne une erreur Erreur: La procédure ou la fonction 'get_queue_items' attend le paramètre '@last_queue_entry', qui n'a pas été fourni. – MichaelICE