[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2003
    Beiträge
    8

    Red face Datenstruktur dqData incwbx.dll

    Hallo zusammen,

    Seit ein paar Tagen will ich per VB auf die AS 400 zugreifen. Dazu bietet sich die mit Client Express mitinstallierte cwbx.dll an, da dort die ganzen Methoden definiert sind. Anmelden funktioniert auch wunderbar, nur leider kann ich keinen Beitrag in eine Dataqueue schreiben, weil man dazu den Datentyp dqData benötigt. Der ist aber leider nicht definiert. Wo bekomme ich den her oder wie sieht der in VB aus?

    Danke für jede Hilfe.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.247

    Post

    Verwende diese DLL nicht direkt, da dies nur in C++ möglich ist.

    Wähle in den Steuerelementen "Rechte Maustastet->Komponenten..." in der Liste die "ClientAccess ControlLibrary" aus.
    Du erhältst dann ein Steuerelement "cwbDataQueueTextBox" über die du dann alles steuern kannst.
    Wenn du das für den Anwender verbergen willst, da setze die Eigenschaft
    Visible=false.
    Sogar die F1-Hilfe funktioniert.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Feb 2003
    Beiträge
    8

    Post

    War einige Zeit weg, daher die späte Reaktion.

    Erst mal Danke für den Tip, unter VB hat es auch funktioniert. Leider muss das ganze auch unter ASP klappen, also in VB als COM+ Objekt erstellt und dann unter ASP mit CreateObject aufgerufen, und genau da funktioniert es nicht mehr. Hat noch irgendjemand einen Tip? Kriegt auch ein Bussi von mir :-)))))

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.247

    Post

    Als erstellbare Objekte gibts dann noch die Lib "cwbautsv" mit dem Objekt "cwbDataQueue".
    Diese kannst du mittels CreateObjekt erstellen.

    Probiers vorher per VB aus in dem du den Projekt-Verweis "Client-Access Object Library" verwendest.
    Es wird ein wenig komplizierter.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Feb 2003
    Beiträge
    8

    Post

    Danke für die Hilfe bis jetzt, leider komme ich nicht weiter.

    Wenn ich in cwbautsv die Klasse cwbDataQueue instantiiere, dann kann z.B. cwbdqRead trotzdem nicht aufrufen, weil z.B. "data as Object" als ein Parameter darin auftaucht. Da kann ich nur sagen "hä?" Wo finde ich so ein Objekt, wie es offensichtlich der Parameter data sein muß? Der Typ von data Buffer wird garnicht angegeben. Irgendwie komme ich nicht vorwärts. Gibt es irgendwo nen Link wo ich weiterlesen kann? Bei IBM habe ich zwar schon nachgesehen bevor ich hier gepostet habe, aber man kann ja nie wissen.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.247

    Post

    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Feb 2003
    Beiträge
    8

    Post

    Vielen Dank für die geduldige Hilfe :-))

    Den Link habe ich sowohl gelesen als auch ausprobiert, CWBCTRL gekapselt als VB-DLL so dass ich von einem anderen VB-Programm darauf zugreifen kann. Funktioniert wunderbar, aber ASP funktioniert mit dieser DLL nicht. Es wird nur die ASP-Seite angezeigt mit HTML-Inhalt, die VB-DLL kann auch als Object eingebunden werden (CreateObject), aber wenn ich Methoden der DLL aufrufen will, dann werden die einfach ignoriert. Mit einer Test-DLL ohne CWBCTRL klappt es wunderbar.

    Gibt es noch andere Möglichkeiten von ASP aus auf eine AS400 DataQueue zuzugreifen bzw. RemoteCommands auszuführen? Anyone?

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.247

    Post

    Der Fehler liegt darin, dass die ASP auf dem Client läuft, d.h., die Erstellung von Objekten zur Laufzeit sowie der Zugriff auf die AS/400 erfolgt vom Client.
    Das bedeutet wiederum eine Installation von CA/400 auf dem Client !
    Das ist bestimmt nicht in deinem Sinne, dass der Client Zugriff auf deine AS/400 erhält.

    Du mußt die Funktion auf den Server verlegen, der wiederum die AS/400-Verbindung sowie eine Default-Anmeldung durchführt (CWBLOGON).
    Die ASP führt dann einen Serverzugriff aus, der dann die Datenübertragung von/zur AS/400 durchführt.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Feb 2003
    Beiträge
    8

    Post

    ASP läuft nie auf dem Client, da es unabdingbar auf den IIS angewiesen ist. Es wäre sicherlich in MS Interesse, wenn jeder der im Web surft einen IIS installiert haben muss :-) aber zum Glück ist das nicht der Fall. Mein "Versuchsaufbau" ist ein IIS Server, auf dem selben Rechner ist Client Access Express installiert. Dort werden auch die ASP-Scripts ausgefüht, wenn eine Seite abgerufen wird. Dieses ASP-Script soll dann die DLL aufrufen, die ich in VB gestrickt habe. Macht es aber nicht. Falls ich noch auf eine Idee kommen sollte (muss ich eigentlich sogar, weil sonst der Kunde weint) werde ich sie hier posten. Aber vielen Dank für die vielen guten Tips und die Hilfsbereitschaft.

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.247

    Post

    Vielleicht mußt du doch etwas tiefer boren.
    Die CWBCTRL benötigt ja ein FORM-Objekt um zu funktionieren. Vielleicht verhindert ja ASP das Erstellen von Fenstern ?!

    Die CWBAUTSV benötigt das nicht. Schau dir noch einmal das Beispiel vballobj.exe und da den Code von vballobj.frm an.
    Hier wird mit der Bibliothek cwbx gearbeitet. Das ist zwar ungleich komplizierter, kann aber direkt aus den entsprechenden Scripts erstellt werden:

    Dim myas400
    Dim mydtaq
    Dim myConv
    Dim myData

    Set myas400 = CreateObject("cwbx.As400system")
    Set mydtaq = CreateObject("cwbx.DataQueue")
    Set myConv = CreateObject("cwbx.StringConverter")

    myas400.Define "MYSYS"
    myas400.Connect 6 'cwbcoServiceDataQueues

    mydtaq.LibraryName = "MYLIB"
    mydtaq.QueueName = "MYDTAQ"
    Set mydtaq.System = myas400
    mydtaq.Write myConv.ToBytes("Testdaten"), True ' Schreiben + ggf. Fehlermeldung
    myData = myConv.FromBytes(mydtaq.Read)

    Sollen die Daten noch in Ebcdic umgesetzt werden (lesbar für AS/400) muss noch das Objekt "CodePageConverter" verwendet werden.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  11. #11
    Registriert seit
    Feb 2003
    Beiträge
    8

    Cool

    SUPER! Der Hinweis auf den StringConverter war genau das, was gefehlt hat. Den Rest hatte ich schon mal so, aber ohne den StringConverter eben, und deshalb hat es immer einen Fehler gegeben an der Stelle. Jetzt habe ich nicht nur die DataQueue im Zugriff sondern auch noch CL-Aufrufe und Programm-Aufrufe. Vielen Dank für die Hilfe, jetzt kann ich wieder ruhig schlafen :-)

Similar Threads

  1. Datenstruktur mit Mehrfachvorkommen
    By JP in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 09-08-06, 08:35
  2. Datenstruktur
    By Bratmaxxe in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 24-07-06, 13:25
  3. Externe Datenstruktur / Datenzuweisung
    By Schorsch in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 09-12-05, 13:58
  4. Datenstruktur Qualified
    By harkne in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 19-08-05, 13:06
  5. Antworten: 5
    Letzter Beitrag: 06-05-04, 14:51

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •