Avatar billede roz Nybegynder
21. januar 2006 - 15:54 Der er 7 kommentarer og
1 løsning

SQL Problemer med ADOQuery

Hey...

Jeg har lidt problemer med følgende Query:

DBQuery.SQL.Text := 'INSERT INTO Notes (Date, Note) VALUES (#'+FormatDateTime('dd-mm-yyy', date)+'#, '''+text+''');';
    DBQuery.ExecSQL;

Hver gang den bliver kørt siger Delphi der er en syntaxfejl i INSERT sætningen.

Jeg er dog ret sikker på at databaseoplysningerne, cellenavne osv. er korrekte da denne query virker fint:

DBDataset.CommandText := 'SELECT Note FROM Notes WHERE Date = #'+FormatDateTime('dd-mm-yyy', date)+'#;';

BTW: Den eneste grund til at den øverste query bliver lavet i en ADOQuery mens den nederste i en ADODataset er at jeg havde prøvet at lave den øverste query i en ADODataset hvilket ikke virkede.
Så ville lige forsøge mig med en ADOQuery istedet.

BTW: ADOQuery og ADODataset har samme ADOConnection så det er ikke der problemet ligger.

Håber der er nogen der kan hjælpe ;)
Avatar billede tjp Mester
21. januar 2006 - 16:11 #1
Syntaksfejl betyder at der er noget galt med din syntaks, dvs. din sætningsudformning, og jeg ville gætte på at det er dine ''' den er gal med.
Avatar billede roz Nybegynder
21. januar 2006 - 16:12 #2
Kan ske det skal siges det er en Access database jeg bruger.
Avatar billede roz Nybegynder
21. januar 2006 - 16:15 #3
Har prøvet at fjerne dem men giver samme resultat. Mener også sidst jeg brugte ADOQueries fra Delphi SKULLE de være med når det var tekst der skulle sættes ind.
Avatar billede stoney Nybegynder
21. januar 2006 - 17:42 #4
DBQuery.SQL.Text := 'INSERT INTO Notes (Date, Note) VALUES (#'+FormatDateTime('dd-mm-yyy', date)+'#, '''+text+''');';

den 2. sidste ; skal ikke være der.
Prøv at udskrive din sql med showmessage(DBQuery.SQL.Text) så du kan se hvad den egentlig gør.

Hvis du i din kode bruger "with adoquery do ..." tror jeg den kløjs i din variabel text som
er et "reserveret" ord

stoney
Avatar billede roz Nybegynder
21. januar 2006 - 17:49 #5
Giver samme fejl selvom den ikke er der. Og har en SELECT query hvor den også er tilsidst som virker fint.

Den udskriver det korrekte både med dato og teksten :s

Bruger ikke with på noget tidspunkt....

Kan nok ikk forstå hvad der er galt :s
Avatar billede softtail Nybegynder
22. januar 2006 - 15:37 #6
Hvad bruger du havelågerne (#) til i din syntaks???

Er der nogle apastroffer eller andre mærkelige tegn i din text-variabel?
Avatar billede coladrenge Nybegynder
25. januar 2006 - 10:30 #7
hej

en måde at skrive insert på i delphi er følgende

Procedure IndsætTalOgTeks(Tal : integer; Tekst : string);
begin
  self.AdoQuery1.SQL.Add('Insert into MinTabel(Tal,Tekst) Values ('+IntToStr(TAL) +','''+TEKST+'''')';
  self.AdoQuery1.ExecQuery;
end;

en anden måde at gøre det på er via parametre.
Avatar billede roz Nybegynder
10. august 2006 - 16:20 #8
lukker..
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