![]() |
Insert in SQLite via Datasnap - Anfängerproblem
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:
Es scheint also ganz anders als eine normale SQL Verbinung einer Windowsanwendung zur DB zu funktionieren.
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; 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 :) |
AW: Insert in SQLite via Datasnap - Anfängerproblem
Hast du dir schon mal die Datasnap Beispiele angesehen, die Delphi mitbringt?
|
AW: Insert in SQLite via Datasnap - Anfängerproblem
Moin...:P
Zitat:
...schau mal hier: ![]() 2:
Delphi-Quellcode:
Empfehlung: getrennte DataSets
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. 3:
Delphi-Quellcode:
:warn: immer Parameter benutzen!
'update fam_check set '+
'starus_freigabe = 1,'+ 'freigabe_user = 12,'+ 'where id = '+ (Quotedstr(amsc.Label9.Text)); ![]() wegen: ![]() besser:
Delphi-Quellcode:
PS: sollte die Syntax nicht ganz korrekt sein, nagelt mich nicht fest. :zwinker:
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); :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz