Avatar billede dj-hupi Nybegynder
03. september 2004 - 16:38 Der er 29 kommentarer og
2 løsninger

SQL - INSERT INTO til UPDATE how ?

Her er min INSERT INTO sætning vil gerne ha den skal updatere istedet ? :s

SQL = "INSERT INTO fish_info(art, engelsknavn, Synonym, variant, fangststed, slægt, Dansknavn, pH, Familie, Land, opdager, op-år, dk-opdraet, dk-opdraet-år, dh-kh, strørrelse, vandtype, foder, temp, kønsforskel, opdræt, opdrættet, note, billede1_text, billede2_text, billede1, billede2 ) VALUES ('" & txt_art.Text & "', '" & txt_uknavn.Text & "', '" & txt_synonym.Text & "', '" & txt_variant.Text & "', '" & txt_fangststed.Text & "', '" & txt_slægt.Text & "', '" & txt_dknavn.Text & "', '" & txt_Ph.Text & "', '" & txt_familie.Text & "', '" & txt_kontinent.Text & "', '" & txt_Opdager.Text & "', '" & txt_Aarstal.Text & "', '" & txt_opdraetter.Text & "', '" & txt_opdraetteraar.Text & "', '" & txt_dh.Text & "', '" & txt_str.Text & "', '" & txt_natur.Text & "', '" & txt_foder.Text & "', '" & txt_temp.Text & "', '" & txt_sex.Text & "', '" & txt_opdrat.Text & "', '" & txt_opdraetter.Text & "', '" & txt_note.Text & "', '" & txt_billede1.Text & "', '" & txt_billede2.Text & "')"
          res.Open SQL, con, adOpenDynamic
      con.Execute SQL


Den skulle opdatere det som bliver skrevet i de tekstboxe når jeg har hentet informationen ind i dem med en SELECT sætning
Avatar billede arne_v Ekspert
03. september 2004 - 16:45 #1
Du ændrer:

SQL="INSERT INTO  fish_info(art,engelsknavn,...) VALUES ('" & txt_art.Text & "', '" & txt_uknavn.Text & "', '" & ... & "')"

til:

SQL="UPDATE fish_info SET art='" & txt_art.Text & "',engelsknavn='" & txt_uknavn.Text & "',..."
Avatar billede dj-hupi Nybegynder
03. september 2004 - 16:48 #2
Arrrh oki har fundet en masse på nettet men ingen eksempler som det du lavede der :)

Thx
Avatar billede eagleeye Praktikant
03. september 2004 - 16:50 #3
En update syntax er:  UPDATE tabel SET kol1=xxx, kol2=yyy, kol3=zzz WHERE kolX=xxx


Så det bliver noget med:

SQL = "UPDATE fish_info SET art = '" & txt_art.Text & "', engelsknavn = '" & txt_uknavn.Text & "', Synonym = '" & txt_synonym.Text & "', variant = '" & txt_variant.Text & "', fangststed = '" & txt_fangststed.Text & "', slægt = '" & txt_slægt.Text & "', Dansknavn = '" & txt_dknavn.Text & "', pH='" & txt_Ph.Text & "'7, Familie='" & txt_familie.Text & "', Land = '" & txt_kontinent.Text & "', opdager = '" & txt_Opdager.Text & "', op-år = '" & txt_Aarstal.Text & "', dk-opdraet = '" & txt_opdraetter.Text & "', dk-opdraet-år = '" & txt_opdraetteraar.Text & "', dh-kh='" & txt_dh.Text & "', strørrelse = '" & txt_str.Text & "', vandtype='" & txt_natur.Text & "', foder='" & txt_foder.Text & "', temp='" & txt_temp.Text & "', kønsforskel='" & txt_sex.Text & "', opdræt='" & txt_opdrat.Text & "', opdrættet='" & txt_opdraetter.Text & "', note='" & txt_note.Text & "', billede1_text='" & txt_billede1.Text & "', billede2_text='" & txt_billede2.Text & "' WHERE kolonn=noget"

dog er det noget med kolonnerne billede1_text, billede2_text, billede1, billede2 som måske ikke helt passer.
Avatar billede dj-hupi Nybegynder
03. september 2004 - 17:07 #4
Hmm er det ikke det samme om Arne ?
Avatar billede eagleeye Praktikant
03. september 2004 - 17:13 #5
Ja nu er det også den måde SQL standarten siger det skal gøres på, så de vil være ens ;)

BEMÆRK jeg har også vist en WHERE på SQL sætningen sådan du ikke overskrive alle dine poster i databasen, men kun den du ønsker at opdatere. Har du kun EN post behøver du ikke en WHERE.
Avatar billede dj-hupi Nybegynder
03. september 2004 - 17:14 #6
Hehe ;)
Avatar billede dj-hupi Nybegynder
03. september 2004 - 17:23 #7
Hmm jeg for en syntax fejl hver gang jeg prøver at update :s

        SQL1 = "UPDATE fish_info SET art='" & txt_art.Text & "',engelsknavn='" & txt_uknavn.Text & "',Synonym='" & txt_synonym.Text & "',variant='" & txt_variant.Text & "',fangststed='" & txt_fangststed.Text & "',slægt='" & txt_slægt.Text & "',Dansknavn='" & txt_dknavn.Text & "',pH='" & txt_Ph.Text & "',Familie='" & txt_familie.Text & "',Land='" & txt_kontinent.Text & "',opdager='" & txt_Opdager.Text & "',op-år='" & txt_Aarstal.Text & "',dk-opdraet='" & txt_opdraetter.Text & "',dk-opdraet-år='" & txt_opdraetteraar.Text & "',dh-kh='" & txt_dh.Text & "',størrelse='" & txt_str.Text & "',vandtype='" & txt_natur.Text & "',foder='" & txt_foder.Text & "',temp='" & txt_temp.Text & "',kønsforskel='" & txt_sex.Text & "',opdræt='" & txt_opdrat.Text & "',note='" & txt_note.Text & "',billede1='" & txt_billede1.Text & "',billede2='" & txt_billede2.Text & "'"
            res.Open SQL1, con, adOpenDynamic
      con.Execute SQL1
Avatar billede eagleeye Praktikant
03. september 2004 - 17:29 #8
Har du nogle felter som indeholder ' i teskten?

Prøv at sætte klammer omkring kolonne med bindestreng i, databasen vil nemlig tolke det som minustegn.

dk-opdraet-år --> [dk-opdraet-år]
Avatar billede arne_v Ekspert
03. september 2004 - 17:32 #9
Er alle felterne af tekst type ?
Avatar billede dj-hupi Nybegynder
03. september 2004 - 17:47 #10
Jeb det er de
Avatar billede arne_v Ekspert
03. september 2004 - 17:49 #11
Hvad er den præcise fejl ?
Avatar billede dj-hupi Nybegynder
03. september 2004 - 17:54 #12
Hmm det hjalp ikke

For den os hvis jeg bruger Eagleeye's :(
Avatar billede dj-hupi Nybegynder
03. september 2004 - 17:57 #13
Run-Time Error

Syntax error in UPDATE statement.

markere den res.Open SQL1, con, adOpenDynamic gul ...

Sådan ser den ud

con.Open (Datasti)
SQL1 = "UPDATE fish_info SET art = '" & txt_art.Text ..... osv
            res.Open SQL1, con, adOpenDynamic
      con.Execute SQL1
     
res.Close
con.Close
Avatar billede eagleeye Praktikant
03. september 2004 - 18:02 #14
Er det Access? Så prøv med klammer omkring alle kolonn navne.
Tjek at der ikke noget tekst der indeholder '
Har du mulighed for at uskrive SQL sætningen og evt. vise den. Det er tit lettere at se om der manger et eller andet.
Avatar billede dj-hupi Nybegynder
03. september 2004 - 18:04 #15
Oki nu har jeg fået den til at opdatere:
SQL1 = "UPDATE fish_info SET art = '" & txt_art.Text & "', engelsknavn = '" & txt_uknavn.Text & "'"

Men når jeg opdatere, opdatere den alle i databasen :D (Godt man har backup :) )
Avatar billede eagleeye Praktikant
03. september 2004 - 18:09 #16
Det var det med WHERE så du kun vælger den post som skal opdateres :)
Avatar billede dj-hupi Nybegynder
03. september 2004 - 18:12 #17
Oki som kunne være ?
Avatar billede eagleeye Praktikant
03. september 2004 - 18:15 #18
Hvis du har en kolonne som er autonummer var det en god ide at bruge det nummer. Når du vil rette en post henter du sikkert posten med: SELECT * FROM xx WHERE id=xxx  det er på samme måde når man opdater. Du skal så gemme ID når du har hente data ud så det kan bruges i din update SQL:

WHERE id = " & txt_id.Text
Avatar billede arne_v Ekspert
03. september 2004 - 18:29 #19
Primær nøglen uanset om den er auto nummer eller ej ville være meget oplagte
at bruge i den WHERE betingelse
Avatar billede dj-hupi Nybegynder
03. september 2004 - 18:45 #20
SQL1 = "UPDATE fish_info SET art = '" & txt_art.Text & "', engelsknavn = '" & txt_uknavn.Text & "' WHERE id = txt_id.Text"
            res.Open SQL1, con, adOpenDynamic
      con.Execute SQL1


Fejl: No value given for one or more required parameters ? :S
Avatar billede arne_v Ekspert
03. september 2004 - 18:46 #21
Er der et id felt ? Er det af en tal type ? Og er der et tal i txt_id i formen ?
Avatar billede eagleeye Praktikant
03. september 2004 - 18:46 #22
Sådan her:

SQL1 = "UPDATE fish_info SET art = '" & txt_art.Text & "', engelsknavn = '" & txt_uknavn.Text & "' WHERE id = " & txt_id.Text
Avatar billede arne_v Ekspert
03. september 2004 - 18:53 #23
Ah - feltnavnet var indenfor "" erne
Avatar billede dj-hupi Nybegynder
03. september 2004 - 19:25 #24
Fatter jeg ikke :s
nogle som kan finde ud af det

http://80.166.165.221/Akvariefisk.rar fatter det ikke det er Command1 som er
Update knappen bare husk at vælge en i listboxen først
Avatar billede dj-hupi Nybegynder
03. september 2004 - 19:26 #25
Undskyld det virkede med den korte SQL streng men ikke hvis jeg sætter den lange ind :S
Avatar billede eagleeye Praktikant
03. september 2004 - 19:32 #26
Hvordan ser din SQL sætning ud nu?
har du prøvet at sætte klammer [] omkring alle kolonne navne?  [kolonne-navn]
Avatar billede dj-hupi Nybegynder
03. september 2004 - 20:02 #27
Hmm ja den ser jo sådan ud hvis jeg kunne knække den da den er for lang :P

SQL1 = "UPDATE fish_info SET [art] = '" & txt_art.Text & "', [engelsknavn] = '" & txt_uknavn.Text & "', [Synonym] = '" & txt_synonym.Text & "', [variant] = '" & txt_variant.Text & "', [fangststed] = '" & txt_fangststed.Text & "', [slægt] = '" & txt_slægt.Text & "', [Dansknavn] = '" & txt_dknavn.Text & "', [pH] = '" & txt_Ph.Text & "", [Familie] ='" & txt_familie.Text & "', [Land] = '" & txt_kontinent.Text & "', [opdager] = '" & txt_Opdager.Text & "', [op-år] = '" & txt_Aarstal.Text & "', [dk-opdraet] = '" & txt_opdraetter.Text & "', [dk-opdraet-år] = '" & txt_opdraetteraar.Text & "', [dh-kh] ='" & txt_dh.Text & "', [strørrelse] = '" & txt_str.Text & "', [vandtype] ='" & txt_natur.Text & "', [foder] ='" & txt_foder.Text & "', [temp] ='" & txt_temp.Text & "', [kønsforskel] ='" & txt_sex.Text & "', [opdræt] ='" & txt_opdrat.Text & "', [opdrættet] ='" & txt_opdraetter.Text & "', [note] ='" & txt_note.Text & "', [billede1] ='" & txt_billede1.Text & "', [billede2] ='" & txt_billede2.Text & "' WHERE [id] = " & txt_id.Text
Avatar billede eagleeye Praktikant
03. september 2004 - 20:06 #28
ok, der er en fejl efter pH der er to "" det skulle være "'

Så prøv at rette
[pH] = '" & txt_Ph.Text & "", [Familie] ='"

til:
[pH] = '" & txt_Ph.Text & "', [Familie] ='"
Avatar billede dj-hupi Nybegynder
03. september 2004 - 20:52 #29
Oki jeg er et fjols.... Hedder ikke [strørrelse] men [størrelse]
hehe Tak for det det virker nu ;)

Svar please synes i begge har været ret gode til at svare
Avatar billede eagleeye Praktikant
03. september 2004 - 21:03 #30
Ok ;)
Her er mit svar.
Avatar billede arne_v Ekspert
03. september 2004 - 21:15 #31
ok
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