Einzelnen Beitrag anzeigen

delnu
(Gast)

n/a Beiträge
 
#38

AW: MySQL mit Delphi

  Alt 28. Jul 2013, 03:00
Hallo !

Der Tipp funktioniert so nicht = "ungültige Typ-Umwandlung", ist aber doch schon erstaunlich nah dran, wie ich später sah, obwohl das nicht alles war. Die Fehlermeldung beim eigentlichen Quelltext an der Stelle ist übrigens = "Record, Objekt oder Klassentyp erforderlich".

Es war keineswegs unhöflich, zu fragen, wieso sich jemand äußert, der nichts zum Thema beitragen kann, weil er die Sachlage nicht kennt und sich auch nicht einarbeiten will. Die wirkliche Fehlerquelle sitzt in der inkompatiblen Umgestaltung der erweiterten, neuen Unit. Und genau diese Infos hatte ich gegeben. Nach wie vor bin ich der Ansicht, daß es in manchen Fällen (so wie hier) wenig hilft, zu versuchen, an Symptomen rumzudoktern, ohne das Ganze zu kennen. Weil das alles nicht von mir stammt, war es darum völlig sachgerecht, die Quelle der neuen Unit (nebst Beispielen) zu nennen. Die alte mit Beispiel ist ja hier in diesem Thread erwähnt, der Bestandteil des Tutorials ganz genau dazu ist.

Insofern ging ich davon aus, daß sich (falls überhaupt) genau solche Menschen dazu äussern, die auch damit arbeiten und wissen, wovon die Rede ist, und sich deshalb damit zurechtfinden oder eben jemand, der genügend Kenntnisse und Interesse hat, sich entsprechend ganz neu einzuarbeiten.

Es war wirklich nicht böse gemeint, aber wenn das alles einfach wäre, hätte ich nicht gefragt.

Ohne die alte Unit "MYSQL.PAS" (Papier-Ersparnis, weil sie kleiner als die neue ist) auszudrucken und mit der neuen zu vergleichen, hätte ich die Lösung selbst sicherlich auch nie gefunden. Es ging in diesem Fall also wirklich nicht ohne Durchsicht der Quellen, nicht mal mit Bildschirm-Direktvergleich. Und es war Glück, daß sich die Problemlösung letztlich als trivialer heraus stellte, als ich befürchtet hatte.

Nun weiß ich also mehr und kann damit vielleicht selbst anderen helfen, die auch dieses Problem haben/hatten und nicht zu lösen wußten :

Beim Vergleich der originalen Unit mit der neuen fiel mir zunächst auf, daß bei der neuen Unit eine Compiler-Anweisung {$DEFINE DONT_LOAD_DLL} existiert, die verhindert, daß im INITIALIZATION-Teil die "libmysql.dll" (im Gegensatz zum Original) automatisch geladen wird.

Im Beispiel "AdressDBSQL" muß dies dann also manuell innerhalb von "Unit1" gleich zu Beginn als Erstes in "Formcreate" erfolgen = "libmysql_load(nil);"

Dann muß die kritische Zeile zu "Cols[i] := TMYSQL_FIELD(field^).name; //Field.Name;" geändert werden, und das Beispielprog funktioniert daraufhin gleichermaßen mit alter oder neuer Unit "MYSQL.PAS" !

Geändert von delnu (30. Jul 2013 um 08:05 Uhr)
  Mit Zitat antworten Zitat