Avatar billede bris Nybegynder
08. maj 2002 - 18:55 Der er 24 kommentarer og
1 løsning

update??!?

HVad er der galt med den her update?

UPDATE gamle SET Dato = '08-05-2000 17:01:43', Timestamp = 62 where ID = '2'

ID i min database er tekst, dato er datetime, og timestamp er tal.
Der er forresten tale om delphi til access..
Avatar billede erikjacobsen Ekspert
08. maj 2002 - 18:57 #1
UPDATE gamle SET Dato = '08-05-2000 17:01:43', Timestamp = 62 where ID = 2

måske ... prøv at få at vide hvad der er galt
Avatar billede hotcut Nybegynder
08. maj 2002 - 18:58 #2
Nu skriver du i et forum for SQL Server Databaser, men nævner Access...

Hvis det er Access, så prøv med:

UPDATE gamle SET Dato = #08-05-2000 17:01:43#, Timestamp = 62 where ID = '2'
Avatar billede terry Ekspert
08. maj 2002 - 19:51 #3
UPDATE gamle SET Dato = '2000-05-08 17:01:43', Timestamp = 62 where ID = '2'

Look at the data! Is it 08 may 2000 or 05 august 2000 ?

You should try to use YYYY-MM-DD format

also if ID is numeric the it should be

UPDATE gamle SET Dato = '2000-05-08 17:01:43', Timestamp = 62 where ID = 2
Avatar billede _just4fun_ Nybegynder
09. maj 2002 - 21:09 #4
Er er nogen hints mht. fejlkode?
Avatar billede tormork Nybegynder
12. maj 2002 - 01:42 #5
Bruger du måske query.open í stedet for query.execute.
Avatar billede terry Ekspert
12. maj 2002 - 09:10 #6
bris>how about answering!
Avatar billede bris Nybegynder
12. maj 2002 - 12:01 #7
sorry terry... been busy!..

Tormork: Nej, jeg bruger execute.. Der er ingen af de ovenstående der virker.. Så indtil der er en der finder en løsning, så har jeg brugt to sq-queries.. En delete og en insert der laver det samme, men er bare totalt unødvendig, hvis bare man kunne få skidtet til at virke...
Avatar billede terry Ekspert
12. maj 2002 - 12:09 #8
bris>Why reject MY answer but NOT hotcut?
Avatar billede bris Nybegynder
12. maj 2002 - 12:10 #9
Is this allright then?!?
Avatar billede erikjacobsen Ekspert
12. maj 2002 - 12:11 #10
Får du ikke noget at vide fra Delphi om hvad der er galt? Hvordan udfører
du din SQL-sætning ?
Avatar billede terry Ekspert
12. maj 2002 - 12:16 #11
If you send me the Access db then I will give you the correct SQL for updating it! and if that doesnt work it IS NOT the SQL update but something else!

terry@santhell.dk
Avatar billede bris Nybegynder
12. maj 2002 - 12:17 #12
streng:='UPDATE gamle SET Dato = '+chr(39)+'#'+FormatDateTime('YYYY-MM-DD hh:mm:ss',tiden)+'#'+chr(39)+', Timestamp = '+inttostr(unix)+' WHERE ID = '+chr(39)+inttostr(temp1)+chr(39);
showmessage(streng);
Querygamle.SQL.Clear;
Querygamle.SQL.Add(streng);
Querygamle.ExecSQL;

Det her var sidste forsøg på et af de forslag på denne side. Jeg har husket at sætte pinger (') omkring der hvor det er tekst-felter i databasen, og ingen der hvor det er tal. Der er ingen tvivl om, at det er datoen, som giver fejlen!..
Den skriver: General sql-error. Der er fejl i syntaksen af din UPDATE-sætning. Ikke helt ordret, men noget lignende..
Avatar billede erikjacobsen Ekspert
12. maj 2002 - 12:18 #13
chr(39) er ' - ikke? Du skal ikke både have ' og #. Prøv med kun #
Avatar billede bris Nybegynder
12. maj 2002 - 12:21 #14
En lille tilføjelse.. Den her virker:

streng:='Insert into gamle values('+inttostr(temp1)+','+chr(39)+DateTimeToStr(tiden)+chr(39)+','+inttostr(unix)+')';

Her sætter jeg en dato ind i databasen. Der skal ikke # før og efter.. Så jeg tror ikke det er problemet..
Avatar billede erikjacobsen Ekspert
12. maj 2002 - 12:22 #15
er feltet datetime (eller hvad det nu hedder) ? hvilker driver bruger du?

Men ja, hvis det virker med INSERT så virker det også med update,
Avatar billede erikjacobsen Ekspert
12. maj 2002 - 12:25 #16
Hmm, er timestamp reserveret. Prøv [timestamp}
Avatar billede bris Nybegynder
12. maj 2002 - 12:25 #17
Ja, Dato i databasen er 'tid og klokkeslet' i access. Min driver? Det er vel bare den ODBC driver, som følger med windows.. noget specielt du vil have?
Avatar billede erikjacobsen Ekspert
12. maj 2002 - 12:26 #18
[timestamp]
Avatar billede erikjacobsen Ekspert
12. maj 2002 - 12:27 #19
Den rigtige Access-driver vil have #...# omkrinf datoer. Men den nye, der
får det til at ligne MSSQL vil ikke. Derfor er jeg forvirret.
Avatar billede bris Nybegynder
12. maj 2002 - 12:28 #20
Men timestamp er jo i strengen, så det kan da ikke være der den er gal? Det er også ODBC-driveren der melder fejl.. ikke delphi..
Avatar billede erikjacobsen Ekspert
12. maj 2002 - 12:29 #21
nej delphi er ligeglad. Men har du prøvet [timestamp] i din update?
Avatar billede erikjacobsen Ekspert
12. maj 2002 - 12:30 #22
Altså:

UPDATE gamle SET Dato = '2000-05-08 17:01:43', [Timestamp] = 62 where ID = '2'
Avatar billede bris Nybegynder
12. maj 2002 - 12:41 #23
Erik: Genialt.. Giv mig det lige som et svar, så får du point!.. Hvor brændt af er det? Jeg har fokuseret så meget på det dato, at jeg ikke har tænkt på reserverede ord.. Men hvad, man lærer jo hver dag!.. TAK!!
Avatar billede erikjacobsen Ekspert
12. maj 2002 - 12:57 #24
Jah, egentlig havde du jo givet os alle oplysninger. Med Access /MSSQL kunne
man jo fristes til at sige at man skal skrive [...] rundt om hver gang.
(og tilsvarende i andre DB-systemer).
Avatar billede bris Nybegynder
12. maj 2002 - 13:08 #25
Jep, og det tror jeg, at jeg vil gøre til en regel!.. Tak for hjælpen alle!!!..
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
Computerworld tilbyder specialiserede kurser i database-management

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