AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein DBX4 - innerhalb der VendorLib String zurückgeben
Thema durchsuchen
Ansicht
Themen-Optionen

DBX4 - innerhalb der VendorLib String zurückgeben

Ein Thema von omata · begonnen am 10. Jan 2011 · letzter Beitrag vom 10. Jan 2011
Antwort Antwort
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#1

DBX4 - innerhalb der VendorLib String zurückgeben

  Alt 10. Jan 2011, 00:01
Ich drehe mich hier gerade im Kreis und komme einfach nicht weiter.

Ich habe folgende Prozedur (DBXDynalink des DBX Frameworks)
Delphi-Quellcode:
procedure TDBXDynalinkRow.GetAnsiString(DbxValue: TDBXAnsiStringValue;
                                        var AnsiStringVar: TDBXAnsiStringBuilder;
                                        var IsNull: LongBool);
var
  DBXResult: TDBXErrorCode;
begin
  DBXResult := FMethodTable.FDBXRow_GetString(
    FRowHandle, DbxValue.ValueType.Ordinal, AnsiStringVar, IsNull
  );
  if DBXResult <> TDBXErrorCodes.None then
    FMethodTable.RaiseError(FDBXContext, DBXResult, FRowHandle);
end;
Wie man hier sehr schön sehen kann, ist der Parameter "AnsiStringVar" als Referenzvariable angegeben. Innerhalb der VendorLib (DLL) sieht die Deklaration folgendermaßen aus:
Delphi-Quellcode:
function DBXRow_GetString(
  Handle: TDBXRowHandle;
  Ordinal: TInt32; Value: TDBXAnsiStringBuilder;
  out IsNull: LongBool):TDBXErrorCode; stdcall;
begin

  Result:=TDBXErrorCodes.None;
end;
Also nicht als "out" gekennzeichnet. Ok, also wird der Zeiger übergeben und ich soll jetzt den zu übergebenen String an die entsprechende Speicherstelle schreiben. Aber wie? da kommt nie etwas zurück. Wieso haben die Chaoten von Embarcadero das so deklariert?! Bei allen anderen Get-Methoden ist beim Value immer "out" angegeben, nur hier an dieser Stelle nicht!

Ich habe folgendes ausprobiert (ohne Erfolg):
  Move(text, Value, length(text));
TDBXAnsiStringBuilder = PAnsiChar;

Hoffe ihr habt da eine Idee für mich.
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: DBX4 - innerhalb der VendorLib String zurückgeben

  Alt 10. Jan 2011, 00:10
Ok, nach langem herumprobieren habe ich es jetzt geschafft. Der isNull-Parameter musste noch auf "False" gesetzt werden

Danke fürs zuhören.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:13 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