سئوال در مورد OPENROWSET در sql server
با سلام و خسته نباشید خدمت شما
1-من با openrowset کار کرده ام اما کوئری زیر را نمی دانم چه کاری انجام می دهد.
SELECT a.* FROM OPENROWSET( BULK 'c:\test\values.txt', FORMATFILE = 'c:\test\values.fmt') AS a;
و یک سئوال دیگر در مورد کوئری بالا داشتم و آن این هست که من در بعضی کدها دیدم که در openrowset از فرمت fmt استفاده می کنند این فرمت چه مزیتی دارد و چه کاربردی دارد.
2-ممنون می شوم که کوئری زیر را توضیح دهید که چه کاری انجام می دهد :
SELECT * FROM OPENROWSET(BULK N'D:\XChange\test-csv.csv', FORMATFILE = N'D:\XChange\test-csv.fmt', FIRSTROW=2, FORMAT='CSV') AS cars;
23 پاسخ
با سلام و خسته نباشید خدمت استاد عزیزم
جناب مهندس من در لینک مورد نظر رفتم و برنامه Visual FoxPro 9.0 Service Pack 2 (SP2) را دانلود کردم و حتی برنامه های دیگر هم تست کردم اما موقع نصب ارور زیر را می دهد :
با تشکر از شما دوست عزیز و گرامی
مچکرم
با سلام
نکاتی که باعث به وجود اومدن این مشکل خواهند شد :
1- نصب نبودن درایور ACE OLE که نصب کردین
2- حتما اجازه ی دسترسی به فرایند ACE دادید با این دو خط کوئری :
USE [master] GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1 GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1 GO
3- در آخر مشکل نام کاربری خواهید داشت که با پیغام زیر روبه رو میشین :
برای رفع این مشکل باید از بخش سرویس ها بروی سرویس SQL SERVER خودتون راست کلکیک کنید Properties را انتخاب کنید بعدش از بخش LOG ON می تونید نام کاربری جاری رو با Adel/. با گذرواژه را وارد کنید و اکی کنید یا می تونید LOCAL ACCOUNT رو وارد کنید . توجه کنید که نام کاربری Adel فقط جهت تست بیان شده و شما باید نام کاربری موجود در سیستم خودتون رو وارد کنید .
مطابق عکس پایین :
با سلام و خسته نباشید خدمت استاد عزیزم
جناب مهندس من از کوئری استفاده می کنم برای اینکه اطلاعات را از فایل txt به جدول hassan اضافه کنم حالا من می خواهم که یک شرط where در زیر بگذارم که آن اطلاعاتی که می خواهم در جدول hassan اضافه شود کل اطلاعات فایل txt در جدول hassan اضافه نشود.
INSERT INTO hassan SELECT * FROM OPENROWSET(BULK 'C:\fmt\name.txt', FORMATFILE='C:\hassan.Xml' ) as t1 ;
مهندس جان ممنون می شوم منرا راهنمایی کنید.
با تشکر از شما دوست عزیز و گرامی
با سلام
خوب شروع می کنیم آموزش تصویریمون رو :
برای ساخته Format File یا همون FMT نیاز داریم به BCP : این ابزار ابزار کم حجی و اصطلاحا مبتنی بر خط فرمان هست
خوب برای اینکه ابتدا مطمئن بشیم این ابزار بروی سیستم ما نصب شده است
در cmd ویندوز تایپ می کنیم bcp :
وقتی در cmd تایپ کنیم bcp اگر نصب باشه جواب بازگشتی نحوه ی استفاده از اون هست ولی اگر نشناسه کامند رو خوب پیغامی مبنی بر اینکه این کامند در سیستم عامل قابل شناسایی نیست
-------------------------------------------------------------------
دقت کنید که اگر SQL SERVER رو به صورت کامل نصب کرده باشید نیازی به این بخش ندارید
در این قسمت آموزش نصب ابزار bcp رو شرح می دیم :
bcp چیه ؟ ابزاری است که به وسیله ی اون می تونیم اطلاعات را بین نادهای مختلف sql server انتقال بدیم
در اینجا می خوایم ابتدا باهاش FMT فایل برای یکی از جداولمون درست کنیم .
خوب برای نصبش دوتا پیشنیاز لازم داریم :
1- درایور مخصوص برای کار با ODBC که این ODBC بانک های اطلاعاتی مختلف و پشتیبانی می کنه
odbc توسط خود مایکروسافت ساخته شده برای اینکه برنامه ها بتونند با ایجاد ارتباط به بانک های اطلاعاتی مختلف به داده ها دسترسی داشته باشند . دقت کنید که یه فایل متنی هم ممکنه دیتابیسی باشه واسه خودش ! بله بعضی وقت ها فلت فایل ها هم یک منبع اطلاعات هستند .
خوب برای دانلودش توی گوگل سرچ می کنیم :
بعدش به راحتی از سایت خود مایکروسافت دانلودش می کنیم :
بعد بر اساس نوع سیستم عاملمون یکی از فایل ها رو انتخاب می کنیم :
خوب دومین پیشنیاز :
2-پکیج دومی پکیجی است که قابلیت تعامل با sql server رو از طریق خط فرمان مهیا می کنه
اسم پکیج هست :
Microsoft® Command Line Utilities 13.1 for SQL Server
دقیقا مثل پکیج اول توی گوگل سرچ کنید و دانلود کنید
***** دقت کنید که ابتدا پکیج اول یعنی ODBC رو باید نصب کنید و بعدش Command Line Utility .
-------------------------------------------------------------------------------------
هر دو پکیج رو در ضمیمه ی همین پست می تونید دانلود کنید برای تسریع در روند کارتون .
بسیار خوب حالا همه چیز برای ساخت Format File آماده است:
فایل fmt باید از روی یکی از جداول موجود در بانک اطلاعاتی ساخته بشه :
خوب اگه فقط فایل متنی داریم (فایل های متنی مقادیر موجود در فایل های متنی بر دو اساس از هم جدا می شوند یا با کاما یا با فاصله ی خالی یا با تب tab ) ابتدا بر اساس همون فایل متنی یک جدول در دیتابیسمون ایجاد می کنیم :
**** سناریو : فایل متنی مانند پایین و به ما دادند و از ما می خوان که همه ی اطلاعات اون و وارد دیتابیس فعلی خودمون بکنیم :
پس ما هم برای قرار دادن اطلاعات بالا درون جدول نیاز به دو ستون داریم اولی نام و دومی نام خانوادگی :
جدول بالا رو با نام Table در دیتابیسمون ذخیره می کنیم به نام جدول دقت کنید اون و نیاز داریم برای استفاده در ابزار bcp :
حالا زمان استفاده از bcp رسیده :
همان طور که می دونید sql server از دو نوع اعتبار سنجی پشتیبانی می کنه : 1- sql server که یعنی از نام کاربری های درون خود سرور استفاده کنم 2-windows از نام کاربرهای ویندوز که موقع نصب به سرور معرفی شده است استفاده کن 3- حالت ترکیبی هم حالت 1 و هم حالت 2
خوب من از حالت ترکیبی بروی سرور خودم استفاده می کنم دقت کنید که قصدم دقیقا اعتبار سنجی با نام کاربری که موقع نصب به سرور معرفی کردم استفاده کنم bcp به این حالت که از نام کاربری در ویندوز استفاده کنید میگه trusted connection به معنی ارتباط مورد اعتماد .
خوب پس موقع اجرا کردن cmd ویندوز کلید shift رو نگه می داریم و روی cmd راست کلکی می کنیم و بعد روی
Run As Different User و انتخاب کنید بعد پنجره ی اعتبار سنجی ویندوز ظاهر میشه و ازمون نام کاربری و گذرواژه ی کاربر مورد نظر رو می خواد :
*** نام کاربری وگذرواژه ایی رو وارد کنید که در موقع نصب sql server اون و معرفی کردین . (امیدوارم متوجه منظورم شده باشین) .
خوب به هر حال cmd رو با همون کاربر مورد نظر که کاربر قابل اعتماد sql server است اجرا می کنیم
حالا می تونیم از طریق خط فرمان به دیتابیسمون و جداولش دسترسی داشته باشیم :
برای ساخت فایل FMT از روی جدول Table که واقع در دیتابیس db-itpro موجود است کافی است تایپ کنیم :
دقت کنید بعد از t- یک کاما وجود داره که یادتون نره بزاریش به این معنی که مقادیر هر ستون با ، از هم جدا میشوند
خوب پس از دستور بالا فایل fmt بروی درایو سی ساخته میشه
فایل متنی و فایل fmt رو در یک پوشه بروی روی درایو سی قرار می دیم :
بعد وارد محیط sql server managment studio میشیم و کوئری پایین و تایپ می کنیم :
و نهایتا اینم خروجی دستور بالا :
با سلام
OLEDB متاسفانه نمی تونه از فایل های اکسلی که دارای پسورد هستند چیزی بخونه .
برای بخش برنامه نویسی میشه پارامتر گذرواژه رو اضافه کرد اما برای OLEDB که توی SQL SERVER استفاده می کنیم خیر.
با سلام و خسته نباشید خدمت استاد عزیزم
جناب مهندس دقیقا متوجه شدم و شما در توضیحات به نکات جالبی اشاره کردید همیشه توضیحات شما کامل و عالی هست همیشه منرا شرمنده می کنید.
با تشکر از شما دوست عزیز و گرامی
با سلام
دوست عزیز برای کار کردن با دیتابیس فاکس پرو driver و provider اون و مطابق با فاکس پرو تعریف کنید به این شکل :SELECT * into SomeTable
FROM OPENROWSET('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;
SourceDB=c:\db.dbf;
SourceType=DBF',
'SELECT * FROM SomeDBF')
سلام
دوست عزیز شما به بنده لطف دارید
پیشنیازهایی که برای کر با دیتاسورس های آفیسی نیاز دارید :
1- ابتدا به پکیج Access DataBase Engine نیاز دارید که بنده نسخه ی 2010 اون که شامل 32 بیتی و 64 بیتی است و استفاده می کنیم :
بعد نصب باید تنظیماتی انجام بشه در sql server که سرورمون بتونه از access driver (که به منظور دسترسی به دیتا سورس های آفیسی نصب شده است) استفاده کنه :
بعدش باید قابلیت کوئری ها Ad HOC و فعال کنیم : به کوئری ها یی که برای دسترسی به سایر دیتا سورس ها از OLEDB استفاده می کنند . OLEDB توابع API هستند که به کاربر کمک می کنند از یک دیتا سورس مثل Excel هم داده ها را بخونیم .
خوب برای فعال کردن این نوع کوئری ها :
خوب الان همه چیز اماده است که با بتونیم دیتاها رو از اکسل بخونیم :
یک فایل اکسل ترجیحا 2007 به خاطر پسوندشون که Xlsx هست :
ایجاد می کنیم به این شکل :
با نام name.xlsx بروی درایو سی ذخیره اش می کنیم :
نتیجه ی نهایی :
کوئری مورد نیاز این کار :
USE [master] GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1 GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1 GO
EXEC sp_configure 'show advanced options', 1 RECONFIGURE EXEC sp_configure 'Ad Hoc Distributed Queries', 1 RECONFIGURE
select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=c:\name.xlsx;HDR=YES','SELECT * FROM [Sheet1$]')
با سلام و خسته نباشید خدمت شما دوست عزیز و گرامی
جناب مهندس تمام توضیحاتی که شما در بالا نوشته اید من کاملا انجام دادم البته در محیط sql server 2008 R2 اصلا مشکلی نداشت و حتی من آفیس را نصب نکردم اما به درستی اطلاعات را از اکسل واکشی کرد اما در sql server 2012 و حتی sql server 2014 نتونستم اطلاعات را از اکسل واکشی بکنم و به من ارور زیر را داد :
OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "Unspecified error". Msg 7303, Level 16, State 1, Line 1 Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".
مهندس عزیزم ممنون می شوم راهنمایی کنید
سپاسگزارم
با سلام
دوست عزیز BCP : اطلاعات کل جدول و واکشی میکنه تک تک سطرها رو بک آپ می گیره و ذخیره می کنه
برای مثال :
من از جدولی که توی دیتابیس دارم با BCP بک آپ می گیرم :
ببینید دقیقا تفاوت اینه : BCP خود اطلاعات هست اما FMT شمای کلی اون جدول هست ...
فایل BCP و رو یه نگاه می کنیم :
ستون توضیحات خود سیستم عامل ویندوز این فایل و با عنوان : BULK COPY DATA شناسایی می کنه ...
حالا با نت پد داخلش و نگاه کنیم :
اینم اطلاعات خود جدولمون :
پس دستور bcp با پارامتر out از کل اطلاعات جدولمون بک آپ می گیره ...
-n : به معنی داده های بومی خود SQL SERVER هست منظور همون int char varchar ,,,,,
استفاده از داده های بومی باعث افزایش سرعت گرفتن خروجی خواهد شد ...
پس BCP برای بک آپ گیری استفاده میشه
---------------------------------------------------------------------------
خوب حالا میرسیم به فایل FMT قبلا هم گفتم : اگه قراره SQL SERVER بروی یک فایل متنی که توصیف گر نداره کار کنه (اصطلاحا FLAT FILE) باید چون می خواد روی اون کوئری اجرا کنه باید بتونه اطلاعات فایل متنی رو در قالب جدول ببینه :
این فایل متنی ما :
اینم فایل FMT ما که مطابق این فایل متنی ساختیم (اول جدولی مطابق فایل متنی بالا ایجاد کردیم بعد اومدیم از جدول خالی که مطابق فایل متنی بود فایل FMT ساختیم ):
فایل FMT چیزی جز شمای کلی نیست که بتونه با یک دیتا سورس خارجی مثل فایل متنی مانند یک داده ی با ساختار برخورد کنه
فایل FMT رو با NOTEPAD باز می کنیم :
نگاه کنید دقیقا فایل FMT ساختارش به شکل زیر هست :
سطر اول : نسخه ی SQL SERVER هست
سطر دوم تعداد ستون جدول هست
از سطر دو به بعد به معرفی ستون ها و نوع داده های هر ستون پرداخته میشه
SQLCHAR معادل همون nvarchar nchar varchar char هست
0 و 100 هم طول این ستون رو مشخص می کنه 100 کارکاتر
بعدش میگه که در فایل متنی وقتی به کاما رسیدی یعنی اینکه مقدار ستون اول تکمیل شده
در اصل جدا کننده ی ستون هست کاما
بعدش هم شماره ی ستون و نام ستون و در اخر هم Collation
در ستون آخر هم جدا کننده اش میشه n/ یعنی وقتی رفتی خط بعد باید سطر رو هم ببری جلو اصطلاحا جدا کننده ی سطر .
---------------------------------------------
واسه همینه که ما می تونیم دقیقا با کمک FMT فایل با فایل متنی دقیقا مثل یک جدول کار کنیم چون میایم و با FMT واسه اطلاعات اون فایل متنی توصیف گر درست می کنیم :
در عکس پایین ابتدا من کل فایل متنی رو خروجی گرفتم اما در کوئری دوم من شرط گذاشتم :
با سلام و خسته نباشید خدمت استاد عزیزم
جناب مهندس کوئری زیر از سوییچ -n استفاده کرده است من که تست کردم دیدم یک فرمت خاصی هست که sql server انجام می دهد این فرمت چه استفاده هایی دارد و بیشتر به چه دردی می خورد آیا سرعت کار بالاتر می رود :
bcp TestDatabase.dbo.myNative OUT D:\BCP\myNative.bcp -T -n
حتی مهندس جان کوئری زیر برای ایجاد فایل fmt از -n استفاده کرده است :
bcp TestDatabase.dbo.myNative format nul -f D:\BCP\myNative.fmt -T -n
من کدهای بالا را از سایت ماکروسافت به آدرس زیر بدست آورده ام :
لینک سایت ماکروسافت(microsoft)
و عذرخواهی می کنم یک سئوال دیگر هم داشتم ما بدون فایل fmt هم می توانیم مثلا از فایل txt اطلاعات را وارد جدول بکنیم اما با فایل fmt هم می توانیم این کار را انجام بدهیم کلا فایل fmt به چه دردی می خورد.
یک نمونه که خودم بهش رسیدم این هست که بدون اینکه جدولی در دیتابیس داشته باشیم می توانیم از فایل fmt و txt استفاده بکنیم به صورت مستقل عمل می کند یعنی ما از قبل از جدول خودمون فایل fmt می سازیم و با فایل txt ای که در اختیار داریم می توانیم اطلاعات را واکشی بکنیم اما کلا استفاده های دیگر آنرا نمی دانم.
ممنون می شوم منرا راهنمایی کنید.
با سپاس از شما دوست عزیز
شما لطف دارین
بله متاسفانه فراموش کردم که بگم بعد از تغییرات بالا سرویس رو یکبار Restart کنید
با سلام و خسته نباشید خدمت استاد عزیزم
جناب مهندس من می خواهم که اطلاعات را از فایل excel ای که پسورد دارد واکشی کنم مثلا با openrowset یا مثلا opendatasource آیا شدنی هست.
ممنون می شوم که مهندس جان منرا راهنمایی کنید
با سپاس از شما دوست عزیز و گرامی
با سلام و خسته نباشید خدمت شما دوست عزیز و گرامی
جناب مهندس واقعا واقعا عالی توضیح دادید و مشکل من را به طور کلی برطرف کردید تمام توضیحات شما رو انجام دادم و به نتیجه رسیدم شما واقعا انسان خیلی خوبی هستید که علمتون را در اختیار دیگران قرار می دهید واقعا ممنونم دست شما درد نکنه مهندس عزیزم
با تشکر از شما دوست عزیزم
مچکرم از شما
سپاسگزارم
با سلام و خسته نباشید خدمت استاد عزیزم
استاد عزیز من خودم بعد از چند ساعت کوئری مورد نظر را پیدا کردم :
INSERT INTO hassan (name) SELECT (name) FROM OPENROWSET ( BULK 'c:\fmt\name.txt', FORMATFILE = 'c:\hassan.xml') alias WHERE name='adel' and family='hosseinpour'
من به شما خیلی زحمت دادم توی این چند روزه.
با سلام و خسته نباشید خدمت شما دوست عزیز و گرامی
از بابت مطالب خیلی آموزنده و خیلی عالی واقعا ممنونم
خیلی من را شرمنده کردید.
من یک سئوال داشتم و آن این هست که فرمت fmt برای داده های فلت فقط بکار می ره.
من برای تست کوئری زیر را که اجرا می کنم :
SELECT a.* FROM OPENROWSET( BULK 'c:\bcp\c.txt', FORMATFILE = 'c:\bcp\b.fmt') AS a;
ارور زیر را به من نمایش می دهد :
Msg 9435, Level 16, State 48, Line 1 XML parsing: line 1, character 0, one root element
حتی من از قبل فایلهای مورد نظر را ساخته ام و بعد کوئری بالا را اجرا می کنم که ارور بالا را می دهد.
با تشکر از شما و مطالب خیلی مفیدتان
با سلام و خسته نباشید خدمت استاد عزیزم
جناب آقای مهندس خیلی عالی بود خیلی لطف کردید واقعا شما انسان با استعدادی هستید مشکل من را کاملا برطرف کردید فقط بعد از اینکه نام کاربری و پسورد را وارد کردم حتما باید یکبار سرویس را ریستارت می کردم دست گل شما درد نکنه عزیزم واقعا کمکم کردید
با سپاس از شما دوست عزیز و گرامی
با سلام و خسته نباشید خدمت شما دوست عزیز و گرامی
جناب مهندس ببخشید یک سئوال از حضور شما داشتم و آن این هست که من کد زیر را اجرا می کنم و به درستی اجرا می شود و مشکلی ندارد :
EXEC master.dbo.xp_cmdshell 'bcp nikamoozshop.dbo.hassan out C:\Test.xls -c -t\t -T -S .\sql2015 -U sa -P a'
اما وقتی که کد زیر را اجرا می کنم به من ارور می دهد به خاطر اینکه من از فرمت xlsx استفاده کرده ام
EXEC master.dbo.xp_cmdshell 'bcp nikamoozshop.dbo.hassan out C:\Test.xlsx -c -t\t -T -S .\sql2015 -U sa -P a'
آیا با bcp یا openrowset می شود با فرمت xlsx کار کرد
ممنونم که راهنمایی می کنید مهندس جان
با سپاس از شما
با سلام
همان طور که می دونید openrowset برای خواندن اطلاعات از یک دیتا سورس دیگری به سرور فعلی استفاده میشه .
دیتا سورس های دیگه مثل : یک سرور sql دیگه . یک پایگاه داده access و یا خواندن فایل متنی اصطلاحا فلت فایل ها .
کلا دوست عزیز دو نوع فایل داریم :
1- فایل های خود توصیف مثل xml که توی هرتگش همان طور که می دونید هر دیتا خودش و توصیف می کنه مثال : تگ زیر و داریم :
</name>عادل<name>
با خوندن این داده متوجه میشیم دیتای ما عادل هست خوب ماهیتش چیه ؟ خوب تگش توصیفش می کنه این اسمه .
2- فایل های فلت یا فایل های متنی که با خوندن اونا توصیفی یا اصطلاحا متا دیتا موجود نمی باشد . متا دیتا چیست ؟ متا دیتا یعنی داده ایی که که درباره ی داده ی ویگه ذخیره میشه . خوب فلت فایل ها متا دیتای توصیف گر ندارن .
خوب sql server برای اینکه بخواد متوجه فلت فایل ها بشه و اون ها رو اصطلاحا مپ کنه داخل جداول میاد از کلمه ی کلیدی bulk استفاده میکنه به معنی انباشته شده . متوجه میشه می خواد فلت فایل کار کنه . خوب چون این وسط دیتا ها رو می خواد از یک فایل بدون توصیف بخونه میاد یک فایل با فرمت fmt به معنای file format ایجاد می کنه اطلاعات و برای اینکه بتونه بخونه داخل اون مپ می کنه اونجا می نویسه اطلاعات رو .
کوئری دوم میگه فایلی که ادرسش و مشخص کردین بخون و اون توی یه فایل رابط اصطلاحا مپ کن که فرمتش fmt هست . اون firstrow هم یعنی از سطر دوم شروع کن . معمولا توی سطر اول فایل فلت میان و ورژن sql server و قید می کنند . پس از سطر دوم خوندن فایل و شروع کن . و عملیات select insert و کلا عملیات dml و یا همون دستکاری داده ها رو انجام بدین . توی پست بعدی یک فایل متنی و ایجاد می کنم و با تصاویر توضیح می دم واستون واضح تر بشه انشاالله .
ببخشید اگه اطلاعاتی و که می دونستید باز تکرار کردم و ببخشید اگه از اصطلاحات تخصصی استفاده کردم .
سعی کنید مثل کامیپوتر که همه چیز و تفسیر میکنه به اسمبلی به زبان خودتون ترجمه کنید زبانی که خودتون متوجه اش میشین .
با سلام و خسته نباشید خدمت استاد عزیزم
مهندس جان خیال منرا راحت کردی چون خیلی دنبالش می گشتم.
با تشکر از شما دوست عزیز و گرامی
مچکرم
با سلام و خسته نباشید خدمت استاد عزیزم
جناب مهندس من برای استفاده از فرمت dbf از کوئری زیر استفاده می کنم :
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'dBASE IV;Database=c:\dbf','SELECT * FROM 1.dbf')
اما به من ارور زیر را می دهد :
OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "Could not find installable ISAM.". Msg 7303, Level 16, State 1, Line 20 Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".
ممنون می شوم استاد عزیزم من را راهنمایی کنید.
با سپاس از شما
با سلام و خسته نباشید خدمت شما دوست عزیز و گرامی
من کوئری مورد نظر که شما نوشتید را اجرا کردم اما ارور زیر را داد :
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Driver Manager] Driver does not support this function". Msg 7303, Level 16, State 1, Line 2 Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".
ممنون می شوم استاد عزیزم من را راهنمایی کنید.
با تشکر