AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Daten in einer Datenbank speichern

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   
Darlo

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

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
 
#2

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
 
#3

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.740 Beiträge
 
Delphi 6 Enterprise
 
#4

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
 
#5

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
 
#6

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
Aviator

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

AW: Daten in einer Datenbank speichern

  Alt 3. Nov 2016, 17:18
Die Fehlermeldung sagt doch schon alles. Die Tabelle "noten" ist in der Datenbank nicht vorhanden. Du solltest die erst mal erstellen. Hierzu entweder den Code von Hand ausführen mit CREATE TABLE ... oder eines der vielen grafischen DB Verwaltungstools verwenden. PHPMyAdmin oder (mein Favorit) HeidiSQL.

Dann sollte zumindest mal der Fehler mit der Tabelle verschwinden.
  Mit Zitat antworten Zitat
Jim Carrey
(Gast)

n/a Beiträge
 
#8

AW: Daten in einer Datenbank speichern

  Alt 3. Nov 2016, 17:38
Ich kann zwar nicht weiter helfen, da du laut Angabe doch nur DB und Programm verwendest (und keine Webseite) aber..
wieso noch Delphi 7? Delphi 10.1 Starter ist gratis.
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
733 Beiträge
 
Delphi 12 Athens
 
#9

AW: Daten in einer Datenbank speichern

  Alt 4. Nov 2016, 06:57
Das Anzeigen der Daten funktioniert einwandfrei und macht keine Probleme.
Das ist ja schon mal was.
Wie zeigst du die Daten denn an? Ich vermute mal über TDBxxx-Komponenten, die über eine Datasource an deiner Tabelle Tnoten hängen.

In den Eigenschaften dieser Tnoten steht ja dann eigentlich schon alles drin, was du brauchst. Schau einfach mal, wie es da gemacht ist. Ich vermute mal, dass in deiner Query1 die Eigenschaft DatabaseName nicht gesetzt ist.

Das Einfügen könntest du übrigens auch über die TTable machen:
Delphi-Quellcode:
TNoten.Append;
TNoten.FieldByName('titel1').AsString:=edtitel1.Text;
TNoten.Post;
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.906 Beiträge
 
Delphi 12 Athens
 
#10

AW: Daten in einer Datenbank speichern

  Alt 4. Nov 2016, 07:38
Delphi-Quellcode:
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; //--> Es soll eigentlich doch ein Statement ausgeführt werden und nicht eine Datenmenge geöffnet
   Query1.Active := true; // das ist eine Doppelung zur vorherigen Zeile

end;
Ohne jetzt näher auf Deinen Code einzugehen, sei angemerkt, dass Du ja eigentlich ein SQL ausführen willst. --> Query1.ExecSQL Das verwendete Query1.Open; ist dazu nicht verwendbar.
Das Query1.Active := true; ist eine Doppelung und somit obsolet.
Thomas Breitkreuz
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

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