Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zeos auslesen der Datentyen MySQL Datenbank??? (https://www.delphipraxis.net/17983-zeos-auslesen-der-datentyen-mysql-datenbank.html)

betsche2k4 12. Mär 2004 12:50


Zeos auslesen der Datentyen MySQL Datenbank???
 
Ich brauche einen Tip wie man die Datentypen von Feldern einer Tabelle in meiner MySQL Datenbank auslesen kann, via Zeos!!!
Kann mir da jemand helfen wäre echt nett? :?: :gruebel:

Euer Betsche2k
:hi:

Plague 12. Mär 2004 12:52

Re: Zeos auslesen der Datentyen MySQL Datenbank???
 
Das funktioniert über die Query Komponente (im ZEOS Ordner vorhanden).
Damit rufst ab und kannst auch schreiben...

Gruß
Thomas

betsche2k4 12. Mär 2004 13:09

Re: Zeos auslesen der Datentyen MySQL Datenbank???
 
Hi Thomas,

danke für den tipp, aber wie denn genau? Über die Query-Componente bekomm ich nur die Feldnamen, aber ich bräuchte halt noch die Datentypen dazu und vielleicht wer noch einen Primärschlüssel besitzt! Wie geht das denn da, oder geht das nur über SQL?

Betsche2k

tobster 20. Jul 2004 19:28

Re: Zeos auslesen der Datentyen MySQL Datenbank???
 
Hab jetzt dasselbe Problem. Gibt's dazu bereits 'ne Lösung?

Sharky 20. Jul 2004 21:33

Re: Zeos auslesen der Datentyen MySQL Datenbank???
 
Zitat:

Zitat von tobster
Hab jetzt dasselbe Problem. Gibt's dazu bereits 'ne Lösung?

Hai tobster,

sollte eigentlich mit den Standardbefehlen des mySQL-Server gehen.
Das liefert Dir z.B. die Felder einer Tabelle:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ZQuery1.Close;
  ZQuery1.SQL.Text := 'SHOW FIELDS FROM tabelle';
  ZQuery1.Open;
end;
oder SHOW [OPEN] TABLES [FROM datenbank] [LIKE platzhalter]
oder SHOW [FULL] COLUMNS FROM tabelle [FROM datenbank] [LIKE platzhalter]
oder SHOW INDEX FROM tabelle [FROM datenbank]
oder SHOW TABLE STATUS [FROM datenbank] [LIKE platzhalter]

tobster 21. Jul 2004 05:31

Re: Zeos auslesen der Datentyen MySQL Datenbank???
 
Wie gesagt, die Felder zu listen ist nicht das Problem, das geht recht einfach, aber die zugehörigen Datentypen herauszufinden. Das liefert mir meines Erachtens SHOW nicht...

---Edit---
SHOW COLUMNS FROM `<TABELLE>`

machts in der zweiten Spalte... Muss ich mal sehen, wie ich da ran komme.

THX

krümel 21. Jul 2004 10:45

Re: Zeos auslesen der Datentyen MySQL Datenbank???
 
Hallo

so ich beteilige mich mit an diesem Thema da ich auch einige fragen habe ;),
eins Vorweg ich Programmiere C++, jetzt nicht die Stirn runzeln :-), hoffe das
dennoch geholfen wird. Die Delphi Foren sind nunmal besser und stärker vertreten.

Ok mein Problem ist das selbe ichmöchte gerne die DAtentypen zb Float(4,2) und
bei Key's und zusammengesetzten Key's nicht nur den Namen vom Schlüssel haben
sondern auch die Spalten dazu.

Folgendes habe ich bisher Programmiert, (benutze die DBExpress Komponenten von Borland)

SQLConnection1->GetFieldNames(ListBox1->Items->Strings[ListBox1->ItemIndex], ListBox2->Items);
- hier hole ich mir die Tabellen Namen und lasse mir diese in einer ListBox ausgeben

SQLConnection1->GetIndexNames(ListBox1->Items->Strings[ListBox1->ItemIndex], ListBox3->Items);
- hier holle ich mir die Schlüssel Namen und lasse mir dies ebenfalls in einer ListBox ausgeben

nun habe ich esso Programmiert das man bei einem DoppelClick auf den entsprechenden Tabellen
Namen in der List Box eine Select * From anfrage gemacht wird

SQLQuery1->SQL->Text = "Select * from " + ListBox1->Items->Strings[ListBox1->ItemIndex] + ";";
SQLQuery1->Open();
- das sieht dann so aus

so dann lasse ichmir das ganze in einem StingGrid ausgeben, "nur" leider kann nur die Zeilen
Inhalte (also das was drin steht)

int ypos = 1;
SQLQuery1->First();
while (!SQLQuery1->Eof)
{
StringGrid1->Cells[0][ypos] = ypos;
for (int j = 0; j < ListBox2->Count; j++)
{
StringGrid1->Cells[j+1][ypos] = SQLQuery1->FieldByName(ListBox2->Items->Strings[j])->AsString;
}
ypos++;
SQLQuery1->Next();
}

dasganze Funktioniert super, nur wie oben schon geschrieben, mit demInhalt, nunmöchte ich
aber in der zb. ListBox neben den Spalten Namen auch noch gleich den Datentyp schreiben.
Aber wie, der Ansatz den andre oben beschrieben habe komme ichnicht raus:

SQLQuery1->SQL->Text = "SHOW COLUMNS FROM " + ListBox1->Items->Strings[ListBox1->ItemIndex] + ";";
SQLQuery1->Open();

so den Befehl nimmt er an, aber wie rufe ich das dann ab, irgendwie muss ich es ja
wohin ausgeben,und daran binich jetzt gescheitert, bei der select * from anfrage habe
ich mir mit SQLQuery1->FieldByName() alles ausgeben lassen, gibt es so etwas auch für
Key's & Datentypen????? Uff ist etwas mehr geworden, hoffe ihr seht da noch durch über
eine Antwort würde ichmich sehr freuen, da dies das einzige ist was meinem Programm
noch fehlt. Schon einmal Vielen Dank im Voraus,

Tschüß

Memo 21. Jul 2004 11:21

Re: Zeos auslesen der Datentyen MySQL Datenbank???
 
SQL-Code:
DESCRIBE Tabelle Feld
Ausgeben könnte man es zB. so(oder wie man es auch immer braucht):
Code:
Listbox1.Items.Text:= Query1Type.AsString;

tobster 21. Jul 2004 18:31

Re: Zeos auslesen der Datentyen MySQL Datenbank???
 
Zitat:

Zitat von Memo
SQL-Code:
DESCRIBE Tabelle Feld
Ausgeben könnte man es zB. so(oder wie man es auch immer braucht):
Code:
Listbox1.Items.Text:= Query1Type.AsString;

Welche Komponente versteckt sich denn hiner 'Query1Type'?

Memo 22. Jul 2004 09:29

Re: Zeos auslesen der Datentyen MySQL Datenbank???
 
Zitat:

Welche Komponente versteckt sich denn hiner 'Query1Type'?
In dem Fall DAC, aber auch bei Zeos bleibt es gleich.


//Edit(ist mir jetzt erst aufgefallen): Query1Type heißt Query1(DAC-Komponente), Type ist das Feld, welches ausgegeben wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:03 Uhr.

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