2016-11-10 41 views
0

私は、DTSと同じ機能(AS400からSQL Serverへのデータ転送)を持つアプリケーションを持っています。私が作ったスケジュールに従ってこのアプリケーションを実行する必要があります。WindowsでVBアプリケーションを実行するタスクスケジューラ

ERROR [HY000][IBM][System i Access ODBC Driver]Missing system name needed for connection.

これは私がAS400への接続を行うために使用するスクリプトです:私はそれを開くが、私はタスクスケジューラに入れた場合、それは常にエラーを示している場合、このアプリケーションが正常に動作します。私はそれを正常に(スケジューラではない)実行すると、エラーなしで実行されます。誰もそれを修正する方法を知っていますか?

Public Sub takeconnectionas400() 
    _inifile.Baca("Config.ini", "AS400") 
    system = _inifile.system 
    uid = _inifile.uid 
    pwd = _inifile.pwd 
    dbq = _inifile.dbq 
    db_as = "Driver={Client Access ODBC Driver (32-bit)};System=" & system & ";Uid=" & uid & ";Pwd=" & pwd & ";Dbq=" & dbq & "" 
    conn_as = New OdbcConnection(db_as) 
    Try 
     If conn_as.State = ConnectionState.Closed Then 
      conn_as.Open() 
     End If 
    Catch ex As Exception 
     MsgBox(Err.Description, MsgBoxStyle.Critical, "Error") 
    End Try 
End Sub 
+2

これは少し長めですが、通常のユーザーで接続が定義されている場合は、スケジュールされたタスクユーザーに表示されないことがあります。 –

+1

さらに、 '_inifile.Baca'を呼び出すときに' config.ini'の絶対パスを指定してください。 –

+0

いいえ、iniファイルを使わないようにテストするとうまくいきます。しかし、なぜiniFileを使用すると、エラーが表示されるのですか?(私はタスクスケジューラにiniファイルを置くべきですか? –

答えて

0

あなたのプログラムはあなたのiniファイルを見つけられませんでした、またはあなたのコネクション情報を含んでいません。既にあなたのexeファイルの同じディレクトリにあなたのinifileを入れてみてください。そうでない場合は、あなたのテストにあなたのプログラムにconnexionstringを直接書き込もうとしてください。

関連する問題