Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi GetFieldNames von DataSet liefert in DLL Fehler (https://www.delphipraxis.net/32720-getfieldnames-von-dataset-liefert-dll-fehler.html)

CalganX 27. Okt 2004 17:37


GetFieldNames von DataSet liefert in DLL Fehler
 
Hi,
ich habe folgendes Problem: wenn ich die Methode GetFieldNames aufrufe funktioniert das eigentlich relativ problemlos. Jetzt habe ich das ganze aber in eine DLL packe, dann bekomme ich den Fehler
Zitat:

---------------------------
phost
---------------------------
TFieldList kann nicht zu TStringList zugewiesen werden.
---------------------------
OK
---------------------------
Jetzt habe ich mir die entsprechende Funktion umprogrammiert, dass jedes Element durchgegangen wird und dann der Liste hinzugefügt wird. Allerdings hat selbst das nicht funktioniert.

Woran kann das liegen bzw. was kann man da machen?

Chris

MrSpock 27. Okt 2004 17:52

Re: GetFieldNames von DataSet liefert in DLL Fehler
 
Hallo Chak,

sind die beiden Listen innerhalb der DLL definiert oder kommen sie von außen? Wie genau sieht die Zuweisung aus, ist es eine Zuweisung mit dem Zuweisungsoperaotor oder mittels der Assign Methode?

sakura 27. Okt 2004 17:57

Re: GetFieldNames von DataSet liefert in DLL Fehler
 
TStringList basiert auf Strings, diese können zwischen DLLs und Anwendung nur ausgetauscht werden, wenn beide DLL und Anwendung als erstes die Unit ShareMem in der Projekt-Uses Klausel haben.

...:cat:...

CalganX 28. Okt 2004 08:15

Re: GetFieldNames von DataSet liefert in DLL Fehler
 
Hi,
auch wenn alles von außerhalb kommt?
Folgendes: ich habe in meiner DLL einen EventHandler. Darin gibt es eine Methode, die die Klasse TExportDataSet heißt. Innerhalb dieser Klasse (die in einer eigenen Unit liegt, die von der DLL unabhängig ist) wird intern diese Funktion GetFieldNames verwendet.
Ein Austausch zwischen Anwendung und DLL findet also eigentlich nicht statt.

Chris

sakura 28. Okt 2004 15:27

Re: GetFieldNames von DataSet liefert in DLL Fehler
 
Zitat:

Zitat von Chakotay1308
auch wenn alles von außerhalb kommt?

Solange Strings, egal wie, hin und/oder her gehen zw. EXE und DLL bzw. DLL und DLL müssen alle beteiligten ShareMem nutzen, ja.

...:cat:...

CalganX 28. Okt 2004 15:41

Re: GetFieldNames von DataSet liefert in DLL Fehler
 
Hi,
*hoil* och nö... Das macht mir jetzt das ganze System kaputt. Aber gut, es wird nicht der Untergang des Projekts sein (zumal es nicht meins ist *g*).

Danke,
Chris

CalganX 29. Okt 2004 09:03

Re: GetFieldNames von DataSet liefert in DLL Fehler
 
Hi,
habe das jetzt gemacht und alles angepasst: ShareMem als erste Unit in der Bibliothek (.dpr) und als erste Unit in der Hostanwendung (.dpr). Der Fehler tritt aber immer noch auf. :?

Woran kann das liegen?

Chris

CalganX 29. Okt 2004 10:28

Re: GetFieldNames von DataSet liefert in DLL Fehler
 
Hi,
nach anderthalb (schreibt man das eigentlich so?) Stunden rumraten habe ich es einfach zu Fuß gemacht:
Delphi-Quellcode:
  for i:=0 to FDataSet.FieldList.Count-1 do begin
    sTemp.Add(FDataSet.FieldList.Strings[i]);
  end;
Sieht zwar unschön aus, ist aber eigentlich genau das selbe, was Delphi intern macht. Und außerdem funktioniert's jetzt.

Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 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