Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Einer query zusätzliche Felder hinzufügen und als CheckBox editieren (https://www.delphipraxis.net/163954-einer-query-zusaetzliche-felder-hinzufuegen-und-als-checkbox-editieren.html)

baurat 29. Okt 2011 21:26

AW: Einer query zusätzliche Felder hinzufügen und als CheckBox editieren
 
Zitat:

Zitat von Bummi (Beitrag 1133335)
Mhhh, nicht auf Anhieb, hast Du mal debugt nach TFieldType des Feldes ....

In die Richtung hab ich auch schon überlegt. Das Feld schuelerid hat ja auch schon vorher beim "Import" in die MemTable für Probleme gesort, das hat sicher die gleiche Ursache.
Dachte vielleicht, dass das an einem Spezialfeldtyp von den Zeos-Komponenten liegt, dass die da irgendwas tricksen was nicht Standard ist - dem ist aber leider nicht so, die persistenten Felder in der mysql-Query sind alle die Felder aus der DB-Unit (schuelerid ist TLargeIntField).

Debuggen: Hm. In der NoAutoInc wird schuelerid as ftLargeInt richtigerweise erkannt. Warum klappts nicht? Wenn ich in NoAutoInc ftLargeInt als ftInteger erzeuge, funktionierts!?!?

Verstehe ich nicht :(

Naja, mal sehen obs noch weitere Schwierigkeiten damit gibt...
Auf jeden Fall nochmal Danke!

Bummi 29. Okt 2011 21:59

AW: Einer query zusätzliche Felder hinzufügen und als CheckBox editieren
 
hast Du eine ältere Delphiversion?
http://www.distribucon.com/blog/Comm...,guid,220.aspx

baurat 30. Okt 2011 12:20

AW: Einer query zusätzliche Felder hinzufügen und als CheckBox editieren
 
Ahhhhh, das sieht doch stark nach einer Ursache aus. Ja, ich hab noch D6 prof.

Offenbar ist die "neue" midas.dll abwärtskompatibel bis D5 (http://www.distribucon.com/midas.aspx) , deswegen hab ich sie mal runtergeladen.

Jetzt hab ich sie mal spaßeshalber in c:\windows\syswow64 für die alte ersetzt, aber das ändert offenbar nichts, gleicher Fehler. Die midas.dll wird im laufenden Projekt eingebunden (Ansicht - Debug - Module). Aber ohne den Zusatz
if (ft = ftLargeint) then Result := ftInteger
in NoAutoInc bleiben die schuelerids leer.


Naja immerhin läufts so, ist zwar seltsam aber damit werd ich wohl leben (müssen).

Trotzdem Danke!

Lg Heiko

Sir Rufo 30. Okt 2011 13:19

AW: Einer query zusätzliche Felder hinzufügen und als CheckBox editieren
 
Ich denke dafür würde ich mir eine temporäre Tabelle auf dem MySQL erzeugen und diese dann im DBGrid anzeigen lassen.

Dabei kann man auch berücksichtigen, dass man eben nur x Spalten benötigt (das CREATE TEMPORARY TABLE-Statement muss man halt anpassen).

Wenn die Eingabe abgeschlossen ist, dann trägt man einfach (geht z.B. auch mit einer StoredProcedure) die Werte aus der temporären Tabelle in die echte Tabelle ein.

Das sollte auch unabhängig von der verwendeten Delphi-Version möglich sein, da wir aus der Client-Sicht eine echte komplett beschreibbare Tabelle vor uns haben ;)

Ach ja, man darf natürlich die Feldliste nicht schon zur Design-Time komplett zuweisen, da wir ja eine dynamische Feldliste haben ;)

baurat 1. Nov 2011 23:31

AW: Einer query zusätzliche Felder hinzufügen und als CheckBox editieren
 
Zitat:

Zitat von Sir Rufo (Beitrag 1133558)
Ich denke dafür würde ich mir eine temporäre Tabelle auf dem MySQL erzeugen und diese dann im DBGrid anzeigen lassen.

Dabei kann man auch berücksichtigen, dass man eben nur x Spalten benötigt (das CREATE TEMPORARY TABLE-Statement muss man halt anpassen).

Wenn die Eingabe abgeschlossen ist, dann trägt man einfach (geht z.B. auch mit einer StoredProcedure) die Werte aus der temporären Tabelle in die echte Tabelle ein.

Das sollte auch unabhängig von der verwendeten Delphi-Version möglich sein, da wir aus der Client-Sicht eine echte komplett beschreibbare Tabelle vor uns haben ;)

Ach ja, man darf natürlich die Feldliste nicht schon zur Design-Time komplett zuweisen, da wir ja eine dynamische Feldliste haben ;)

... ja, im Prinzip läufts auf das gleiche hinaus. Hatte an eine UDF schon mal gedacht, denn es geht ja noch weiter: ich hab jetzt eine Liste mit Namen und IDs und sagen wir mal 4 Spalten zum Anklicken der Anwesenheit. Jetzt muss ich aber noch für *jedes* Feld ne extra Query an die DB schicken, ob für diesen Termin schon eine Entschuldigung vorliegt. DAs macht bei sagen wir mal 20 Schülern mal schnell 80 Anfragen, die übers Netz gehen. Die DB liegt irgendwo bei 1&1, ich hoffe dass das performancemäßig halbwegs hinhaut. Aber genau deswegen dachte ich schon an ne UDF, die das in einem Aufwasch serverseitig erledigt und mir dann nur eine Ergebnismenge liefert, anstelle 80 hin- und herzutelefonieren.

Nur sind UDF dann halt das nächste Thema, mit dem ich noch nie zu tun hatte. Ideal wäre sowas wie
select getAbsenzenliste(kursid, termin1, termin2, ...., terminx)
wobei termin1 bis terminx einfache zeitstempel sind.
Die UDF holt dann erst mal alle kursmitglieder des kurses und prüft dann für jeden jeden Termin durch. Tja, im Kopf hätt ich's schon...

Na mal sehen, aktuell klappts mit dein Einzelqueries schon mal ganz gut, das Netz darf halt nicht klemmen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:05 Uhr.
Seite 2 von 2     12   

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