Avatar billede snowball Novice
27. marts 2000 - 15:58 Der er 6 kommentarer og
1 løsning

UPDATE problem

Min kode ser sådan ud:

  SQL_Udlaan_Udlaan := 'UPDATE intouch SET initialer = ''+E_Udlaan_Udlaan.Text+'' WHERE serienummer = ''Temp_Udlaan''';
  Q_Udlaan_Udlaan.Close;
  Q_Udlaan_Udlaan.SQL.Clear;
  Q_Udlaan_Udlaan.SQL.Add(SQL_Udlaan_Udlaan);
  Q_Udlaan_Udlaan.Execsql;

Problemet er, at den ikke opdaterer feltet initialer med det som der står i E_Udlaan_Udlaan.

Det skal måske lige siges, at Temp_Udlaan er en String, og der kommer til at stå de rigtige data i ! E_Udlaan_Udlaan er en edit box !

Avatar billede snowball Novice
27. marts 2000 - 16:25 #1
Hvis jeg laver WHERE serienummer = 'Temp_Udlaan'' om til WHERE serienummer = ''44444''' (44444 er et felt i tabellen) så opdaterer den fint feltet, men ellers ikke !!!

Snowball
Avatar billede snowball Novice
27. marts 2000 - 16:27 #2
PS. Eksperten skodder altså for vildt til at vise ' tegn !!

Der skal være 3 ' tegn før og efter Temp_Udlaan og 2 ' tegn før 44444 samt 3 ' tegn efter 44444 !!!

Snowball
Avatar billede picard Nybegynder
28. marts 2000 - 21:58 #3
jeg forstår ikke din brug af glypher ('), hvis e_udlaan_udlaan.text henviser til et editfelt, så skal du ikke have et ' foran.

En nemmere løsning er at gøre brug af parametere se nedenunder
(taget fra et af mine egne programmer)

  with skemadatamodule.dagbogquery do
  begin
  skemadatamodule.Database1.starttransaction;
    try
    sql.clear;
    SQL.Add('update intouch');
    SQL.Add('set initialer = (:E_Udlaan_Udlaan));
    sql.add('where serienummer =(:Temp_Udlaan)');
    Params[0].AsString :=E_Udlaan_Udlaan.Text;
    params[1].asinteger  :=Temp_Udlaan;
    ExecSQL;
    skemadatamodule.database1.commit;
    except
      skemadatamodule.Database1.Rollback;
    raise exception.create('Der er ikke valgt noget bibliotek, ændringen blev ikke udført');
    end;
    commitupdates;
  end;
Avatar billede snowball Novice
29. marts 2000 - 09:18 #4
picard: Hvis jeg fjerner ' tegnene, så gi'r den rigtig nok ikke nogen fejl når jeg compiler koden, men når jeg eksekvererne den, så kommer denne besked:

General SQL error.
Syntax error (missing operator) in query expression 'E_Udlaan_Udlaan.Text+'

Men jeg forstår ikke lige helt din kode !!!

Kan du ikke lige prøve og kommenterer og rette den lidt til så den passer mere til det jeg har lavet ???

Snowball
Avatar billede picard Nybegynder
29. marts 2000 - 15:42 #5
OKAY
jeg går udfra at
              Q_Udlaan_Udlaan er en tquery komponent !!!!!!!!!!!
              E_Udlaan_Udlaan.Text er et editfelt !!!!!!!!!!!!
              Temp_Udlaan er en eller anden variabel !!!!!!!!!!!
       
Hvis vi starter med at kigge på tquery komponenten (Q_Udlaan_Udlaan) så har den en property der hedder SQL i den skriver du følgende:

UPDATE intouch SET initialer =:E_Udlaan_Udlaan WHERE serienummer =:Temp_Udlaan
så klikker du på OK!!

(semikolonnet foran E_Udlaan_Udlaan og Temp_Udlaan angiver at der er tale om parametre dvs nogle endnu ikke fastlagte værdier !!!!!)

Under querykomponentens properties finder du en der hedder "params" klik på den, der skulle nu komme et vindue frem med to felter: E_Udlaan_Udlaan og Temp_Udlaan
luk vinduet igen.

Hvis det er en knap der skal kalde updaten til databasen skal du ind under dens klikevent (dobbelklik :-) )

her skriver du følgende
with Q_Udlaan_Udlaan do
  begin
    try
      close;
      Params[0].AsString :=E_Udlaan_Udlaan.Text; //Her angiver du værdien til para. fra tidligere
      params[1].asinteger  :=Temp_Udlaan; //temp_udlaan skal selføli' have en værdi
      ExecSQL;
    except
      raise exception.create('Opdateringen blev ikke fuldført');
    end;
  end;


Dette skulle meget gerne virke, ellers må du jo skrive igen :)
Held og lykke
Avatar billede snowball Novice
30. marts 2000 - 10:36 #6
Har fundet ud af det, men du får point'ene som tak for hjælpen !

Snowball
Avatar billede picard Nybegynder
31. marts 2000 - 12:15 #7
Takker
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