なんかメモ.xlsとかいうファイルが出てきたので開いてみたらこんな内容。
多分、昔の仕事の時のメモだと思う。
SORPについての記述だったけ?
エラーメッセージの意味
cmd.Parameters.Add(New SqlClient.SqlParameter("PC_ID", PC_ID))
OleDbParameterCollection は、SqlParameter オブジェクトではなく、Null でない OleDbParameter 型オブジェクトのみ受け入れます。
SqlClientとあるようにこれはSQLServerを指している。
OleDbParameterCollection なので、
cmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("PC_ID", PC_ID))で通った。
※この時はOracleを使っていたにも関わらずSQLServerの記述であるSqlClientを使用したためエラーとなった。
OleDb.OleDbParameterで書き直したら解消されました。
cmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("PC_ID", PC_ID))
@PC_ID
ORA-00936: 式がありません。
@****のパラメータ指定はSQLServerの書き方。
Oracleの場合は:****とする必要がある。
パラメータが1つの場合は?でも代用可能だが、やっぱり1つでも明示的に指定したほうがいい。
※SQLでのパラメータ指定にミスしてた。
コマンド引数 [2] '' が無効です。
パラメータ [8] '' に既定値がありません。
パラメータを指定していなかったり、別のSQLで使ったものの使いまわしで
cmd.Parameters.Clear()をしていなかったりすると発生。
引数やパラメータ内の番号はSQLに依存
Null 許容のオブジェクトには値を指定しなければなりません。
SOAP返り値がStringのものは「searchResponse.serialMasterBeans(j).tagId = Nothing」の形式で判断可能だが、
Decimalの返り値は不可能なので「searchResponse.serialMasterBeans(j).tagId.HasValue = False」の形式で対応する
SOAPのサンプル(msnサーチ)
WEB参照で、URL=http://soap.search.msn.com/webservices.asmx?wsdl
※ソース
[vbnet]Module Module1
Sub Main()
searchImgURL()
End Sub
Private Sub searchImgURL()
Try
Dim service As New com.msn.search.soap.MSNSearchService
Dim sourceRequest As New com.msn.search.soap.SourceRequest
Dim searchRequest As New com.msn.search.soap.SearchRequest
' 画像を検索
sourceRequest.Source = com.msn.search.soap.SourceType.Image
' 検索結果に画像情報を指定
sourceRequest.ResultFields = com.msn.search.soap.ResultFieldMask.Image
' 10 件検索
sourceRequest.Count = 10
' 検索文字列
searchRequest.Query = Console.ReadLine
' Application ID
searchRequest.AppID = "36640318930E9F0D93458782278D29C76B367159"
' 日本語のページから検索(画像検索ではたぶん意味なし)
searchRequest.CultureInfo = "ja-JP"
' 検索
searchRequest.Requests = New com.msn.search.soap.SourceRequest() {sourceRequest}
' 結果表示
Dim searchResponse As com.msn.search.soap.SearchResponse = service.Search(searchRequest)
Dim i As Integer
For i = 0 To 9
Console.WriteLine(searchResponse.Responses(0).Results(i).Image.ImageURL)
Next
Catch soapEx As System.Web.Services.Protocols.SoapException
Console.WriteLine(soapEx.ToString)
Catch webEx As System.Net.WebException
Console.WriteLine(webEx.ToString)
Catch ex As Exception
Console.WriteLine(ex.ToString)
End Try
End Sub
End Module[/vbnet]
ランキング参加中
にほんブログ村
GMOブログセンター
CoRichブログランキング
ビジネスブログ100選