Avatar billede trold Nybegynder
20. november 2000 - 18:30 Der er 1 kommentar og
3 løsninger

SQL Update i nuilderen

Jeg prøver at bruge et Data Access Query i Borland Builder 3, men kan ikke få det til at virke

Query2->Close();
    Query2->SQL->Clear();
Query2->Open();
    Query2->First();
    Query2->SQL->Add(\"update AMBULANCE set Udrykningsstatus = 1\");
    Query2->SQL->Add(\"where AmbulanceId = \'\" + strAmbulanceID + \"\'\");
    Query2->ExecSQL();

Hvad går galt - jeg får skiftevis flg fejlmeldinger no SQL available, eller can perform action on a close dataset afhængig om jeg har

Query2->Open();

med
Avatar billede rm Nybegynder
21. november 2000 - 01:05 #1
i stædet for

Query2->SQL->Add(\"where AmbulanceId = \'\" + strAmbulanceID + \"\'\");

så prøv: 

#include <stdio.h>
char  buffer[200];
sprintf(buffer, \"where AmbulanceId = \'%s\'\", strAmbulanceID);
Query2->SQL->Add(buffer);
Avatar billede duck Nybegynder
22. november 2000 - 10:07 #2
Hej Trold

Jeg tror dit problem ligger i at sletter SQL-scriptet og åbner dataforbindelsen:
 
  ...->Clear();
  ...->Open();

Vent med at åbne/eksekvere scriptet indtil det er opbygget.
Metoden First() skal også fjernes, da det ikke giver mening at springe til første port i et tom SQL-script.

/duck
Avatar billede duck Nybegynder
22. november 2000 - 10:09 #3
Hej igen.

Hvorfor er der ingen stavekontrol ???

Vi prøver igen ..

Jeg tror dit problem ligger i at du sletter SQL-scriptet og derefter åbner dataforbindelsen:
 
  ...->Clear();
  ...->Open();

Vent med at åbne/eksekvere scriptet indtil det er opbygget.
Metoden First() skal også fjernes, da det ikke giver mening at springe til første post i et tom SQL-script.

/duck
Avatar billede soepro Nybegynder
22. november 2000 - 10:36 #4
Dit problem er rækkefølgen af dine SQL metode-kald. Du må ikke åbne SQL datasettet før du HAR lavet/opbygget dit SQL statement:

SQL->Clear();
SQL->Add(.....);
SQL->Open();

ExecSQL() og Open() metoderne er egentlig ens - ExecSQL() skal du kun bruge hvis du skal lave f.eks. INSERT eller UPDATE, dvs. hvor du ikke viser de fundne data nogen steder, mens du skal bruge Open() hvis du har en komponent der viser dataene. Metoden First() behøver du ikke bruge hvis du lige har lavet Open(), den positionerer nemlig automatisk til første post. (First() er smart hvis du f.eks. løber hele dit dataset igennem og bagefter vil vise den første post igen, men her er den altså unødvendig.)
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