![]() |
MySQL-Rückantwort empfangen
Hi @ all.
Ich versuche gerade eine Rückantwort von MySQL zu bekommen, aber ich weiß nicht wie ich sie von meinem Programm auslesen lasse.
Delphi-Quellcode:
Damit führe ich den Befehl aus. qrMain ist eine TZMySQLquery-Komponente, und Label12.Caption ist ein Username. Nun hab ich das Problem, dass ich das Ergebnis nicht mit
qrMain.SQL.Text:='SELECT COUNT( * ) FROM `users` WHERE `name` =`'+Label12.Caption+'`';
qrMain.Open;
Delphi-Quellcode:
oder ähnlichem abfragen kann. Wie bekomme ich nun heraus, ob der Count 1 oder 0 ist (sind die einzigen Werte in diesem Fall die das ganze annehmen kann)?
qrMain.FieldByName('id').AsString;
C ya. PS: Die Komponente stammt aus der ZeosDBO-Komponenten-Sammlung. |
Re: MySQL-Rückantwort empfangen
Probiers mal mit folgender Query:
Delphi-Quellcode:
qrMain.SQL.Text:='SELECT COUNT (*) as id FROM `users` WHERE `name` =`'+Label12.Caption+'`';
|
Re: MySQL-Rückantwort empfangen
2 kleine Anmerkungen:
Edit: "Firlds" -> "Fields" |
Re: MySQL-Rückantwort empfangen
Zitat:
|
Re: MySQL-Rückantwort empfangen
Zitat:
|
Re: MySQL-Rückantwort empfangen
Hi.
Erstmal danke für eure zahlreichen Antworten. Ich werd erstmal das mit den Fields probieren... Die `` setz ich immer, weil mir phpMyAdmin das immer so angezeigt hat, und da ich nie genau weiß, ob etwas, das ich einsetzen möchte (hier halt der Username) Leerzeichen enthält, schreib ich die `` lieber immer mit :) . THX erstmal. C ya. |
Re: MySQL-Rückantwort empfangen
Hi.
Jetzt hab ich 'n Problem... erstmal war der Code oben ein wenig falsch, ich hab nämlich bei dem Label12.Caption `` herumgesetzt... es müssen aber ' ' sein. Nun könnt ihr euch mein Problem schon denken... Delphi denkt bei den Hochkommata an Strings und somit wird der ganze Code falsch. Wie krieg ich das bei Delphi hin das der die ' nicht als Stringeinleitung interpretiert? C ya. |
Re: MySQL-Rückantwort empfangen
Zitat:
Hast Du schon einmal während der Entwicklung die Struktur der Datenbank angepasst - also z.B. Spalten in einer Tabelle hinzugefügt oder gelöscht? Das macht nämlich viel Spaß, wenn man auf die Ergebnisse mit dem o.g. Statement direkt zugreift - bei Verwendung der Spaltenbezeichnung brauchst Du diesen Code überhaupt nicht anfassen. Gruß Igotcha |
Re: MySQL-Rückantwort empfangen
Zitat:
SQL-Code:
in MySQL liefert dir die Tabellennamen einer Datenbank, mit einer einzigen Spalte. Nur hat diese Spalte keinen festen Namen, sondern ist abhängig davon, mit welcher DB connected ist. Da bevorzug ich
show tables
Delphi-Quellcode:
Auch, wenn du sämtliche Felder einer Tabelle durchlaufen willst in einer for-Schleife ist 2. Methode vorzuziehen.
query.Fields[0].AsString ;
Greife ich jedoch ganz normal auf feste Spalten einer Query zu, benutze ich immer
Delphi-Quellcode:
Gruß,
FieldByName('Spalte').As??? ;
|
Re: MySQL-Rückantwort empfangen
Ma darf dabei nicht vergessen, dass ein "Index by string" sacklangsam ist. Schließlich muss eine Collection durchlaufen werden und nur duch string-Vergleiche wird der richtige Index gefunden. ;)
Sowas ist vertretbar für die ParameterCollection (wird ja nur einmal vor dem Start der Query verwendet) oder in dem Fall hier, wenn nur ein Datensatz ausgespuckt wird. Bei 1,000 DS ist das eine Handbremse. IMHO ist es eigentlich genauso so ein Newbie-Kram wie FindComponent. Ich weiß, ich bin ein DB-speed-junky (musste trotzdem raus) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:22 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