Avatar billede dm013 Nybegynder
11. maj 2002 - 16:51 Der er 9 kommentarer og
2 løsninger

Der er en syntaksfejl i INSERT INTO-sætningen

hvor er fejlen?

public void opretbarn(Barn barn, int fid)
{
boolean sessionAabnetLokalt = false;    // Er sessionen åbnet i denne metode
if (!sessionIgang)
{   
aabnSession();
sessionAabnetLokalt = true;
}
   
String sqlString= "INSERT INTO Barn(BarnID, ForaelderID, Navn, Adresse, Cprnr, By, Postnr, Bemaerkninger, Fortroligt, Indmeldtdato, Udmeldtdato, Tilstand) VALUES ('" + barn.getBarnid() + "','" + fid + "','" + barn.getNavn() + "','" + barn.getAdresse() + "','" + barn.getCprnr() + "','" + barn.getBy() + "','" + barn.getPostnr() + "','" + barn.getBemaerkninger() + "','" + barn.getFortroligt() + "','" + barn.getIndmeldtdato() + "','" + barn.getUdmeldtdato() + "','" + barn.getTilstand() + "')";
       
try
{
stmt.executeUpdate(sqlString);    // Udfør opret
}   
catch(SQLException e)
{
System.err.println("SQLException5: " + e.getMessage());
}
if (sessionAabnetLokalt)        // Hvis sessionen er åbnet i denne metode
lukSession()
Avatar billede jakoba Nybegynder
11. maj 2002 - 17:19 #1
prøv at udskrive den kommandostreng du får lavet. det gør det ofte meget nemmere at se at fx "hov det er et tal der skal da ikke ' tegn om, og diverse andre åndsvage fejl man kan komme til at lave.

mvh JakobA
Avatar billede jakoba Nybegynder
11. maj 2002 - 17:23 #2
du har fx ' omkring både dit barnID og dit ForaenderID, der plejer man at bruge tal.
Avatar billede dm013 Nybegynder
11. maj 2002 - 17:25 #3
så jeg også, er fjernet på id'er, cprnr, postnr.
hvad med datofelter skal der ' tegn om der?
Avatar billede jakoba Nybegynder
11. maj 2002 - 17:31 #4
Det kommer vist an på din database, der er vist noget med at Acces har et datoformat med # i enderne.

hvordan ser din udskrevne kommandostreng ud?
Avatar billede jakoba Nybegynder
11. maj 2002 - 17:35 #5
kunne det evt være at der står et '-tegn i bemærkninger eller et af de andre streng felter?  (eg en person der hedder "O'Toole")

hvis det er tilfældet skal de '-tgen escapes.
Avatar billede dm013 Nybegynder
11. maj 2002 - 17:43 #6
mener du system.out, med kommandostreng?
Avatar billede jakoba Nybegynder
11. maj 2002 - 18:49 #7
Jeg mener:
  System.out.println( sqlString );

eller ud igennem dit debug vindue hvis du har et :-))
Avatar billede eagleeye Praktikant
11. maj 2002 - 18:58 #8
By er reservert ord i SQL (ORDER BY) så hvis det er access kan du sætte [] omkinrg by altså [by].

Så det bedste er hvis du kan ændre by til eksvis bynavn så giver det ikee problemmer med SQL sætninger.
Avatar billede eagleeye Praktikant
11. maj 2002 - 18:59 #9
Jeg ved ikke om man kan det samme i mySQL/MSSQL men du kan jo prøve hvis du ikke vil ændre i kolonnenavne nu.
Avatar billede dm013 Nybegynder
12. maj 2002 - 09:43 #10
eagleeye>>>> du lever op til dit navn.

men det var ikke det eneste problem, tabellen er knyttet til en postbytabel via postnr og der er et fjols "Mig" som ikke har taget højde for dette ved oprettelsen af testdata.
men det virker nu, tak for jeres hjælp
jakoba>> læg et svar hvis du vil have del i point
Avatar billede jakoba Nybegynder
12. maj 2002 - 10:03 #11
takker
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