PDA

View Full Version : يك سئوال در مورد Call كردن وب سرويس



mhaeri
شنبه 11 مهر 1388, 15:06 عصر
با سلام
يك سئوال دارم
من يك وب سرويس دارم كه كاربر در برنامه اش اون رو رجيستر مي كنه و يكسري پارامتر به اين وب سرويس مي فرسته و در داخل وب سرويس اين پارامترها به عنوان وروديهاي يك استور پروسيجر باعث ميشه كه يك ركورد به بانك اضافه بشه
حالا من مي خوام يك كد رهگيري يا شناسه به برنامه كاربر برگشت داده بشه:
يعني در داخل برنامه كاربر:
Dim ws1 As New org.khodro.Service

Dim a As Integer
a = wskhodro.WebServiceTransfer(Me.txtn1.Text, Me.drpvehicleseri.SelectedValue, Me.drpcity.SelectedValue, Me.txtn2.Text, Me.txtn3.Text, Me.txtn4.Text, Me.txtn5.Text, Me.txtn6.Text, Me.txtn7.Text)

Me.lblMessage.Text = a.ToString

كه در متن برچسب اون شماره پي گيري قرار مي گيره:

اينم براي مثال كد وب سرويس :
Dim cmd As New SqlCommand()
cmd.CommandType = CommandType.StoredProcedure
Dim cmd As New SqlCommand()
cmd.CommandType = CommandType.StoredProcedure

cmd.CommandText = "CallWebService"
cmd.Parameters.Add("@p1", SqlDbType.NVarChar, 40).Value = ""
cmd.Parameters.Add("@p2", SqlDbType.NVarChar, 10).Value = ""
cmd.Parameters.Add("@p3", SqlDbType.Char, 10).Value = ""
cmd.Parameters.Add("@Ip4", SqlDbType.NVarChar, 10).Value = ""
cmd.Parameters.Add("@p5", SqlDbType.NVarChar, 30).Value = strFirstname
cmd.Parameters.Add("@p6", SqlDbType.NVarChar, 50).Value = strLastname

cmd.Connection = connection
Try
connection.Open()

Dim output As Integer = cmd.ExecuteScalar

output = CIIWebServiceTransfer
Return output
در حقيقت اينجا كه Return مي كنه اون مقدار فيلد Identity به برنامه فراخواننده برگردانده بشه
تو اينجا يك مقدار گير كردم و مقدار صفر برگردونده ميشه
لطفا راهنمايي كنيد
ممنون

saied_genius
شنبه 11 مهر 1388, 19:27 عصر
با سلام

شما داريد با ExecuteScalar کار ميکنيد.

اين حالت فقط تعداد رکوردهاي تحت تاثير قرار گرفته را بر مي گرداند.

اگر مي خواهيد همين حالت باشد، پس وب سرويس دارد درست کار مي کند.

اما اگر هدف يک خروجي از ديتابيس است، شما بايد نوع Execute و فرستادن خروجي را تغيير دهيد.

اگر بيشتر توضيح خواستيد ، بيشتر توضيح بدهيد و مساله را بازتر کنيد تا بتوانم بهتر راهنمايي کنم.

موفق باشيد.

mhaeri
یک شنبه 12 مهر 1388, 11:38 صبح
سلام مي بخشيد يك اشتباه غير حرفه اي بود
با اين كار مشكل حل شد و در حقيقت با Select _ScopIdentity() مقدار فيلد IDentity به برنامكه فراخواننده بازگشت پيدا مي كنه
CIIWebServiceTransfer = output
Return CIIWebServiceTransfer
ممنون از جوابتون

saied_genius
یک شنبه 12 مهر 1388, 18:35 عصر
خواهش مي کنم عزيزم.
در خدمتم.

موفق باشيد.

par1234
چهارشنبه 29 مهر 1388, 16:22 عصر
با سلام
چون عنوان اين تاپيك در ارتباط با Call كردن وب سرويس هست ، مي خواستم بدونم كه آيا راهي هست كه بتوانيم با استفاده از SQL Server 2000 متدهاي يك وب سرويس را Call كنيم ؟
با تشكر

saied_genius
چهارشنبه 29 مهر 1388, 16:26 عصر
مي شود بيشتر توضيح بدهيد. دقيقاً منظورتان چيه.

کجا مي خواهيد صدا کنيد؟ کدام قسمت؟ براي چي؟

par1234
پنج شنبه 30 مهر 1388, 09:12 صبح
يك وب سرويس هست كه url مربوط به فايل wsdl آن را دارم . اين وب سرويس حاوي چند متد هست كه بايد آنها را از داخل SQL Server2000 فراخواني كنم ( ترجيحا از داخل يك job ) البته هنوز Job براي اين مورد ننوشتم اما مي خواهم بدانم كه اساسا اين امكان در SQL Server 2000 موجود هست يا خير؟يعني مي توان از طريق SQL server 2000با وب سرويس ارتباط گرفت و متدهاي آن را Call كرد؟
با تشكر