Ga naar inhoud

[JAVA/SQL] Resultset verkrijgen via stored procedure


anoniem

Aanbevolen berichten

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.
Link naar reactie
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.
Link naar reactie
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.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...