Avatar billede camel Nybegynder
26. marts 2001 - 16:49 Der er 3 kommentarer og
1 løsning

Transaktioner i Java

Hvordan sender flere sql kald i én statement til en MSSQL 7.0 database. Hvordan får man et mellem resultat fra f.eks. det første sql kald, som man kan bruge i næste kald (I samme statement)?
Avatar billede sjoggo Nybegynder
27. marts 2001 - 08:25 #1
Transaktioner implementeres i JDBC ved at du åbner en forbindelse mod databasen, og sætte autocommit til false:

  con.setAutoCommit(false);

Herefter kan du eksekvere dine queries, updates og inserts:

  Statement stmt= con.createStatement();
  stmt.execute(\"insert into ... \");

Når du har lave en fuld transaktion committer du dine ændringer:

  con.commit();

eller laver rollback:

  con.rollback();

That\'s it, and that\'s that !

Jeg tror at det vil være en god ide for dig at læse JDBC intro\'en fra java.sun.com.
Avatar billede camel Nybegynder
27. marts 2001 - 09:35 #2
Tak for svaret, men det var ikke helt det jeg ønskede at vide. Lad os sige at følgende:

con.setAutoCommit(false);

Statement stmt= con.createStatement();
stmt.execute(\"select navn from ... \");

// Hvordan får jeg svaret dvs. navnet første 
// kald, som jeg kan bruge i næste?

// Er det bare at ligge det over i et ResultSet?

stmt.execute(\"update navn where navn = \"svarFra FørsteStmt\");

con.commit();
Avatar billede sjoggo Nybegynder
27. marts 2001 - 10:50 #3
Hej Camel

Det du spørger om er JDBC basics ... no offence !

ResultSet rs = stmt.executeQuery( \"select name from table1\");
if ( rs.next() )
  String name = rs.getString(1);

rs = stmt.executeQuery(\"select id from table2 where name = \" + name);

HUSK at du skal bruge executeQuery når det er queries, og execute når det er insert eller update, hvor du ikke forventer at få noget tilbage.

Avatar billede doctoren Nybegynder
27. marts 2001 - 22:25 #4
Er det ikke dig (Camel) der er ham den tynde ??

-- JJ
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester