質問

いくつかの日数を投入した後、これをソロで把握しようとしている、私は本当にいくつかの助けを使うことができました。

AS400プログラムファイルを使用せずに、.NETから直接AS400のデータベースを照会しようとしています。AS400管理者から「先に進んでみてください」以外のサポートがほとんどありません(私が今ここで行われていないものが言われています)。

CWBXを本当に使用したいです。以下のコードは正常に接続しますが、クエリの構築方法については正しい方向に本当にポインタを使用できます。

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

他の方法/提案にはとてもオープンしています。私はIBMのサイトとMSDNのガイドを探しており、実際にはAS400プログラムファイルを使用せずに実際には直接問合せをしませんでした。これは可能な限り?

です

役に立ちましたか?

解決

これは、あるテーブルからすべてのレコードを取得して行数を表示する簡単なコンソールアプリケーションです。

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
.

他のヒント

RemoteCmdサービスは基本的にREXCDデーモンです。 DBテーブルを簡単に照会するときにめちゃくちゃな理由がわかりません。 IBM iの統合DBは、ODBC、OLEDB、JBDC、および最も重要なことにADO.NETプロバイダーを介してアクセス可能です。

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

上記のドライバはすべて、IBM iアクセスソフトウェアで入手できます。 IBM iアクセス機能のいくつかは、充電可能な、EX 5250エミュレーションであり、あなたはライセンスを購入した必要があります。データアクセスプロバイダはそうではありません。

IBM I Accessパッケージに含まれているProgrammers Toolkit "

として知られるドキュメントのコレクションです。

そのツールキットから.NETデータプロバイダを使用した例:

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

最後に、(フリー).NETプロバイダは、マイクロソフトのエンティティフレームワーク(EF)をサポートしていません。 EFサポートが必要な場合は、DB2 Connect

の支払いが必要です。

http://www-03.ibm.com/ソフトウェア/製品/ en / db2-connect-family

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top