Entwickler-Ecke
Internet / Netzwerk - MySql Abfrage Splitten :)
Danny W. - Do 26.10.06 13:56
Titel: MySql Abfrage Splitten :)
Hallo an alle,
Ich habe hier meine MySql DB und meine Abfrage.
Die Tabelle USER enthält mehrere Datensätze.
meine frage ist, wie bekomme ich eine zeile in einen string (bzw. tstrings)?
ich möchte die einzelnen datenfelder dann mit einem Delimiter Splitten.
Den Code dafür habe ich bereits:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.Button1Click(Sender: TObject); var sl : tstrings; i : integer; begin memo1.clear; sl := TStringList.Create; sl.Delimiter := ' '; sl.DelimitedText := edit1.text; edit2.text:=inttostr(sl.count);
for i := 0 to sl.count-1 do memo1.lines.add(sl.strings[i]);
end; |
Ich möchte jetzt pro 'sl' Variable, eine komplette zeile aus der datenbank bekommen!
Der Query an sich ist auch kein Problem. Allerdings weiß ich nicht wie und wo ich die Abfrage eingeben und ausgeben lassen soll.
mfG,
Mantis
Xion - Do 26.10.06 14:21
Delphi-Quelltext
1:
| s1.DelimitedText:=Query.FieldByName('DBFeld').AsString; |
so?
Danny W. - Do 26.10.06 14:24
Xion hat folgendes geschrieben: |
Delphi-Quelltext 1:
| s1.DelimitedText:=Query.FieldByName('DBFeld').AsString; |
so? |
ich würde das gerne testen, aber ich werde daraus leider nicht schlau ^^ ist der query eine funktion aus einer bestimmten komponente? was muss genau muss in das ('DBFeld')?
/EDIT
btw. Ich benutze Delphi 2005 PE mit Direct SQL :)
mfG
Xion - Do 26.10.06 14:36
öööh, ich kenn mich eingentlich nur mit BDE aus, aber:
Query ist ne Komponente, da steht der SQL-Code und wenn ich sage Query.ExecSQL oder Query.Open dann hab ich das Ergebnis da drin. Das kann ich per Query.FieldByName('DBFeld').AsString auslesen. Dann Query.Next => nächster Eintrag. 'DBFeld' steht hier für das Feld, also wenn du z.B. ne Tabelle mit Name, Vorname, Wohnort hast dann wäre z.B. Query.FieldByName('Name').AsString ne Möglichkeit...dachte du meinst so ein Query: (
Mantis1987 hat folgendes geschrieben: |
sl.DelimitedText := edit1.text; //Soll durch einen MySQL Queryersetzt werden!
|
)
Danny W. - Do 26.10.06 14:57
tut mir leid, da hab ich mich ein wohl ein wenig unklar (doof^^) ausgedrückt :)
ich wollte damit eine abfrage starten die mir z.B. so etwas ausspuckt!
Mantis 28.07.1987
dannywitting@aol.com 208332033 blabla
(name, geb. datum, email, icq, motto oder so)
diesen string wollte ich dann einfügen, um ihn anschließend zu trennen :)
mfG
Xion - Do 26.10.06 15:05
ääääh...
wie machst denn du die Abfrage? Hast du keine Query-Komponente?
Danny W. - Do 26.10.06 15:21
doch doch ^^
ich hab das problem jetzt auch schon gelöst :)
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:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, directmysql4x;
type TForm1 = class(TForm) Button1: TButton; Edit2: TEdit; Memo1: TMemo; label1: TLabel; Memo2: TMemo; Button2: TButton; db1: Tdirectmysql; procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var sl : tstrings; i : integer; begin memo1.clear; sl := TStringList.Create; sl.Delimiter := ','; sl.DelimitedText := memo2.text; edit2.text:=inttostr(sl.count); for i := 0 to sl.count-1 do memo1.lines.add(sl.strings[i]);
end;
procedure TForm1.FormCreate(Sender: TObject); begin memo1.clear; memo2.clear; end;
procedure TForm1.Button2Click(Sender: TObject); var s:string; befehl: string; ts : tstrings; begin if db1.Connect2MysqlDB('localhost','root','','bla',3306,s) then begin
befehl:='SELECT `news`.`ueberschrift`, `news`.`text` FROM `news`'; ts:=tstringlist.Create; db1.sendcmd(befehl,true,ts); memo2.lines.Assign(ts); ts.free;
db1.DisConnectMysqlDB(s); end; end;
end. |
danke für die hilfe :)
Xion - Do 26.10.06 15:25
hmmm, ok, das ist wohl doch komplett anders als BDE ;)
Danny W. - Do 26.10.06 20:51
ernstgemeinte frage: Beides beantwortet!
nicht ernstgemeinte frage: Sind versch. themen! les dir das nochmal durch...das andere ist nur spezieller...dieses hier hab ich im nachhinein geöffnet, wo mir schon die wichtigsten sachen beantwortet wurden :|
mfG
gsmgrufti - Do 26.10.06 21:56
Na ja,
solltest nun beide Threads beenden und bei Datenbanken weitermachen :wink:
Danny W. - Fr 27.10.06 09:22
stimmt..die threads waren wirklich fast identisch...ich hab das halt nur damit gerechtfertigt, weil ich bei dem anderen halt schon weiter war und es spezieller wurde, entschuldigung dafür :oops:
Ich hab auf den anderen Thread leider bloß keinen 'Zugriff' mehr, weil das halt der account von meinem kumpel ist :( werde den thread aber melden, wahrscheinlich haben die mods da ja noch möglichkeiten :)
mfG,
Mantis
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!