khoshblagh
چهارشنبه 20 آبان 1394, 22:53 عصر
با سلام خدمت دوستان
من به کمک اساتید این تالار توانستم با کد زیر اطلاعاتی را از یک فایل csv به داخل جدولی در sql واکشی نمایم.البته در این حالت هم sql و هم فایل csv در یک رایانه قرار داشتند. اما وقتی بصورت کلاینت سروری (برنامه در یک رایانه و sql در سرور قرار داشت ) پیامی خطایی مبنی بر اینکه sql نمیتواند فایل مورد نظر را پیدا نماید. با جستجو در نت متوجه شدم که sql به دنبال فایل مورد نظر در سرور میگردد ،لذا از آنجائیکه فایل csv بروی رایانه کلاینت میباشد لذا sql قادر به پیدا نمودن فایل نمیباشد.در یک سایتی عنوان شده بود که در این حالت باید از مدل UNC path استفاده شود. البته 3 نمونه کد هم ارائه شده بود،ولی من نتوانستم از آنها استفاده نمایم. راه حل آن چگونه میباشد؟ ضمنا در زیر تصویر خطا و همچنین توضیح مختصر ضمیمه میباشد. متشکرم
cmdImportData .CommandText:='BULK INSERT dbo.tblImportData FROM '+
QuotedStr(edtCSVFileName.Text)+
' WITH (FIELDTERMINATOR='';'''+
',CODEPAGE = ''1256'''+
',FirstRow=2'+
',ROWTERMINATOR = ''\n'')';
cmdImportData.CommandType :=cmdText;
cmdImportData.Execute ;
136664
The file needs to be accessable on the server. The file path is relative to the server, not your PC. Also, if you are trying to use a share or a mapped drive it will not work. You need to use the UNC path.
UNC Name Examples
\\teela\admin$ (to reach C:\WINNT)
\\teela\admin$\system32 (to reach C:\WINNT\system32)
\\teela\temp (to reach C:\temp)
من به کمک اساتید این تالار توانستم با کد زیر اطلاعاتی را از یک فایل csv به داخل جدولی در sql واکشی نمایم.البته در این حالت هم sql و هم فایل csv در یک رایانه قرار داشتند. اما وقتی بصورت کلاینت سروری (برنامه در یک رایانه و sql در سرور قرار داشت ) پیامی خطایی مبنی بر اینکه sql نمیتواند فایل مورد نظر را پیدا نماید. با جستجو در نت متوجه شدم که sql به دنبال فایل مورد نظر در سرور میگردد ،لذا از آنجائیکه فایل csv بروی رایانه کلاینت میباشد لذا sql قادر به پیدا نمودن فایل نمیباشد.در یک سایتی عنوان شده بود که در این حالت باید از مدل UNC path استفاده شود. البته 3 نمونه کد هم ارائه شده بود،ولی من نتوانستم از آنها استفاده نمایم. راه حل آن چگونه میباشد؟ ضمنا در زیر تصویر خطا و همچنین توضیح مختصر ضمیمه میباشد. متشکرم
cmdImportData .CommandText:='BULK INSERT dbo.tblImportData FROM '+
QuotedStr(edtCSVFileName.Text)+
' WITH (FIELDTERMINATOR='';'''+
',CODEPAGE = ''1256'''+
',FirstRow=2'+
',ROWTERMINATOR = ''\n'')';
cmdImportData.CommandType :=cmdText;
cmdImportData.Execute ;
136664
The file needs to be accessable on the server. The file path is relative to the server, not your PC. Also, if you are trying to use a share or a mapped drive it will not work. You need to use the UNC path.
UNC Name Examples
\\teela\admin$ (to reach C:\WINNT)
\\teela\admin$\system32 (to reach C:\WINNT\system32)
\\teela\temp (to reach C:\temp)