広告に関する明記

当ブログにはアフィリエイトリンクが含まれます。

VisualBasic プログラム

たぶんSORPのメモ

なんかメモ.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]

にほんブログ村 IT技術ブログ プログラム・プログラマーへ
にほんブログ村

ランキング参加中
にほんブログ村
GMOブログセンター
CoRichブログランキング
ビジネスブログ100選

-VisualBasic, プログラム
-,