Avatar billede roz Nybegynder
23. december 2004 - 02:13 Der er 19 kommentarer og
3 løsninger

Slette række i Access Database

Hvordan sletter man en række i en Access database fra Delphi?

Havde tænkt på at metoden skulle være noget med at den filtrerede ADOtabellen med en dato + et klokkeslet og derefter sletter den alt det den finder (den finder kun 1 ligemeget hvad).
Avatar billede hestetoften Nybegynder
23. december 2004 - 14:46 #1
ADOCommand1.CommandText :='DELETE * FROM mintabel WHERE datotid = '+DenAngivneDatoTime;
ADOCommand1.Execute;
Avatar billede roz Nybegynder
23. december 2004 - 19:07 #2
Denne kode burde virke ville jeg mene:

Listboxvalgt:= Listbox1.Items.Strings[Listbox1.ItemIndex];

ADOCommand1.CommandText :='DELETE * FROM Alarm WHERE Dato = '+DateTimeToStr(Monthcalendar1.Date)+Listboxvalgt[1]+Listboxvalgt[2]+Listboxvalgt[3]
+Listboxvalgt[4]+Listboxvalgt[5]+Listboxvalgt[6]+Listboxvalgt[7]+Listboxvalgt[8];

ADOCommand1.Execute;

Dato er det felti tabellen hvor indholdet skal tjekkes. Dato indeholder en dato og et klokkeslet i dette format: dd-mm-yyyy hh:mm:ss

Listboxen's første 10 tegn er et klokkeslet i formatet hh:mm:ss

Men når koden bliver udført får jeg denne fejl:
"Parameterobjektet er forkert defineret. Den angivne oplysninger er mangelfulde eller ikke ensartede."
Avatar billede hestetoften Nybegynder
24. december 2004 - 03:22 #3
prøv at sætte denne ind
ShowMessage(ADOCommand1.CommandText);
før ADOCommand1.Execute;

Så får du mulighed for at se SQL strengen inden den eksekveres...

Og kan måske se om der skulle være noget med denne.
Avatar billede roz Nybegynder
24. december 2004 - 14:43 #4
Hmm maglede et mellemrum. Men jeg får stadig samme fejl når jeg har rettet det.
Avatar billede roz Nybegynder
26. december 2004 - 01:21 #5
Ingen ideer om hvad der kan være galt?
Avatar billede nih Novice
02. januar 2005 - 22:21 #6
'DELETE * FROM mintabel WHERE datotid = #'+DenAngivneDatoTime +'#';

prøv at sætte # eller "  om datoen
Avatar billede roz Nybegynder
03. januar 2005 - 15:07 #7
Hvis jeg bruger # kommer den med samme fejl som før men hvis jeg bruger " siger den at datatyperne ikke stemmer overens.

Hvad kan der være galt?
Avatar billede hestetoften Nybegynder
03. januar 2005 - 21:41 #8
prøv med denne: DateTimeToStr(Monthcalendar1.Date)+' '+TimeToStr(Time)
Avatar billede nih Novice
03. januar 2005 - 23:21 #9
som hestetoften skriver 24/12-2004 03:22:13

kan du ikke skrive SQL'en ud og afprøve den i Access - det kan være Access giver et bud på hvorfor SQL'en fejler - hvis det er den.

Niels
Avatar billede roz Nybegynder
04. januar 2005 - 00:07 #10
Jo prøver jeg lige imorgen.
Avatar billede roz Nybegynder
04. januar 2005 - 23:40 #11
kan det have noget at gøre med at mit felt (Dato) er et Dato og Tidspunkt felt og jeg bruger en string til at vise hvilken række der skal slettes?
Har nemlig oplevet problemer af den slags før...
Avatar billede roz Nybegynder
17. januar 2005 - 00:00 #12
Det var ikke muligt at jeg kunne få lidt hjælp?!
Avatar billede roz Nybegynder
17. januar 2005 - 00:10 #13
HVordan kører jeg koden i Access? :S
Avatar billede nih Novice
17. januar 2005 - 08:06 #14
opretter en forespørgsel
vælger SQL visning
skriver din SQL streng
prøver at eksekvere sql'en ved at trykke på !

Niels
Avatar billede roz Nybegynder
17. januar 2005 - 14:49 #15
Hmm denne SQL sætning virker i Access en ikke i Delphi:
DELETE * FROM Alarm WHERE Alarm.Dato = #17-01-2005 14:31:00#;

I Delphi får jeg en fejl om at parameter objektet er forkert defineret eller oplysningerne er ikke ensartede.
Avatar billede nih Novice
17. januar 2005 - 18:05 #16
Fejler din delphi kode også hvis du skriver sql'en direkte:

ADOCommand1.CommandText := 'DELETE * FROM Alarm WHERE Alarm.Dato = #17-01-2005 14:31:00#;';
ADOCommand1.Execute;
Avatar billede roz Nybegynder
17. januar 2005 - 18:51 #17
Nej det lader det ikke til... :(
Avatar billede nih Novice
17. januar 2005 - 21:08 #18
Hvis ikke koden 17/01-2005 18:05:37 fejler, så må det være formateringen af din textstreng i ADOCommand1.CommandText fra 23/12-2004 19:07:44 der er noget galt med.

datoformattet skal være: #åååå-mm-dd hh:nn:ss#

Niels
Avatar billede roz Nybegynder
17. januar 2005 - 22:25 #19
Årh nih du er bar den bedste!!! Havde skrevet min dato som dd-mm-yyyy men ligeså snart jeg skrev det på din måde virkede det!!! DU skal have så mange tak:D Du aner ikke hvor meget jeg har bøvlet med dette! hehe.. tak ;)
Avatar billede roz Nybegynder
17. januar 2005 - 22:25 #20
nå ja. lav et svar så får du halvdelen af pointene
Avatar billede nih Novice
17. januar 2005 - 22:27 #21
svar :)

Glad for det lykkedes for dig
Avatar billede nih Novice
17. januar 2005 - 22:27 #22
vi prøver igen
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