Autor Beitrag
Flodding
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Mi 06.12.06 16:40 
Hi! Guten Tag!

Ich bin schon lange am werkeln mit einer Verbindung von Delphi zu MySQL und die Verbindung funktioniert auch soweit.

Ich habs auch hinbekommen, das Informationen die in Textfeldern stehen über einen Knopfdruck in die Datenbank geschrieben werden, jedoch bekomme ich es ums verrecken nicht hin, zB eine Mitgliedsliste in einer Listbox anzeigen zu lassen...

Ich finde immer nur anleitungen wie ich solche informationen in eine Tabelle bekomme, jedoch nicht in eine Listbox bzw einzelne Were auslesen kann und diese dann einzeln, zB die Posts eines Users in einer Textbox darstellen zu können um diese dann zu editieren...

kann mir da einer helfen?

Mit freundlichem Gruß

Floddy
Blawen
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: Mi 06.12.06 20:59 
Wenn Du noch nicht gross Erfahrung in der Programmierung hast, würde ich mir zuerst mal eines der recht guten Tutorials zu Gemüte führen.
Die Daten würde ich mir z.B. in einem DBGrid ausgeben lassen (Datasource!)
oder auch in einem DBEdit (Datasource + Datafield). Neue Daten würde ich in Editfeldern eingeben und mittels
SQL-Befehl in der DB speichern.

Wenn Du wirklich in einer Listbox Daten eintragen willst, wirst Du dies manuell machen müssen!
Vermutlich möchtest Du eher eine DBListbox verwenden. Auch dort gilt: insbesondere die Eigenschaften "Datasource" und "Datafield" sind entscheidend!

_________________
Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro ;-)
Flodding Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Do 07.12.06 10:11 
ja mir gings ja darum zu wissen wie das geht...

wie meine möglichkeiten sind war mir auch klar ;)
freak4fun
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 604
Erhaltene Danke: 4

Win 7 Pro
VS 2013 Express, Delphi, C#, PHP, Java
BeitragVerfasst: Do 07.12.06 10:17 
Wie seiht denn deine Abfrage der Datenbank aus, bzw. was hast du schon?

MfG
freak

_________________
"Ich werde auf GAR KEINEN Fall…!" - "Keks?" - "Okay, ich tu's."
i++; // zaehler i um 1 erhoehen
Flodding Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Do 07.12.06 17:29 
Soweit steht die Verbindung zur MySQL Datenbank, und ich kan auch die Daten in den Textfeldern in die datenbank schreiben...

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uMysqlCT, uMysqlClient, uMysqlHelpers, StdCtrls, ExtCtrls, jpeg,
  OleCtrls, SHDocVw, ComCtrls;
  {$I mysqlinc.inc}

type
  TForm1 = class(TForm)
    Shape1: TShape;
    Timer1: TTimer;
    WebBrowser1: TWebBrowser;
    ProgressBar1: TProgressBar;
    Label9: TLabel;
    GroupBox1: TGroupBox;
    Button3: TButton;
    Nickname: TLabeledEdit;
    Passwort: TLabeledEdit;
    GroupBox2: TGroupBox;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    ComboBox3: TComboBox;
    ComboBox4: TComboBox;
    ComboBox5: TComboBox;
    ComboBox6: TComboBox;
    ComboBox7: TComboBox;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
  FMysql: TMysqlClient;
  FResult: TMysqlResult;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.Button3Click(Sender: TObject);
var q: string;
    ex: boolean;
begin
  if assigned(FResult) then begin
    if FMysql.Status<>MYSQL_STATUS_READY then
      ShowMessage('Ein Ergebnis wurde unvollständig gelesen!');
      FreeAndNil(FResult);
  end;
  q := 'INSERT INTO `user` '+'(`name`,`passwort`)'+' VALUES '+'(' + #39 + name.Text +  #39 +',' + #39 + pass.Text +  #39 +');';
  FResult := FMysql.query(q, true, ex);
  name.Text := '';
  pass.Text := '';
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
FMysql := TMysqlClient.create;
  FMysql.Host := 'IP.IP.IP.IP';
  FMysql.port := 3306;
  FMysql.user :='user';
  FMysql.password := 'passwort';
  FMysql.UnixSocket := '';
  FMysql.Db := 'usr_web1_2';
  FMysql.UseNamedPipe := false;
  FMysql.UseSSL := false;
  FMysql.Compress := true;
  FMysql.TrySockets := false;
  if FMysql.Connect then
  Shape1.Brush.Color := clLime
  else
  Shape1.Brush.Color := clRed;
  timer1.Enabled := false;
  ProgressBar1.Position := (100);
  Label9.Caption:='Fertig geladen';
end;

end.


Jedoch möchte ich ja jetzt noch die Usernamen in einer Liste anzeigen lassen, um deren Stammdaten wie E-Mail, Status wie Admin oder user, etc. ändern zu können... dazu muss ich aber die vorhandenen daten ersteinmal anzeigen lassen können, bzw MUSS ist in dem fall ja relativ, ich könnte das ganze auch über PHP machen. Jedoch solls ein AdministrationsProgramm werden, mit dem ich nicht erst auf eine Internetseite gehen möchte :)
Blawen
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: Sa 09.12.06 01:28 
user profile iconFlodding hat folgendes geschrieben:
ja mir gings ja darum zu wissen wie das geht...

Zitat:
Jedoch möchte ich ja jetzt noch die Usernamen in einer Liste anzeigen lassen, um deren Stammdaten wie E-Mail, Status wie Admin oder user, etc. ändern zu können... dazu muss ich aber die vorhandenen daten ersteinmal anzeigen lassen können...
Nun, die dafür notwendigen Stichwörter (Komponenten) habe ich genannt, inkl. deren entscheidenden Eigenschaften. Die Komponenten musst Du allerdings schon selber auf die Form "ziehen"... :wink:

Zum Timer habe ich noch eine Frage:
Möchtest Du bei einer abgebrochenen Verbindung nicht wieder verbinden? Zumindest fehlt mir ein
ausblenden Delphi-Quelltext
1:
IF NOT FMysql.Connect THEN FMysql.Connect					


Wieso Du übrigens bereits für's Login einen Timer einsetzt, ist mir nicht ganz klar. Im Normalfall starte ich diesen erst nach erfolgreichem Login (Timeout-Fehler verhindern) - wenn Du diesen bereits vor dem Login startest, wirst Du Dir unweigerlich Probleme einheimsen.

_________________
Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro ;-)
Flodding Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Sa 09.12.06 16:43 
ich verstehs nicht :S
Blawen
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: So 10.12.06 00:21 
user profile iconFlodding hat folgendes geschrieben:
ich verstehs nicht :S
Was verstehst Du nicht?

_________________
Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro ;-)
Flodding Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: So 10.12.06 11:15 
ih verstehs nicht, wie man so geizig mit nem CodeSchnipsel sein kann...

ich mein... ich frag ja nicht gleich nachm ganzen programm, das buggyfrei laufen soll.

naja trotzdem danke...
Blawen
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: So 10.12.06 14:18 
user profile iconFlodding hat folgendes geschrieben:
ih verstehs nicht, wie man so geizig mit nem CodeSchnipsel sein kann...

ich mein... ich frag ja nicht gleich nachm ganzen programm, das buggyfrei laufen soll.

naja trotzdem danke...
Sorry, aber den grundlegenden Vorgang musst Du schon selber machen - diesen wirst Du auch in einem Codeschnippsel nicht sehen/entdecken:

Gewünschtes Objekt (z.B. dbEdit, dbGrid,...) auf die Form ziehen und markieren. Im Objektinspektor kannst Du jetzt die entscheidenden Eigenschaften (Datasource + und allenfalls Datafield) zuweisen und schon wird Dir der Feldinhalt des aktuellen DS angezeigt. Den Rest wirst Du schätzungsweise hinbekommen, zumindest schreibst Du ja, dass Dir das speichern soweit gelingt.

[Edit]
Ich glaube zwar nicht, dass der Lerneffekt besonders gross ist, aber ich will mal nicht so "geizig" sein.
Nicht aber, dass es dann heist "bringe doch nicht so schwere Beispiele - die versteht ja keiner" ;-)


Bitte beachte, dass die Verbindungsdaten in der Prozedur "Button1Click" angepasst werden müssen!
Desweiteren ist das ganze nur als Demo gedacht, die Funktionen sind daher auf das absolut notwendige reduziert.

Die Struktur der Datenbank sieht wie folgt aus:

Tabelle: users
ID Integer Autoinc
Username Varchar 10
Passwort Varchar 10


Tabelle: stats
ID Integer Autoinc
UserID Integer 5
LogIn Varchar 20
LogOut Varchar 20
Einloggen, um Attachments anzusehen!
_________________
Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro ;-)
Flodding Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: So 10.12.06 17:04 
das ja schonmal was womit ich arbeiten kann :)

THX und zwar n fettes...

jedoch wird mir gesagt beim laden des projekts:

1 mal Klasse TZConnection nicht gefunden.

4 mal Klasse TZQuerry nicht gefunden.
Blawen
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: So 10.12.06 21:01 
user profile iconFlodding hat folgendes geschrieben:
jedoch wird mir gesagt beim laden des projekts:

...Klasse TZConnection nicht gefunden...
Ich greife mittels den ZEOS-Komponenten auf die MySQL-DB zu, Du offenbar mittels einer anderen Komponente.
Die ZEOS-Komponenten findest Du hier: zeosforum.net.ms

_________________
Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro ;-)