Entwickler-Ecke
Datenbanken - insert mit MyAccess unter D 2009?
mrbean_001 - Sa 09.05.09 15:37
Titel: insert mit MyAccess unter D 2009?
Ich habe das Vergnügen eine Anwendung zu entwerfen mit allen nur erdenklichen SchnickSchnack,
wie z.B. Kundenverwaltung, Produktverwaltung, Personalverwaltung, etc..
Als Newbee in der Delphi2009-Progammierung arbeite ich mich Stück für Stück durch.
In dem Hauptformal wir mittels PageControl das Kundenblatt aufgerufen.
Hier befinden sich mit TEdit diverse Eingabefelder, die ausgelesen werden sollen
und per sql Statement in die mySql Datenbank eingetragen werden.
Soweit so gut, habe nun das Forum seit Tagen durchforstet, vielleicht auch etwas übersehen, leider
finde ich nichts was mir weiterhilft.
Habe bisher mit php programmiert, dort wird der sql string per POST übergeben
Beim nachfolden Code wird nicht das Eingabefeld ausgelesen----aber +E_Nachname+ und +E_Vorname+ in die Datenbank eingetragen.
Natürlich sollen dann die Eingabefelder wieder freigegeben werden, wenn Speichern gedrückt wurde-- für den nächsten Datensatz.
Weiß jemand Rat, wie ich das Problem lösen könnte, ohne auf Goooooogle zu verweisen(schon ausgiebig gesucht)?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TAKP.SpeichernClick(Sender: TObject); var InsertSQL: String; E_Vorname: string; E_Nachname: string;
begin with MyCommand1 do InsertSQL:=('INSERT INTO akp_customers (customers_id, customers_firstname, customers_lastname)VALUES ('''', ''+E_Nachname+'', ''+E_Vorname+'');'); MyCommand1.SQL.Insert(0,InsertSql); MyCommand1.Execute ; MyCommand1.Free ;
end; |
Moderiert von
Narses: Delphi-Tags hinzugefügt
Moderiert von
Narses: Titel geändert (1 Fragezeichen reicht).
Delete - Sa 09.05.09 16:04
MyAccess sagt mir ehrlich gesagt spontan nichts, gibt es das erst ab D2009? Naja, wie dem auch sei, falls das unterstützt wird, solltest Du SQL-Parameter verwenden. Anbei ein Beispiel, wie das aussehen könnte:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| MyCommand1.InsertSQL.Text := 'INSERT INTO akp_customers (customers_id, customers_firstname, customers_lastname) VALUES (:leer, :E_Nachname, :E_Vorname'; MyCommand1.ParamByName('leer').Value := ''; MyCommand1.ParamByName('E_Nachname').Value := E_Nachname; MyCommand1.ParamByName('E_Vorname').Value := E_Vorname; MyCommand1.Execute ; MyCommand1.Free ; EingabeEditNachname.Clear; EingabeEditVorname.Clear; |
mrbean_001 - Sa 09.05.09 16:44
Danke erst einmal für die schnelle Antwort mit Beispiel.
MyAccess ist ein externes Tool für den Zugriff auf mySql Datenbanken von devart, dazu dbforgeFusion
unter
http://www.devart.com/mydac/.
Hat mir eigentlich zugesagt, da ziemlich schnell mit drag n drop Verbindung zu localhost hergestellt werden kann, tables, query,etc.ähnlich.
über Grid geht auch die Anzeige wunderbar, leider nicht z.B. Insert. In der Hilfe sind auch keine Beispiele.
Habe dein Beispiel eingebaut, leider rot unterstrichen wird nicht ünterstützt.
So etwas ähnliches habe ich auch schon im Forum gesehen und ausprobiert.
Delete - Sa 09.05.09 17:08
Ich habe mir gerade die Hilfe dazu heruntergeladen.
| Zitat: |
| Use the SQLInsert property to specify the SQL statement that will be used when applying an insertion to a dataset. Statements can be parameterized queries. Names of the parameters should be the same as field names. Parameters prefixed with OLD_ allow using current values of fields prior to the actual operation. |
Also sollte das schon irgendwie gehen, leider weiß ich auch nicht, wie genau.
mrbean_001 - Sa 09.05.09 17:44
Ich habe das irgendwo schon gesehen, aber wenn zuviel gelesen wurde, ist es
fast unmöglich zu wissen wo das war.
werde versuchen das zu finden.
Ich mach für heute erst einmal Schluss.
Bis Morgen... nicht vergessen MUTTERTAG!!
mrbean_001 - Fr 22.05.09 14:02
Habe nach etlichen Versuchen und Frustphasen es endlich geschafft.
Nachfolgend der Code-->
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TAKP.SpeichernClick(Sender: TObject); begin MyCommand1.SQL.Text := 'INSERT INTO akp_customers (customers_id, customers_firstname, customers_lastname) VALUES ('''', :E_Nachname, :E_Vorname);'; MyCommand1.ParamByName('E_Nachname').Value := E_Nachname.Text; MyCommand1.ParamByName('E_Vorname').Value := E_Vorname.Text; MyCommand1.Execute ; E_Nachname.clear; E_Vorname.Clear; end; |
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!