AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Daten in einer Datenbank speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Daten in einer Datenbank speichern

Ein Thema von darkrose · begonnen am 3. Nov 2016 · letzter Beitrag vom 22. Nov 2016
Antwort Antwort
Seite 1 von 2  1 2      
frapo

Registriert seit: 8. Feb 2012
Ort: OWL
32 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

AW: Daten in einer Datenbank speichern

  Alt 3. Nov 2016, 14:45
Hätte die Seite mir geholfen würde ich hier nicht fragen
Genau auf der Seite gibt es aber eine Fülle an Informationen. Wenn dir diese Seite nicht weiterhilft, wäre es ein guter Ansatz hier mal konkret zu benennen, wo du momentan stecken bleibst.

Hilfreich wäre auch Code zu zeigen den du bisher hast. Irgendwo muss man ja ansetzen, wenn dir die angegebene Seite schon keine Hilfestellung sein kann.
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Daten in einer Datenbank speichern

  Alt 3. Nov 2016, 14:53
Ich schließe einfach mal aus deinem Eröffnungspost, dass bei Dir noch einige ? sind....
Wenn Du xampp verwendest wirst Du wohl auch mysql verwenden. Das würde ich persönlich gegen eine postgreSQL austauschen.

Daten speichert man mit 'Insert'. Bearbeiten mit 'update'. Suchen mit 'Select'.
Du solltest dich erstmal in das Thema Datenbanken und SQL einlesen. Anschließend mit der Anbindung der Datenbank über Delphi. Ich verwende dafür FireDac oder UniDac.
Philip
  Mit Zitat antworten Zitat
Jim Carrey
(Gast)

n/a Beiträge
 
#3

AW: Daten in einer Datenbank speichern

  Alt 3. Nov 2016, 15:01
Wenn du Xampp verwendest, wird es ja wohl auch eine Webseite geben.
Hier meine stupide aber funktionierende Lösung, für die ihr mich alle hassen werdet!

Benutze die Indy-Komponenden (idHTTP) und schicke deine Daten per Get an ein PHP-Script deiner Webseite. Zum Beispiel:
Delphi-Quellcode:
//
IdHTTP1.Get('http://localhost/delphi.php?name=klaus&wohnort=nirgendwo');
Nun kannst du in deinem PHP-Script abfragen, ob "name" und "wohnort" da sind:
Code:
// delphi.php
<?php
 $name = $_GET['name'];
 $wohnort = $_GET['wohnort'];

 // nun stelle an mit den Daten was auch immer du möchtest (Speicherung in einer MySQL-DB etc) - Validierung vorher nicht vergessen!
?>
Wozu FireDac und all der Blödsinn, wenn man es doch auch so machen kann?
Wir sind nicht alle hoch-professionelle Programmierer die an einer 10.000€-Software arbeiten.
Hobbymäßig tut es meine Lösung voll und ganz.

Wenn das PHP-Script gut geschrieben und die Validierung in Ordnung ist, ist alles bestens.
Man braucht keine Logindaten in der Software anzugeben und all den Quark, denn alles wird zentral vom Script gesteuert.

Stellt euch mal vor die Software hat einen Bug den es in einer neueren Version nicht gibt.
Hier hätte man schlechte Karten. Wird jedoch alles vom Script gesteuert, ist es egal welche Version der Software der Anwender hat, denn man regel im Script immer alles für alle Anwender jeder Version.

Geändert von Jim Carrey ( 3. Nov 2016 um 15:05 Uhr)
  Mit Zitat antworten Zitat
frapo

Registriert seit: 8. Feb 2012
Ort: OWL
32 Beiträge
 
Delphi 10.1 Berlin Starter
 
#4

AW: Daten in einer Datenbank speichern

  Alt 3. Nov 2016, 15:10
Aua.. nur weil er XAMMP installiert hat, heißt es doch nicht, dass es um eine Webseite geht. Vielleicht hat er einfach den ganzen Stack installiert und will erst mal nur ganz profan auf die DB Zugriff haben. Dazu fehlen halt Informationen vom Fragesteller, was er genau vorhat. Alles Fischen im Trüben bisher.
Nun gleich mit PHP zu kommen, vereinfacht das alles nicht unbedingt

Ich verstehe es bisher so, dass er in erster Linie direkt mit Delphi auf eine lokale MySQL-Instanz zugreifen möchte. Da bleibt erst mal die Frage: klappt überhaupt der Connect? Warum überhaupt zwingend ODBC? Und dergleichen.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: Daten in einer Datenbank speichern

  Alt 3. Nov 2016, 15:36
Vielleicht ist auch phpMyAdmin ein Stichwort für den TE, wenn es ihm erstmal darum geht bei MySQL eine Datenbank zu erstellen und Tabellen einzurichten usw.
Ralph
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Daten in einer Datenbank speichern

  Alt 3. Nov 2016, 15:40
Für den Zugriff auf eine MySQL Datenbank wären die Zeos Komponenten vielleicht auch ganz interessant.
  Mit Zitat antworten Zitat
darkrose

Registriert seit: 22. Sep 2016
17 Beiträge
 
#7

AW: Daten in einer Datenbank speichern

  Alt 3. Nov 2016, 17:12
Schon mal Vielen Dank für die vielen Antworten...

So um mal zu erklären was genau das Problem ist. (Entschuldigung vorher bin ich nicht richtig dazu gekommen)

Zunächst einmal ist es nur ein rein Privates Programm für mich ohne Webseitenanbindung. Warum ich xampp verwende? Weil ich das so mal vor 3-4 Jahren gelernt habe und einfach nur das Gelernte verwende. Somit bin ich auch etwas aus der Übung.

Ich habe vor in einer Datenbank meine Vorhanden Noten zu Speichern damit ich zu Hause genau weiß wo welche Noten liegen.
Zur Verbindung zwischen der Datenbank und dem Delphi arbeite ich mit ODBC (hoffe die erklärung stimmt).

Ich habe zwei Oberflächen auf der einen werden in Edit Feldern der Inhalt der DB ausgegeben und ich kann über den Navigator mir jeden einzelnen Eintrag anschauen.
Auf die zweite Oberfläche komme ich über einen Button und dort möchte ich Daten eintragen, welche dann in meine DB gespeichert werden. (Bilder sind dabei)

Das Anzeigen der Daten funktioniert einwandfrei und macht keine Probleme.
Beim Einfügen der Daten in die DB bekomme ich jedoch einen Fehler und weiß nicht wie ich ihn beheben kann. (Bild dabei)

So sieht mein Quellcode zum Hinzufügen des Datensatzes aus.


Delphi-Quellcode:

unit edit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, DBTables;

type
  Tform2 = class(TForm)
    btnhinz: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    edtitel1: TEdit;
    Query1: TQuery;
    Tnoten: TTable;
    DSnoten: TDataSource;
    DSQuery: TDataSource;
    edkomponist: TEdit;
    edonr: TEdit;
    Label5: TLabel;
    edtitel2: TEdit;
    UpdateSQL1: TUpdateSQL;
    procedure Button2Click(Sender: TObject);
    procedure btnhinzClick(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  form2: Tform2;

implementation

uses anzeige;
{$R *.dfm}

procedure Tform2.Button2Click(Sender: TObject);
begin
  form2.close;
end;



procedure Tform2.btnhinzClick(Sender: TObject);
var titel1,titel2, autor, onr: string;
var query: ANSIString;
begin
  Query1.Close;
  Query1.SQL.Clear;
  titel1:= edtitel1.Text;
  titel2:= edtitel2.Text;
  autor:= edkomponist.Text;
  onr := edonr.Text;
   query := 'INSERT INTO noten (titel1,titel2, autor, oid)'  +
   'VALUES (' +#39+ titel1 +#39+ ', ' + #39+autor +#39+',' + #39+onr + #39+');';
   Query1.SQL.Add(query);
   Query1.Open;
   Query1.Active := true;

end;

end.
Ich hoffe ich konnte mein Problem gut darstellen.
Angehängte Grafiken
Dateityp: jpg datenanzeige.JPG (112,6 KB, 61x aufgerufen)
Dateityp: jpg Datenhinzufügen.JPG (62,6 KB, 45x aufgerufen)
Dateityp: jpg fehler delphi2.JPG (35,5 KB, 60x aufgerufen)
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#8

AW: Daten in einer Datenbank speichern

  Alt 16. Nov 2016, 16:55
Hätte die Seite mir geholfen würde ich hier nicht fragen
Genau auf der Seite gibt es aber eine Fülle an Informationen. Wenn dir diese Seite nicht weiterhilft, wäre es ein guter Ansatz hier mal konkret zu benennen, wo du momentan stecken bleibst.

Hilfreich wäre auch Code zu zeigen den du bisher hast. Irgendwo muss man ja ansetzen, wenn dir die angegebene Seite schon keine Hilfestellung sein kann.
Wie wäre es wenn du die Tutorials tatsächlich durcharbeiten würdest und uns sagst an welcher Stelle du nicht weiter kommst?

Bevor man mit irgendwelchen anderen Komponenten auf die Datenbank zugreifen kann, wird erst einmal eine Datenbankverbindung benötigt.
http://docwiki.embarcadero.com/RADSt...nken_zugreifen

Erst wenn die Datenbankverbindung funktioniert kann man anfangen auf Daten bzw. einzelne Tabellen zuzugreifen.
http://docwiki.embarcadero.com/RADSt...28Anleitung%29

Übriegens kannst du hier Dateien an deinen Beitrag anhängen (ähnlich wie bei E-Mails), man musst nicht den Quelltext gesamte Unit posten.

Geändert von Blup (16. Nov 2016 um 16:57 Uhr)
  Mit Zitat antworten Zitat
darkrose

Registriert seit: 22. Sep 2016
17 Beiträge
 
#9

AW: Daten in einer Datenbank speichern

  Alt 16. Nov 2016, 17:38
Habe das Problem gefunden und gelöst danke sehr.

Geändert von darkrose (16. Nov 2016 um 18:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#10

AW: Daten in einer Datenbank speichern

  Alt 16. Nov 2016, 23:46
Ist es wirklich nötig ständig ALLES zu zitieren?

Code:
object form2: Tform2   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  Left = 423
  ...
  object Tlieder: TTable
    Active = True
    DatabaseName = 'noten'
    TableName = 'lieder'
    Left = 48
    Top = 8
  end
  object DSnoten: TDataSource
    DataSet = form1.Tlieder  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    Left = 56
    Top = 40
  end
Wem fällt was auf?

Wenn du wirklich alles gelesen hast, warum hast du dann nicht bemerkt, dass von QuotedStr ausdrücklich abgeraten wird?




Und als Addon:
Zitat:
Delphi-Quellcode:
procedure Tform2.Button2Click(Sender: TObject);
begin
  form2.close;
end;
Für dieser Verwendung der globalen Variablen gehört man sowieso einen Klapps auf den Poo.
Delphi-Quellcode:
procedure Tform2.Button2Click(Sender: TObject);
begin
  Self.Close; // wenn man unbedingt eine Variable verwenden will/muss
end;

// oder

procedure Tform2.Button2Click(Sender: TObject);
begin
  Close;
end;
Erstell mal "gleichzeitig" zwei Instanzen dieser Form und heul dann nicht rum, wenn es nicht so funktioniert, wie gewollt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 01:06 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