Question

Après avoir passé quelques jours à rechercher et à essayer de comprendre ce solo, je pourrais vraiment utiliser de l'aide.

J'essaie d'interroger la base de données de l'AS400 directement à partir de .NET sans l'utilisation d'un fichier de programme AS400.J'ai très peu de soutien autre que "aller de l'avant et essayer" des administrateurs AS400 (on me dit ce que j'essaye n'a pas été fait ici avant).

J'aimerais vraiment utiliser cwbx.Le code ci-dessous se connecte avec succès, mais je pourrais vraiment utiliser un pointeur dans la bonne direction sur la manière de créer une requête:

Dim As400 As New AS400System
Dim AsProgram As New cwbx.Program
Dim AsCommand As New cwbx.Command
Dim strQuery As String

As400.Define("AS400")
As400.UserID = ""
As400.Password = ""
As400.IPAddress = ""
As400.Connect(cwbcoServiceEnum.cwbcoServiceRemoteCmd)

If As400.IsConnected(cwbcoServiceEnum.cwbcoServiceRemoteCmd) = 1 Then
    MsgBox("Valid Connection")
Else
    MsgBox("Invalid Connection")
    Exit Sub
End If

'-----------------------------------------------------------------------------------------
'Trying to figure out first if this syntax is correct, and if so... where/how to call it??
'-----------------------------------------------------------------------------------------
strQuery = "SELECT * FROM Library.File WHERE FILEFIELD='Criteria'"
' ---

AsProgram.LibraryName = ""
AsProgram.ProgramName = "" '?
AsProgram.system = As400

'Assuming this will end up being a program call?
'AsProgram.Call()

As400.Disconnect(cwbcoServiceEnum.cwbcoServiceRemoteCmd)

Je suis très ouvert à toutes les autres méthodes / suggestions.J'ai cherché des guides au site de IBM ainsi que MSDN et ne pose aucun interrogation direct sans l'utilisation d'un fichier de programme AS400.Est-ce même possible?

Était-ce utile?

La solution

Voici une simple application de console qui récupérera tous les enregistrements d'une table et affichera le nombre de lignes.

Imports System.Data.OleDb

Module Module1

  Sub Main()
    Dim cmd As New OleDbCommand
    Dim table As String = "YOUR TABLE"
    cmd.CommandText = "SELECT * FROM " & table
    Dim ip As String = "YOUR AS/400 IP GOES HERE"
    Dim user As String = "YOUR USER ID"
    Dim pass As String = "YOUR PASSWORD"
    Dim defaultLib As String = "YOUR LIBRARY"
    Dim connstring As String = "Provider=IBMDA400;" & _
                               "Data Source=" & ip & ";" & _
                               "Force Translate=0;" & _
                               "Default Collection=" & defaultLib & ";" & _
                               "User ID=" & user & ";" & _
                               "Password=" & pass
    cmd.Connection = New OleDbConnection(connstring)
    cmd.Connection.Open()
    Dim dr As OleDbDataReader = cmd.ExecuteReader
    Dim dt As New DataTable
    dt.Load(dr)

    Console.WriteLine(dt.Rows.Count)
    Console.WriteLine("Press ENTER to close...")
    Console.ReadLine()
  End Sub

End Module

Autres conseils

Le service RemoteCMD est essentiellement un démon REXCD. Je ne sais pas pourquoi vous jouez avec cela lorsque vous souhaitez une simple interrogation une table de dB. La DB intégrée dans IBM I est accessible via ODBC, OLDEB, JBDC et surtout pour vous un fournisseur ADO.NET.

http:// www-03. ibm.com/systems/prestation/software/i/access/windows/dotnet.html

Tous les pilotes mentionnés ci-dessus sont disponibles dans le logiciel IBM I Access. Notez que, si certaines des fonctionnalités d'accès IBM I sont facturées, EX 5250 émulation, et vous devez avoir acheté une licence; Les fournisseurs d'accès aux données ne sont pas.

Inclus dans le package d'accès IBM I est une collection de documentation appelée "Toolkit de programmeurs"

Un exemple en utilisant le fournisseur de données .NET à partir de cette boîte à outils:

  Public Sub Example()
    Dim cn As iDB2Connection = New iDB2Connection("DataSource=mySystemi;")
      Dim da As New iDB2DataAdapter("select * from mylib.mytable", cn)
  End Sub

Notez enfin que le fournisseur (gratuit) .NET ne prend pas en charge le cadre d'entité de Microsoft (EF). Si vous avez besoin d'un support EF, vous devrez payer pour DB2 Connect

http://www-03.ibm.com/ Logiciels / Produits / EN / DB2-Connect-Family

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top