![]() |
Re: MySQL ohne Komponenten
So, das hat super funktioniert (ich nutze eine Listview zur Anzeige mit Namen lv1, vsReport mit 6 Spalten):
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var Con: PMYSQL; host, user, pass, db: PChar; Row: PMySQL_Row; Res: PMYSQL_RES; query: string; i,j: integer; Item: TListItem; begin host := 'localhost'; user := 'root'; pass := ''; db := 'dptest'; Con := mysql_init(nil); if Assigned(Con) then try if Assigned(mysql_real_connect(Con, host, user, pass, db, 3306, nil, 0)) then begin query := 'SHOW FIELDS FROM blubb'; mysql_real_query(Con,PChar(query), Length(query)); Res := mysql_store_result(Con); if Assigned(Res) then for i := 0 to mysql_num_rows(Res) - 1 do begin Row := mysql_fetch_row(Res); Item := lv1.Items.Add; Item.Caption := Row[0]; for j := 1 to mysql_num_fields(Res) - 1 do Item.SubItems.Add(Row[j]); end; end else ShowMessage(mysql_error(Con)); finally mysql_close(Con); end; end; |
Re: MySQL ohne Komponenten
Wo gibt es denn die aktuellen MySQL pas files und dlls die benoetigt werden?
|
Re: MySQL ohne Komponenten
Die DLLs liefert MySQL selbst mit (denke ich zumindest, ich habe sonst keine installiert) und die *.pas bekommst Du
![]() |
Re: MySQL ohne Komponenten
Habe mal noch eine Frage, speziell zum Typ 'ENUM'
und zwar wenn ich ein Auswahlfeld in die Tabelle machen will, schicke ich diese Query an den MySQL
Delphi-Quellcode:
Aber der Server nimmt diese Query nicht an, ich weis das es an der Text Formatierung des ENUM liegt, und evtl auch des Default wertes.
query := 'CREATE TABLE Auftrag (ID INT NOT NULL,Auftragsnummer INT, Kundennummer INT NOT NULL, BaustelleAnschrift TEXT, Rohranschlussmaterial TEXT, WinkelangabeInGon ENUM(''grad'', ''gon'') DEFAULT grad, Gefälleangabe ENUM(''%'', ''Promille'', ''1:'') DEFAULT %, CONSTRAINT FK_KN FOREIGN KEY FK_KN (Kundennummer) REFERENCES kunde (ID))';
Ich habe schon ein wenig rumprobiert, bekomme es allerdings nicht hin. Wie müsste ich den String Formatieren das er vom MySQL richtig verarbeitet wird? Gruß Pemue [EDIT:] Noch eine Frage, kann man einem integer-Feld vorgeben welche Länge es haben MUSS (also 7 Ziffern) ??? |
Re: MySQL ohne Komponenten
'%' ist eine Wildcard, wir sich also nicht als ENUM-Element verwenden lassen (oder ich kenne den entsprechenden Trick nicht), und was meinst Du mit der Anzahl der Stellen? Ob eine Zahl 7-stellig ausgegeben wird, ist IMHO eine Frage der Ausgabeformatierung.
[edit] Ansonsten schau mal, ob ZeroFill Dir weiterhilft (bin aus der Beschreibung nicht ganz schlau geworden) [/edit] |
Re: MySQL ohne Komponenten
Zitat:
Eine Kundennummer ist z.B. immer 7 Stellig, also soll durch das Feld erzwungen werden das dort nur 7Stellig-vor-dem-Komma-Zahlen gültig sind! |
Re: MySQL ohne Komponenten
Versuch es mal mit Constraints.
|
Re: MySQL ohne Komponenten
Danke DeddyH das hat funktioniert...
nun habe ich noch eine frage, ich will eine Combobox mit den vorhandenen tabellen einer Datenbank füllen. zu Testzwecken wollt ich die erstmal in ein Memo schreiben. Mein code schaut so aus:
Delphi-Quellcode:
allerdings schimpft er mich schon vor dem testen das _myRes kein Integer ist, aber ich will ja auch nen string rausbekommen, bzw mehrere.
procedure TForm1.Button1Click(Sender: TObject);
var _myRes: PMYSQL_RES; begin query := 'SHOW TABLES FROM apitest'; _myRes:= mysql_real_query(_myCon,Pchar(query), Length(query)); Memo1.Text := _myRES; end; Wie also geh ich mit dieser query um? also wie fange ich sie ab und komme dann auf meine Tabellennamen? das
Delphi-Quellcode:
habe ich so deklariert wiel ich dachte das ist dann richtig.
_myRES: PMYSQL_RES
Sorry bin ein ziemlicher anfänger, aber ich hoffe mir kann doch jemand helfen. Vielen Dank schonmal für eure Hilfe! Gruß Pemue |
Re: MySQL ohne Komponenten
Schau Dir nochmal Zeile 23 aus #251 an:
Delphi-Quellcode:
Ich hoffe, das ist nun klarer geworden ;)
Res := mysql_store_result(Con);
|
Re: MySQL ohne Komponenten
wo finde ich diese Zeile? in der mysql.pas? dort habe ich sie leider nicht finden können
[edit:] habe es gefunden, aber ich bekomme für _myRes (von PMYSQL_RES) nur '$BE2428' zurück. und es nützt auch nichts wenn ich das dann als string caste |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz