anoniem Geplaatst: 31 december 2007 Delen Geplaatst: 31 december 2007 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. Quote Link naar reactie
anoniem Geplaatst: 1 januari 2008 Auteur Delen Geplaatst: 1 januari 2008 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. Quote Link naar reactie
anoniem Geplaatst: 2 januari 2008 Auteur Delen Geplaatst: 2 januari 2008 tnx voor de finally Bill :oops: Het frapante is dat de stored procedure wel wordt uitgevoerd, het record wordt in de database opgeslagen, het probleem is dat alleen mijn select geen result opleverd (letterlijk de resultset die ik terug krijg is null als ik deze print naar de console). Lijkt me niet dat het de connectie is, ik zal eens kijken wat er met profiler daadwerkelijk wordt uitgevoerd. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen