2010-03-24 2 views
3

나는 내 쿼리에서 작동하도록 매개 변수를 얻을 수없는 것을 알아 내려고 노력하고 있습니다. VB.NET에서 AS/400에 대한 쿼리를 작성하는 코드가 있습니다. Windows 용 IBM Access가 설치되어 있으며 매개 변수가없는 쿼리를 사용할 수 있습니다. 내 쿼리 (예 : @MyParm)에 매개 변수를 포함 할 때마다 작동하지 않습니다. 마치 매개 변수를 사용해야하는 값으로 대체하지 않는 것과 같습니다. SQL0206 : 나는 다음과 같은 오류 얻을AS400/DB2에 연결할 때 .NET에서 OLEDB 매개 변수 사용

: 여기 내 코드의

지정된 테이블에 열 @MyParm을하지 여기 내 코드입니다 :

Dim da As New OleDbDataAdapter 
Dim dt As New DataTable 

da.SelectCommand = New OleDbCommand 
da.SelectCommand.Connection = con 

da.SelectCommand.CommandText = "SELECT * FROM MyTable WHERE Col1 = @MyParm" 
With da.SelectCommand.Parameters 
    .Add("@MyParm", OleDbType.Integer, 9) 
    .Item("@MyParm").Value = 5 
End With 

' I get the error here of course 
da.Fill(dt) 

내가 5의 문자와 @MyParm을 대체 할 수 있으며, 그것은 잘 작동합니다. 내가 여기서 무엇을 놓치고 있니? 항상 SQL Server에서이 작업을 수행하지만 AS400에서이 작업을 처음 시도합니다.

+0

나는이 질문이 http://stackoverflow.com/questions/493119/as400-sql-query-with-parameter와 현저한 유사점을 지니고 있다고 말하고 싶지만, 나는 문제 도메인으로 충분히 익숙하지 않다. 복제. – spender

답변

1

당신은 맞습니다. 해결책을 담고있는 AS400 SQL query with Parameter과 같은 질문입니다.

+0

OLEDB 연결을 사용하는 것을 발견했습니다. 명명 된 매개 변수를 사용할 수 없습니다. 대신 물음표를 사용하고 매개 변수를 앞에 @ 기호가있는 열 이름으로 추가해야합니다. 명명 된 매개 변수를 사용하려면 IBM 커넥터를 사용해야합니다. –

1

참고 사항 : Host Integration Server 2006은 명명 된 매개 변수를 지원합니다.