View Full Version : دستور update در openrowset
mehrpars
چهارشنبه 19 خرداد 1389, 15:26 عصر
سلام ، میخوام با openrowset یک رکورد رو Update کنم
این کدم هست
Update openrowset
('SQLOLEDB','XXX.XXX.XXX.XXX';
'Username';
'Password' ,
'select * from Table_Name where F1=''123456''')
set F2='aaaaaa' , F3='ccccccc'
ولی با خطای زیر مواجه میشم
Server: Msg 7320, Level 16, State 2, Line 5
Could not execute query against OLE DB provider 'SQLOLEDB'. The provider could not support a required row lookup interface. The provider indicates that conflicts occurred with other properties or requirements.
[OLE/DB provider returned message: Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.]
توی MSDN هم راه حل رو اینطور بیان کرده
This applies both to OpenQuery and four-part named UPDATE and DELETE operations.
The problem is resolved by adding a unique index on the remote table.
ولی من مشکلم حل نشد
لطفا راهنمایی کنید
AminSobati
چهارشنبه 19 خرداد 1389, 18:36 عصر
سلام دوست عزیز،
در کدوم نسخه از SQL Server؟ من در 2008 تست کردم عین دستور شما رو و مشکلی نبود. با دستور من چک کنین:
Update openrowset
('SQLOLEDB','MyPC\i5';
'sa';
'1' ,
'select * from northwind.dbo.orders where customerid=''alfki''')
set orderdate=GETDATE()
mehrpars
چهارشنبه 19 خرداد 1389, 18:41 عصر
در کدوم نسخه از SQL Server؟
سلام ، ممنون از توجهتون
من از sqlserver 2000 استفاده میکنم
سرورم هم روی وب هست که البته اونم sqlserver 2000 هست
mehrpars
چهارشنبه 19 خرداد 1389, 18:43 عصر
فکر نمی کنم مشکل از دستورات باشه ،
من اول از sp استفاده می کردم و EXEC می کردم ، فکر کردم با sp مشکل داره
بنظرم کانفیگ خاصی واسه insert , delete , update داشته باشه!!!!!!!!
armiin
چهارشنبه 19 خرداد 1389, 21:00 عصر
شما تو کدتون ip , databaseName و ... ندارید چرا ؟
اگر منظورتون از xxx.xxx همون ip , databaseName و... هست باید بینشون ; بگذارید !
به این پست یه نگاهی بندازید بد نیست، البته برای select نوشتم : http://barnamenevis.biz/forum/showpost.php?p=999510&postcount=13
mehrpars
چهارشنبه 19 خرداد 1389, 21:43 عصر
شما تو کدتون ip , databaseName و ... ندارید چرا ؟
اگر منظورتون از xxx.xxx همون ip , databaseName و... هست باید بینشون ; بگذارید !
به این پست یه نگاهی بندازید بد نیست، البته برای select نوشتم : http://barnamenevis.biz/forum/showpost.php?p=999510&postcount=13
نه دوست من ،
منظورم از XXX.XXX.XXX.XXX همون آی پی هست و از اونجایی که در پست قبل توضیح دادم ،
database روی وب هست که با username دارم معرفیش می کنم و البته دستور select روی openrowset مشکلی نداره و فقط با insert , delete و update این مشکل واسش پیش میات
به هر حال ممنون
mehrpars
شنبه 22 خرداد 1389, 23:19 عصر
دوستان ، پس از گذشت چند روز .....
هنوز مشکل حل نشده ، تمام وب رو گشتم و از MSDN هم نتونستم کمک بگیرم ،
واقعا راهی هست تا من بتونم یک رکورد رو روی یک server دیگه update کنم ؟؟؟؟:اشتباه:
AminSobati
یک شنبه 23 خرداد 1389, 22:21 عصر
Linked Server رو آزمایش کنین
mehrpars
دوشنبه 24 خرداد 1389, 03:30 صبح
Linked Server رو آزمایش کنین
سلام ،
توی MSDN توضیح داده که از linked server و به روش Four-Part این کارو انجام بدین و اگر مشکلی بود یا از ایندکس جدول هست و یا permission ندارید ، ولی خوب در هر حال نمی خوام این ریسک بشه تا password دیتابیس سرور توی یک textbox قرار بگیره (منظورم textbox توی linkedServer هست)
من این کارو انجام دادم ولی به یک شیوه دیگه ، در حقیقت از سمت developer این مشکل رو handle کردم ... ، یک کلاس private دارم که توی اون یک کانکشن ساختم ، ConnectionString هم که از یک فایل dll هش شده خونده میشه و از طریق اون فقط دستور update رو انجام دادم ، واقعا راه دیگه ای پیدا نکردم ...
به هر حال اگر کسی پیدا کرد لطفا دریغ نکنه ....
از همتون که توجه کردید ممنونم:تشویق:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.