Domanda

Dopo aver trascorso alcuni giorni di ricerca e cercando di capire questo assolo, potrei davvero usare un aiuto.

Sto cercando di interrogare il database AS400 direttamente da .NET senza l'uso di un file di programma AS400.Ho pochissimo supporto diverso da "andare avanti e provare" dagli amministratori AS400 (sono stato detto quello che sto tentando non è stato fatto qui prima).

Mi piacerebbe davvero usare CWBX.Il codice seguente si connette con successo, ma potrei davvero usare un puntatore nella giusta direzione su come creare una query:

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)
.

Sono molto aperto a qualsiasi altro metodo / suggerimento.Ho cercato guide dal sito di IBM e MSDN e né effettivamente interrogano direttamente senza l'uso di un file di programma AS400.È anche possibile?

È stato utile?

Soluzione

Ecco una semplice app console che recupera tutti i record da una tabella e visualizzano il conteggio della riga.

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
.

Altri suggerimenti

Il servizio RemoteCmd è fondamentalmente un demone REXCD. Non sono sicuro del motivo per cui stai scherzando quando vuoi semplice interrogare una tabella DB. Il DB integrato in IBM I è accessibile tramite ODBC, OLEDB, JBDC e, soprattutto, per te un fornitore ADO.NET.

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

Tutti i driver sopra citati sono disponibili nel software IBM I Access. Si noti che mentre alcune delle funzionalità di accesso IBM I sono a pagamento, EX 5250 Emulazione, e devi aver comprato una licenza; I fornitori di dati di accesso ai dati non sono.

Incluso nel pacchetto IBM I Access è una raccolta di documentazione nota come "Programmers Toolkit"

Un esempio utilizzando il fornitore di dati .NET da quel toolkit:

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

Infine, notare che il fornitore (gratuito) .net non supporta il framework Entity di Microsoft (EF). Se hai bisogno del supporto EF, dovrai pagare per DB2 Connect

http://www-03.ibm.com/ Software / Prodotti / EN / DB2-Connect-Family

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top