Vraag & Antwoord

Programmeren

[JAVA/SQL] Resultset verkrijgen via stored procedure

2 antwoorden
  • LS, Normaliter is dit vrij simpel, een stored procedure met een select statement en alles werkt. Nu heb ik een stored procedure die eerste een insert uitvoert en daarna een select: [code:1:dea101fb5a] ALTER PROCEDURE [dbo].[addCompany] @name char(100), @branche char(100), @employees int, @website char(50), @changedby char(50) AS BEGIN INSERT INTO company (compname,compbranche,compemployees,compsite,complastchange,compchangedby) VALUES (@name,@branche,@employees,@website,getdate(),@changedby) SELECT * FROM company WHERE compname = @name AND compbranche = @branche AND compemployees = @employees AND compsite = @website END [/code:1:dea101fb5a] Deze stored procedure werkt in sql server (2005) goed, ik krijg het record wat inserted is terug. Als ik deze stored procedure vanuit java aanroep is mijn resultset null [code:1:dea101fb5a] public ResultSet addCompany(final Company company) { try { final Connection con = dbcpool.leaseConnection(); final CallableStatement cs = con.prepareCall("{ call addCompany(?,?,?,?,?) }"); cs.setString(1, company.getName()); cs.setString(2, company.getBranche()); cs.setInt(3,company.getEmployees()); cs.setString(4, company.getSite()); cs.setString(5, company.getChangedBy()); cs.execute(); dbcpool.returnConnection(con); return cs.getResultSet(); } catch (SQLException e) { LOG.debug("DBControl " + e); } return null; } [/code:1:dea101fb5a] Heeft iemand een idee waar dit aan kan liggen of wat ik verkeerd doe? Tnx B.
  • Nu weet ik niet zoveel van dit soort zaken in combinate met Java, maar kun je niet eens het statement wat daadwerkelijk uitgevoerd wordt naar de console laten uitprinten? Of gebruik de profiler van Sql Server eens... Daarnaast zou het wellicht kunnen zijn dat omdat je de connectie al terug geeft aan de pool, je het resultaat niet meer uit kunt lezen. Maar dat is een wilde gok ;) Je zou trouwens sowieso een "finally" moeten toevoegen aan je try-catch gebeuren die die connectie teruggeeft aan de pool, als er nu wat mis gaat, heb je kans dat de verbinding altijd open blijft staan.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.