28. juni 2005 - 22:37Der er
11 kommentarer og 1 løsning
Slet række i SQL db.
Jeg anvender jBuilder til udvikling af et Java database program. Dataene ligger i en SQL db, og indlæses i en jdbTable. Det skal være muligt at slette en markeret post i tabellen vha. en SQL forespørgelse. Jeg er kommet hertil DELETE * FROM tabel WHERE ??? = '"+table.getSelectedRow()+"'". Hvad skal jeg skrive istedet for ??? for at kunne slette den valgte række?
Jeg kan ikke få det med id til at virke. Jeg har ikke defineret nogen primary key, men min db indeholder en foruddefineret key, der hedder internalrow, som jeg tænkte kunne bruges istedet for. Jeg har forsøgt at skrive internalrow = '"+id+"', men det virker ikke. Skal jeg selv definere en primary key før det virker, eller kan internalrow bruges?
Hvis du vil være sikker på hvad du sletter, er det nok en god idé at lave en primærnøgle.
Men du kan faktisk bruge hvad som helst. Hvis der er flere forekomster af betingelsen i din WHERE, vil alle blive slettet. (andet sker der ikke ved det)
Du må jo et eller andet sted fylde nogle data i din tabel. Her ved du også i hvilken kolonne din internalrow bliver sat. Og så gør du bare som jeg skrev tidligere:
int columnIndex = 0; // index på kolonnen internalrow
Takker pænt. Nu virker det. Jeg kendte ikke denne metode: getValueAt(table.getSelectedRow(), index), og var lige præcis denne, jeg manglede. Da jeg kun skriv getSelectedRow() kom kun værdien for internalRow. Med den nye metode, kan jeg bruge personers cpr numre som unikt 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.