| Autor |
Beitrag |
Flodding
      
Beiträge: 28
|
Verfasst: 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
      
Beiträge: 616
Erhaltene Danke: 33
Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
|
Verfasst: 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 
      
Beiträge: 28
|
Verfasst: 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
      
Beiträge: 604
Erhaltene Danke: 4
Win 7 Pro
VS 2013 Express, Delphi, C#, PHP, Java
|
Verfasst: 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 
      
Beiträge: 28
|
Verfasst: 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...
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 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
      
Beiträge: 616
Erhaltene Danke: 33
Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
|
Verfasst: Sa 09.12.06 01:28
Flodding 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"...
Zum Timer habe ich noch eine Frage:
Möchtest Du bei einer abgebrochenen Verbindung nicht wieder verbinden? Zumindest fehlt mir ein
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 
      
Beiträge: 28
|
Verfasst: Sa 09.12.06 16:43
|
|
Blawen
      
Beiträge: 616
Erhaltene Danke: 33
Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
|
Verfasst: So 10.12.06 00:21
Flodding 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 
      
Beiträge: 28
|
Verfasst: 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
      
Beiträge: 616
Erhaltene Danke: 33
Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
|
Verfasst: So 10.12.06 14:18
Flodding 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 
      
Beiträge: 28
|
Verfasst: 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
      
Beiträge: 616
Erhaltene Danke: 33
Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
|
Verfasst: So 10.12.06 21:01
Flodding 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
|
|
|