AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Insert in SQLite via Datasnap - Anfängerproblem

Ein Thema von Dr. Jack · begonnen am 10. Okt 2020 · letzter Beitrag vom 10. Okt 2020
Antwort Antwort
Dr. Jack

Registriert seit: 17. Mär 2010
78 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#1

Insert in SQLite via Datasnap - Anfängerproblem

  Alt 10. Okt 2020, 13:46
Tag zusammen,

ich verwendene nun das erste mal eine Datasnap-Verbindung von einer Windowsanwendung zum Android. Das visuell-binding klappt soweit ganz gut, nur
möchte ich jetzt auch sql updates/inserts ausführen. Und genau da liegt das Problem, was mit Hilfe von Google irgendwie auch nicht zu lösen ist.

Also ich will Folgendes machen: Im Android klicke ich auf einen Button, der ein update zur SQLite DB via Datasnap senden soll.
Jetzt wollte ich das Client-Dataset ansprechen, aber es beschwert sich "Remote-Fehler: Änderungen an CommandText sind nicht gestattet."

Code:
comm_cds.CommandText := 'update fam_check set '+

                                        'starus_freigabe =     1,'+
                                        'freigabe_user =     12,'+

                                       'where id = '+
                                       (Quotedstr(amsc.Label9.Text));

            comm_cds.Execute;
            comm_cds.Open;
            comm_cds.Refresh;
Es scheint also ganz anders als eine normale SQL Verbinung einer Windowsanwendung zur DB zu funktionieren.
Die Elemente auf der Form sind wie im Embarcadero-Tuturial beschrieben.

SQLConnextion --> Tabelle --> Datasetprovider --> SQL-Datasnap --> DSProviderConnection --> Clientdataset

Welches der Elemente muss ich wie ansprechen, damit ich nen tollen Insert in die DB machen kann?
Hoffe das war einigermaßen verständlich erklärt. So ganz habe ich die Materie leider nicht durchstiegen...
Schon mal Danke für die verständnisvollen Antworten
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.993 Beiträge
 
Delphi 12 Athens
 
#2

AW: Insert in SQLite via Datasnap - Anfängerproblem

  Alt 10. Okt 2020, 14:49
Hast du dir schon mal die Datasnap Beispiele angesehen, die Delphi mitbringt?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#3

AW: Insert in SQLite via Datasnap - Anfängerproblem

  Alt 10. Okt 2020, 15:10
Moin...
Zitat:
Remote-Fehler: Änderungen an CommandText sind nicht gestattet
1:
...schau mal hier: https://www.delphipraxis.net/177390-...tenbanken.html #3

2:
Delphi-Quellcode:
comm_cds.Execute; // hier ist noch "update fam_check set..." als SQL eingetragen
comm_cds.Open; // ??? jetzt die Datenmenge öffnen? ...eher ein select mit neuem Statement
comm_cds.Refresh; // nicht nötig, da Open sowieso die Datenmenge abholt ... doppelt gemoppelt.
Empfehlung: getrennte DataSets

3:
Delphi-Quellcode:
'update fam_check set '+
   'starus_freigabe = 1,'+
   'freigabe_user = 12,'+
   'where id = '+
   (Quotedstr(amsc.Label9.Text));
immer Parameter benutzen!
http://docwiki.embarcadero.com/Libra...DataSet.Params
wegen: https://de.wikipedia.org/wiki/SQL-Injection
besser:
Delphi-Quellcode:
comm_cds.CommandText := 'update fam_check set ' +
                           'starus_freigabe = :P1,' +
                           'freigabe_user = :P2,' +
                           'where id = :ID';

comm_cds.CommandText.Params.ParamByName('P1').AsInteger := 1;
comm_cds.CommandText.Params.ParamByName('P2').AsInteger := 12;
comm_cds.CommandText.Params.ParamByName('ID').AsString := Quotedstr(amsc.Label9.Text);
PS: sollte die Syntax nicht ganz korrekt sein, nagelt mich nicht fest.


Geändert von haentschman (10. Okt 2020 um 15:27 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz