Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   SAP RFC über librfc32.dll (https://www.delphipraxis.net/164677-sap-rfc-ueber-librfc32-dll.html)

-=ZGD=- 24. Nov 2011 15:10

SAP RFC über librfc32.dll
 
Moin moin.

Nach Jahren mal wieder ein Posting.

Wir sitzen gerade an einem tollen Problem: Zugriff auf SAP über die librfc32.dll (neueste Version aus dem Marketplace).

Unser Handle ist immer 0, Fehlermeldung gibt es auch nicht. Wir sind mit dem Latein am Ende oder einfach nur blind ;-)

Gibt es bei der Deklaration einen Fehler?

Delphi-Quellcode:
unit main;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  Tfrm_main = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    myConStr: PCHAR;
  public
    { Public-Deklarationen }
  end;

type
    PRfcErrorInfoEx = ^TRfcErrorInfoEx;
    TRfcErrorInfoEx = record
      group  : integer;
      key    : array[0..32] of char;
      amessage : array[0..512] of char;
    end;

function RfcOpenEx(ConString: PCHAR; RFC_ERROR: PRfcErrorInfoEx): THandle; stdcall; external 'D:\_Entwicklung\SAPmitLIBRFC32_App\Win32\Debug\librfc32.dll';

var
  frm_main: Tfrm_main;


implementation

{$R *.dfm}



procedure Tfrm_main.Button1Click(Sender: TObject);
var myHandle: Long;
    data: PRfcErrorInfoEx;
    myError: TRfcErrorInfoEx;
    blubb: integer;
begin
 myConStr:= 'ASHOST=1xxx SYSNR=0 CLIENT=xxx USER=xxx PASSWD=sxxx LANG=DE';
 myHandle:= rfcOpenEx(pchar(myConStr), @myError);
 blubb:= myError.group;
end;

end.
Über Hilfe wären wir sehr froh,

Die zwei Verzweifelten.

Crossposting: http://www.delphi-forum.de/viewtopic...=654774#654774

Entwicklungssystem:

Windows 7 Ultimate x64, neuester Stand
Delphi XE2 Professional, neuester Stand

guinnes 24. Nov 2011 17:23

AW: SAP RFC über librfc32.dll
 
Hast du es mal mit PAnsiChar versucht ?
Dazu ist myConStr sowieso schon ein PChar, warum machst du da nochmal einen PChar raus ?

shmia 24. Nov 2011 17:56

AW: SAP RFC über librfc32.dll
 
Es gibt oberhalb der LibRfc32.dll auch noch ActiveX DLLs, die die Arbeit mit SAP RFCs kräftig vereinfachen.
Code:
SAP Logon Control (wdtlog.ocx)
SAP Remote Function Call Control (wdtfuncs.ocx)
SAP Table Factory (wdtaocx.ocx)

-=ZGD=- 25. Nov 2011 06:48

AW: SAP RFC über librfc32.dll
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Morgen,

nach ein bisschen Herumspielen ist der Kollege zum Ergebnis gekommen (in VB.NET), dass die Deklaration des TRFCERRORINFOEX extrem wichtig ist.

In Delphi sieht es nun so aus:

Delphi-Quellcode:
type
    PRfcErrorInfoEx = ^TRfcErrorInfoEx;
    TRfcErrorInfoEx = record
      group  : Integer;
      key    : array[0..32] of AnsiChar;
      amessage: array[0..512] of AnsiChar;
    end;
Jetzt ist die Fehlermeldung wunderbar lesbar, alle Zeichen, die nicht belegt sind, haben #0. Bin zufrieden.
Zwar ist das Handle weiterhin 0, aber das packen wir auch noch.

ActiveX kommt für uns (leider) nicht in Frage.

Danke für eure Hilfe!!

Gruß
Stefan

Edit: Ein Problem scheint auch die DLL-Version darzustellen. Mit der angehängten DLL bekomm ich zumindest dies hier zurück

Code:
  GROUP: 101
    KEY: RFC_ERROR_PROGRAM
MESSAGE:
 HANDLE: 1
Rausfinden, was RFC_ERROR_PROGRAM zu bedeuten hat und weiter geht´s...ich werde ausführlich berichten ;-)


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