Avatar billede badal Nybegynder
31. oktober 2003 - 11:50 Der er 4 kommentarer og
1 løsning

stored procedure i java

Jeg skal have udført et stored procedure i java. Den skal have input parametre men ingen output parametre. Jeg har lavet følgende stored procedure. Men den giver en fejl "Incorrect syntax near { " . Og et andet spørgsmål angiver man databasenavnet i denne statement con.setCatalog("Test"); ??

public void CallStoredProcedure(Vector v)
{
  try
  {
  Class.forName(databaseForname);
  Connection con = DriverManager.getConnection(databaseName, username, password);
                //con.setCatalog("Test");
       
                CallableStatement cstmt = con.prepareCall("{ CALL USP_get_Svar(?)}");
               
                cstmt.setInt(1, 5);
                stmt.setInt(2, 2);
                  stmt.setInt(3, 7 );
                  stmt.setString(4, "TEST" );
                  stmt.setString(5, "TEST" );
                  stmt.setString(6, "TEST");
                  stmt.setBoolean(7, true);
                cstmt.execute();
               
                cstmt.close();
                con.close();
               
               
            }
            catch (Exception ex)
            {
                System.out.println("Exception in CallStoredProcedure() method in class Client: " + ex);
            }
           
      }
Avatar billede badal Nybegynder
31. oktober 2003 - 11:58 #1
Har løst det selv. Der var en mellemrum imellem "{ og call".
Avatar billede badal Nybegynder
31. oktober 2003 - 12:52 #2
Jeg får en fejl "invalid parameter binding". Jeg tror det er fordi jeg ikke har fået oversat rigtigt. Feks. en tinyint til int osv..
Kan nogen hurtigt løbe listen igennem og se om der er noget galt ?

@sender Phonenumber        -> cstmt.setString(1, “36150274”)
@smstext SMStext,              ->cstmt.setString(2, “Hejsa går det”)
@flash bit,            ->cstmt.setBoolean(3, true)
@customer_id int,        ->cstmt.setInt(4, 5)
@C_Action_id smallint,        ->cstmt.setInt (5, 1)   
@Command_code2 Command_code,      ->cstmt.setString(6, “code2”)
@port nvarchar(30),        ->cstmt.setString(7, “port80”)   
@Action_number tinyint,        ->cstmt.setInt(8, 4)   
@parm1 parameter,        ->cstmt.setString (9, “parm1”)
@product_id int                ->cstmt.setInt(10, 2)
Avatar billede _carsten Nybegynder
31. oktober 2003 - 15:50 #3
Så mangler du bare lukke spørgsmålet, ved selv at lægge et svar og acceptere det.
Avatar billede Slettet bruger
31. oktober 2003 - 17:30 #4
Jeg tror du har forkert syntaks, med de 10 variable, skulle der vel ikke stå 'CallableStatement cstmt = con.prepareCall("{ CALL USP_get_Svar(?)}");,' men nærmere 'CallableStatement cstmt = con.prepareCall("{ CALL USP_get_Svar(?,?,?,?,?,?,?,?,?,?)}");.'
Avatar billede badal Nybegynder
07. november 2003 - 14:57 #5
joern_h ..Jo du har ret .. Det var det der skulle står.
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