06. juni 2001 - 10:36Der er
5 kommentarer og 3 løsninger
Brug af prepared Statement
Jeg har oprettet et Prepared Statement med to ?. Når jeg så prøver at indsætte parametrene, så giver den syntaksfejl.
Hvis jeg fjerner det første spørgsmåltegn, og alle de if-sætninger som tilhører denne så virker det fin (Selvfølgelig slaæ man så lige ændre arrayindexet i setString metoden) Er der nogen som kan se fejlen?
PreparedStatement GetScans = C.prepareStatement(\"Select * from Scanninger ? Order by ?;\");
try{ if (action.startsWith(\"2\")) { //GetScans.setString(1,\" Where Dato < \"+ to +\" and Dato > \"+from); } } catch (Exception e) { GetScans.setString(1,\" \"); } try{ if (sort.startsWith(\"1\")) { GetScans.setString(2,\"jobnr\"); } if (sort.startsWith(\"2\")) { GetScans.setString(2,\"ID\"); } } catch (Exception e) { GetScans.setString(2,\"ID\"); }
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Slettet bruger
06. juni 2001 - 10:38#1
En \'?\' skal gøre det ud for en variabel... Du kan ikke bruge det til at tilføje betingelser til din statement.
Du kan ikke bygge dine SQL på den måten. Du skal gjøre noe ála dette:
StringBuffer strBuffer = new StringBuffer(\"Select * from Scanninger\");
try{ if (action.startsWith(\"2\")){ strBuffer.append(\" Where Dato < \" + to +\" and Dato > \"+from ); } }catch (Exception e) { } strBuffer.append(\" ORDER BY \"); try{ if (sort.startsWith(\"1\")){ strBuffer.append(\"jobnr\"); } if (sort.startsWith(\"2\")){ strBuffer.append(\"ID\"); } }catch (Exception e){ strBuffer.append(\"ID\"); } PreparedStatement GetScans = C.prepareStatement(strBuffer);
Takker, jeg ved det ikke var mange point, men i har hjulpet meget alle tre
Synes godt om
Slettet bruger
06. juni 2001 - 10:47#8
Det følgende burde køre:
PreparedStatement GetScans=null; if (action.startsWith(\"2\")) { GetScans = C.prepareStatement(\"Select * from Scanninger Where Dato < \"+ to +\" and Dato > \"+from Order by ?\"); } else { GetScans = C.prepareStatement(\"Select * from Scanninger Order by ?\"); } if (sort.startsWith(\"1\")) GetScans.setString(2,\"jobnr\"); else if (sort.startsWith(\"2\")) GetScans.setString(2,\"ID\");
Synes godt om
Ny brugerNybegynder
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.