Avatar billede flab Nybegynder
12. december 2001 - 03:45 Der er 5 kommentarer og
1 løsning

Java SQL

Hej jeg har et problem!!
jeg har en metode der ser ud som følgende!!
public static ResultSet gettest ()throws SQLException
{       
Statement test;
ResultSet testData;
Connection myCon = DataBaseInterface.borrowConnection();
try
{test = myCon.createStatement();     
testData =
test.executeQuery(\"SELECT* FROM Test1 WHERE FeltEt = ?\");
finally
{DataBaseInterface.deliverConnection(myCon);}
return testData;           
}

denne kaldes med  **.gettest()
hvordan får jeg kaldet til at tage en variabel ind og overfører dan til metoden så kaldetbenytter variablen istedet for ?
Avatar billede greybeard Nybegynder
12. december 2001 - 03:59 #1
Kan du være lidt mere præcis. Hvilken variabel? Hvorfra? Hvortil?

Du har flere metodekald.

Er det der, hvor ? står, du vil have en variabel?

public static ResultSet gettest (String query)throws SQLException
{       
Statement test;
ResultSet testData;
Connection myCon = DataBaseInterface.borrowConnection();
try
{test = myCon.createStatement();     
testData =
test.executeQuery(\"SELECT* FROM Test1 WHERE FeltEt = \'\" + query + \"\';\");
finally
{DataBaseInterface.deliverConnection(myCon);}
return testData;           
}

Hvis ja, så prøv dette her
Avatar billede flab Nybegynder
12. december 2001 - 04:11 #2
Hej greybeard
jeg har lige et spørgsmål mere!!!
jeg benytter
DB.gettest(HER);
hvad skal jeg skrive i HER som variabel
såde benytter HER som input i statementet?
Avatar billede greybeard Nybegynder
12. december 2001 - 04:20 #3
Hvis du kigger på svaret og FeltEt f.eks. indeholder fornavne så vil:

DB.gettest(\"Holger\");

returne et resultset med alle der hedder holger til fornavn.

Eksemplet passer til en streng.
Hvis du skal bruge talværdier, skal du udelade de to enkelte anførselstegn.
Avatar billede flab Nybegynder
12. december 2001 - 04:34 #4
denne main benyttes til kaldet!!

public static void main(String query) throws SQLException
                                 
    {
       
        DataBaseInterface DB = new DataBaseInterface();
        ResultSet rs;
        rs = DB.gettest(\"lars\");
        rs.next();
        System.out.println(rs.getString(\"FeltTo\") + \" vejer \" + rs.getString(\"FeltTre\"));
   
       
           
    }
den givr følgende fejl ved kørelse
Exception in thread \"main\"java.lang.NoSuchMethodError: main
hvad gør jeg gal!!!
håber du kan hjælpe!!
Avatar billede greybeard Nybegynder
12. december 2001 - 04:52 #5
main metoden er javas startmetode. Den tager ikke en streng som parameter.
Den skal se sådan her ud

public static void main( String[] argv )

kald din metode noget andet, og kald den fra main

argumentet i main metoden er et array af strenge, som laves commandline parametre.
kald f.eks. din metode sqlmain.

hvis du så ønsker at over føre parameter fra commandline skal din main se sådan ud:

    public static void main( String[] argv ){
      sqlmain(argv[0]);
        }
Avatar billede disky Nybegynder
12. december 2001 - 09:03 #6
du gør sådanne her:

public static ResultSet gettest (int tal)throws SQLException
{       
Statement test;
ResultSet testData;
Connection myCon = DataBaseInterface.borrowConnection();
try
{
  test = myCon.createStatement();     
  testData =
test.executeQuery(\"SELECT* FROM Test1 WHERE FeltEt = \"+tal);
finally
{DataBaseInterface.deliverConnection(myCon);}
return testData;           
}

Forudsat dit FeltEt er et tal, hvis det er en String skal du ændre \'int tal\' til \'String text\' og din \'testData =
test.executeQuery(\"SELECT* FROM Test1 WHERE FeltEt = \"+tal);\' til testData =
test.executeQuery(\"SELECT* FROM Test1 WHERE FeltEt = \'\"+tal+\"\'\");
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