Mailinglisten-Archive |
Hallo,
ich habe Code in Visual Basic 6 um über eine COM-Schnittstelle mit einem
Programm zu kommunizieren.
Leider habe ich keine Ahnung von VB6 und damit Probleme dies in PHP
umzusetzen. Kennt sich jemand damit aus und kann mir einer von Euch ein paar
Tips geben?
VB Code:
-----------
Dim Se As New DiamantSession
Dim OK As Boolean
OK = Se.Load("")
Se.GetField("User").SetValue("SUP")
Se.GetField("Password").SetValue("")
Se.GetField("DatabaseServer").SetValue("server1")
Se.GetField("Company").SetValue("026")
Se.GetField("SystemDatabase").SetValue("System")
Se.GetField("DataSource").SetValue("sasqlsrv.dll")
OK = Se.Save()
Dim Customer As New DiamantCustomer
Customer.GetField("AccountNo").SetUsed(TRUE)
Customer.GetField("Designation").SetUsed(TRUE)
OK = Customer.Load("10005")
MsgBox (Customer.GetField("AccountNo").GetValue())
MsgBox (Customer.GetField("Designation").GetValue())
Mein Versuch in PHP: (Fehlermeldungen siehe unten)
-------------------------
<?
$dia = new COM("DiamantSession") or die ("Keine Verbindung");
$ok = $dia->load("");
$ok->User = "SUP";
$ok->Password = "";
$ok->DatabaseServer = "diamant";
$ok->Company = "999";
$ok->SystemDatabase = "sasystem";
$ok->DataSource = "saoracle.dll";
$ok = $dia->save();
// Bis hierher gibt es keine Fehlermeldung, aber dann ...
// Wie setzte ich den VB Code um?
$cust = new COM("DiamantCostumer");
$cust->GetField("AccountNo").SetUsed(TRUE);
$cust->GetField("Designation").SetUsed(TRUE);
$ok = $cust->Load("10005");
$nummer = $cust->GetField("AccountNo").GetValue();
$designation = $cust->GetField("Designation").GetValue();
print "Nummer: $nummer Des: $designation";
?>
Erzeugte Fehlermeldungen:
--------------------------------
Warning: Invalid ProgID, GUID string, or Moniker: Ungültige Syntax in
c:\daten\web\test\com.php on line 14
Fatal error: Call to a member function on a non-object in
c:\daten\web\test\com.php on line 16
Gruss
Ron Opitz
php::bar PHP Wiki - Listenarchive