Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Anzahl sowie namen der TABLES aus DB auslesen mit zeos (https://www.delphipraxis.net/28442-anzahl-sowie-namen-der-tables-aus-db-auslesen-mit-zeos.html)

pmc 24. Aug 2004 23:22


Anzahl sowie namen der TABLES aus DB auslesen mit zeos
 
Hallihallo,

Also zunächst mal zu Zeos....das mit dem installiernen ist schon ein bissel dämlich gemacht....
und ne vernünftige anleitung zu dem ganzen gibbet auch net...aber egal

Mein problem ist folgendes :

Ich habe ein datenbank (MySql) und möchte nun eine list mit den darin vorhandenen Tables erstellen!!!
Kann mir jdm sagen wie ich das mache?

hab die funktion GetTableNames gefunden aber weiss net wie das damit geht.

HILFE!!! :wall:

PMC

DataCool 24. Aug 2004 23:57

Re: Anzahl sowie namen der TABLES aus DB auslesen mit zeos
 
Hi,

das sollte mit TZMySqlDatabase-Objekt gehen verwennde die Methode GetTableNames so :

Code:
Var List : TStringList;
begin
  List := TStringList.Create;
  try
     // das false ist ein schalter für Systemtabellen
    Datenbankobjekt.GetTableNames('*.*',false,List);
  finally
    List.free;
  end;
end;

grayfox 25. Aug 2004 00:06

Re: Anzahl sowie namen der TABLES aus DB auslesen mit zeos
 
hallo pmc!

da ich zeos nicht kenne, tu ich mir etwas schwer, aber versuchen kann ich es ja ;)

die syntax ist vermutlich die selbe wie bei ADO...

Delphi-Quellcode:
procedure GetTableNames(List: TStrings; SystemTables: Boolean = False);
d.h. als parameter brauchst du eine StringList, in welcher die tabellennamen zurückgeliefert werden und
nachdem dich die systemtabellen nicht sonderlich interessieren, kannst du dort 'false' übergeben.

als StringList kannst du auch gleich TStrings der TListBox, oder TComboBox verwenden
oder du weist die tabellennamen anschliessend zu

zb
Delphi-Quellcode:
{$UNTESTED}
  SL:= TStringList.Creat;
  try
    Zeos(?)Connection.GetTablenames(SL,false);
    ListBox.Items.Assign(SL);
  finally
    SL.Free;
  end;
end;
oder
Delphi-Quellcode:
{$UNTESTED}
  Zeos(?)Connection.GetTablenames(ComboBox.Items,false);
mfg, stefan

pmc 25. Aug 2004 12:50

Re: Anzahl sowie namen der TABLES aus DB auslesen mit zeos
 
Hallo, ich mal wieder,

Also die prigramierung mit Zeos gestalltet sich schwerer als erhofft!


also ich habe versucht die tables auszulesen mit :

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var list : TStringList;
    i : Integer;
begin
  list := TStringlist.Create;
  sp_Database.Connect;
  sp_database.GetTableNames('*.*',true,list);
  sp_Database.Disconnect;
  for i:=0 to List.Count-1 do sp_List.Items.Add(List.Text);
  list.Free
end;
Allerdings ist meine Listbox leer geblieben.
Ein freund(er hat die DB angelegt) von mir meinte aber das da schon zwei tables drauf wären....also
follglich ist meine nächste frage :

Wie erstelle ich mit zeos eine neue table?
(um zu testen ob die procedure wirklich funzt)

MFG PMC

DataCool 25. Aug 2004 13:01

Re: Anzahl sowie namen der TABLES aus DB auslesen mit zeos
 
Hi,

einfach ne Query mit nem Sql "Create Tabele blabla"

pmc 25. Aug 2004 13:13

Re: Anzahl sowie namen der TABLES aus DB auslesen mit zeos
 
Hi

Also die anweisung blabla hab ich ja noch nirgends entdeckt....
Sorry aber ich bin was sql angeht ein ziemlicher anfänger....
so nen codeschnipsel wäre äusserst nett und hilfreich!

lume96 25. Aug 2004 13:19

Re: Anzahl sowie namen der TABLES aus DB auslesen mit zeos
 
Zitat:

Zitat von pmc
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var list : TStringList;
    i : Integer;
begin
  list := TStringlist.Create;
  sp_Database.Connect;
  sp_database.GetTableNames('*.*',true,list);
  sp_Database.Disconnect;
  for i:=0 to List.Count-1 do sp_List.Items.Add(List.Text);
  list.Free
end;
Allerdings ist meine Listbox leer geblieben.

Liegt das Problem nicht hier :?:
Delphi-Quellcode:
  for i:=0 to List.Count-1 do sp_List.Items.Add(List.Text);
ich würde
Delphi-Quellcode:
  for i:=0 to List.Count-1 do sp_List.Items.Add(List[i]);
vorschlagen.

MfG
Lutz

pmc 25. Aug 2004 13:37

Re: Anzahl sowie namen der TABLES aus DB auslesen mit zeos
 
Hi,


zunächstmal danke für die hilfe aber das funzt auch nicht, das mit dem hier :

Delphi-Quellcode:
for i:=0 to List.Count-1 do sp_List.Items.Add(List.Text);
war nur vom ausprobieren so übrig geblieben.

nomalerweise hab ich das mit sp_list.strings[i] gemacht das funzt so auch überall.
Also ich glaube das eben keine table existiert... und deswegen nochmal meine frag wie mache ich das?

MFG PMC

lume96 25. Aug 2004 14:46

Re: Anzahl sowie namen der TABLES aus DB auslesen mit zeos
 
Schau Dir doch mal das ZControlsExample an, dass bei Zeos dabei ist.

Auf dem Info-Tabsheet machen die das. Hab's nur kurz überflogen; scheinbar arbeiten die da mit der Metadata-Komponente (TZSQLMetaData).

MfG
Lutz

tuxhol 25. Aug 2004 15:22

Re: Anzahl sowie namen der TABLES aus DB auslesen mit zeos
 
Zitat:

Zitat von pmc
Hi

Also die anweisung blabla hab ich ja noch nirgends entdeckt....
Sorry aber ich bin was sql angeht ein ziemlicher anfänger....
so nen codeschnipsel wäre äusserst nett und hilfreich!

Eine Query-Komponente aufs Formular ziehen (Für eine MySQL-Datenbank nimmst Du ZMySqlQuery, für andere Datenbanken entsprechend eine andere)

Dann irgendwo einen Button hinlegen, Doppelklick darauf und folgenden Code eintragen:

// SQl-Anweisung neuen Table erstellen
ZMySqlQuery1.SQL := 'CREATE TABLE tablename';

// SQL ausführen
ZBatchSql1.ExecSql;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:51 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz